Day 3: mHM Calibration #141
MuellerSeb
started this conversation in
Workshop 2025
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
All task will be done on the test domain 1 from the mHM repository. You can download it with:
This will create a folder called
test_domainand you need to modify the namelists inside:test_domain/mhm.nml.You can run the domain with:
All calibrations will be done with a relatively small budget for the purpose of the exercise and a relatively short modelling period. Set the simulation period as follows:
Make sure you have openMP disabled by adding in the terminal! The domain is too small for efficient parallelization.
export OMP_NUM_THREADS=1Task 1: Calibration with DDS
Switch on calibration by setting
in the mainconfig_mhm_mrm namelist. mHM offers multiple objective functions and calibration algorithms. Choose KGE objective function by setting
and DDS optimization by
in the mainconfig_mhm_mrm namelist. Please note that DDS is run with relatively small number of iterations. This can be changed by setting
nIterationsin the Optimization namelist. Run the optimization with a budget ofnIterations=100.You can use
mhm-toolsto plot a hydrograph of the results. This can be achieved by executing this command in theoutput_b1folder of the test-domain:Investigate the difference between the KGE of the default run and the optimized parameter. Compare hydrographs of calibrated and default parameters.
Task 3: Choice of seed
The optimization algorithm is sensitive to the seed chosen for the optimizers. What is the difference between using a fixed seed and a seed derived from the system clock. This can be changed by:
in the Optimization namelist.
Task 2: Calibration with SCE and NSE as objective function
Similar to the DDS algorithm, mHM also offers the shuffled-complex evolution (SCE) algorithm. This can be chosen by
To select the Nash-Sutcliffe efficiency (NSE), set
Use the same number of iterations as for DDS.
Compare results.
Task 3: Split-sampling test
It is critical for parameter calibration to perform split-sampling test, which is to validate the parameter set derived from a calibration during a period that was not used for calibration. Use the optimized parameter set from Task 1 contained in the file
FinalParam.nmland run the model for the period.You need to deactivate optimization in order to do a forward run.
Hint ...
Also, you need to specify the namelist with the parameters in the mhm call. You can get information on the command line flags with:
Hint ...
Take a look with:
Task 4: Multi-domain calibration
Now we want to do a multi-domain calibration and therefore we need to download the second test domain:
This will create a folder called
test_domain_2.Also we need a common namelist to run both domains, so please download the default
mhm.nmlwith this LINKand store it next to
test_domainandtest_domain_2folders.We also need the parameter and output namelist, that we can copy from the test domain:
Now you can execute mhm for both domains by simply running:
Please update the
mhm.nmlfile again to do an optimization:And also adjust the simulation period for both domains to only one year of warmup and one year of evaluation:
All reactions