I know @anoukvlug is working on something similar maybe these ideas help on that effort.
Part I:
How to calibrate the SMB with different climate data?
This section of the docs#climate data needs to be link to a tutorial that does the same climate tasks than the default preprocessing dirs in OGGM, with at least another example from the collections of climate databases. Probably showing how to run the following lines of code with different data sets.
@bearecinos:
The main issue for me and our student when using different climates was the precipitation factor. The winter_prcp_fac should always be set to False, if for our own climate data we don't know what that is, and also make a sensitivity analysis for 'prcp_fac' (which is climate data dependent). cfg.PARAMS['use_winter_prcp_fac'] = False and cfg.PARAMS['prcp_fac']= sensitivity analysis.
Possible solutions:
Ideally this tutorial should provide or indicate how users can come up with a good value, maybe table per region from values in the Literature?
Provide a task that calculates the precipitation factor based on winter prcp "as a quick stats" for a general climate data, maybe a simple scaling relation based on the statistics of winter precipitation in a general way?
Sensitivity experiments: what it’s done here. But we can’t make a sensitivity analysis on prcp_fac for all glaciers (without observations) if the inversion task does not allow for a file suffix that can store multiple inversions done with different SMB estimates. (see Part II).
Part II:
Lack of file suffix uses throughout the model workflow, making it harder to do sensitivity experiments file suffix kwargs are absent on some workflow tasks. This is an issue on its own (link to https://github.com/OGGM/oggm/issues/1677).
@bearecinos: With my student I encountered that is very hard to make a sensitivity studies in the same working directory due to the lack of functions that allow a file suffix, this means that we have to repeat models runs and output data, duplicating what we have with multiple working directories.
Seems like you can set a suffix for certain tasks but that functionality is not carry out in upper level tasks e.g.
we have a file suffix here: mass_conservation_inversion(gdir, glen_a=None, fs=None, write=True,filesuffix='', water_level=None,t_lambda=None) But that passing argument does not follow to the inversion_tasks(gdirs, glen_a=None, fs=None, filter_inversion_output=True,add_to_log_file=True). Maybe this can be done but is not clear from the docs or the code.
(cc. @ehultee @@Suther11LBU)
I know @anoukvlug is working on something similar maybe these ideas help on that effort.
Part I:
How to calibrate the SMB with different climate data?
This section of the docs#climate data needs to be link to a tutorial that does the same climate tasks than the default preprocessing dirs in OGGM, with at least another example from the collections of climate databases. Probably showing how to run the following lines of code with different data sets.
@bearecinos: The main issue for me and our student when using different climates was the precipitation factor. The
winter_prcp_fac
should always be set to False, if for our own climate data we don't know what that is, and also make a sensitivity analysis for 'prcp_fac' (which is climate data dependent).cfg.PARAMS['use_winter_prcp_fac'] = False
andcfg.PARAMS['prcp_fac']= sensitivity analysis
.Possible solutions:
file suffix
that can store multiple inversions done with different SMB estimates. (see Part II).Part II:
@bearecinos: With my student I encountered that is very hard to make a sensitivity studies in the same working directory due to the lack of functions that allow a file suffix, this means that we have to repeat models runs and output data, duplicating what we have with multiple working directories.
mass_conservation_inversion(gdir, glen_a=None, fs=None, write=True,filesuffix='', water_level=None,t_lambda=None)
But that passing argument does not follow to theinversion_tasks(gdirs, glen_a=None, fs=None, filter_inversion_output=True,add_to_log_file=True)
. Maybe this can be done but is not clear from the docs or the code.