wknoben / marrmot Goto Github PK
View Code? Open in Web Editor NEWModular Assessment of Rainfall-Runoff Models Toolbox - Matlab code for 47 conceptual hydrologic models
License: GNU General Public License v3.0
Modular Assessment of Rainfall-Runoff Models Toolbox - Matlab code for 47 conceptual hydrologic models
License: GNU General Public License v3.0
https://github.com/wknoben/MARRMoT/blob/master/MARRMoT/Models/Flux%20files/saturation_7.m#L24
The integral operation leads to m_14_topmodel_7p_2s
about 20 times slower than other models?
Any idea how to improve this?
The attachment is the consumed time for each model in my case.
Thanks and Regards,
Dongdong
In order to test the BMI it will be good to have a config file using ERA5 data.
Implement the ability to continue running the model using saved model outputs from the last run
In m_28_xinanjiang_12p_4s
:
flux_e = evap_21(lm,c,S1,Ep,delta_t);
flux_r = saturation_14(a,b,S1,wmax,flux_pi);
flux_rs = saturation_2(S2,smax,ex,flux_r);
flux_ri = saturation_2(S2,smax,ex,S2*ki);
flux_rg = saturation_2(S2,smax,ex,S2*kg);
flux_qs = flux_rb + flux_rs;
flux_qi = interflow_5(ci,S3);
flux_qg = baseflow_1(cg,S4);
% stores ODEs
dS1 = flux_pi - flux_e - flux_r;
dS2 = flux_r - flux_rs - flux_ri - flux_rg;
dS3 = flux_ri - flux_qi;
dS4 = flux_rg - flux_qg;
Hence, I think JacobPattern should be
obj.JacobPattern = [1,0,0,0;
1,1,0,0;
0,1,1,0;
0,1,0,1];
Other than
obj.JacobPattern = [1,0,0,0;
1,1,0,0;
0,1,1,0;
0,0,1,1];
% the last row error
on the python side, grids are not implemented
work in progress
Diagnosis:
x2
(water exchange parameter) is determined by relative fullness of store S2 (R
in original GR4J paper), which is controlled by x3
(maximum routing store depth)x2
; full S2, flow from x2
as x2
's valuex3
, import based on x2
never goes above x2
x3
, we can end up in situation where water import via x2
goes up (because S2 > x3
), which makes S2 go up further, etc.Qr
is equal to import via x2
Why would S2 go over x3
?
x2
> x3
Possible solutions:
recharge_2
to ensure that returned flow is at most equal to "flux"x2
cannot be greater than x3
start and end-time are date-vecs, but current time is scalar.
In R, Xinanjiang model calibration only cost about 40s.
But in MARRMoT
, the calibration is quite low efficiency. With the same forings, half hour passed, still no output.
Just wondering which part delays the computing efficiency? ODE or optimization function? Any idea?
Numerical solutions don't always return physically realistic values.
Suggestion:
Big change, so probably should be saved for a large development push.
Calling bmi methods via grcp4bmi and Docker is giving errors.
model.get_output_var_names()
returns error with
Cell(['Fluxes leaving the model > flux_out', 'Internal fluxes > flux_in',
'Storages (time = t) > S(t)', 'Water balance check > wb'],
dtype=object) has type <class 'oct2py.io.Cell'>, but expected one of: (<class 'bytes'>, <class 'str'>)
model.get_value('flux_out')
returns error with
Arrays with type {} cannot be transmitted through this GRPC channel
please add BMI description to the main readme file.
In L107, to consistent with FluxNames in L38, it should be flux_qseg flux_c flux_qhsrf flux_qhgw flux_qt
https://github.com/wknoben/MARRMoT/blob/master/MARRMoT/Models/Model%20files/m_13_hillslope_7p_2s.m#L38
https://github.com/wknoben/MARRMoT/blob/master/MARRMoT/Models/Model%20files/m_13_hillslope_7p_2s.m#L107
get_input_var_names and get_value use different names. And var flux_out contiains 2 vars, should be split into 2 vars Q and Ea
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.