Version history#
v1.x (unreleased)#
Enhancements#
Bug fixes#
Breaking changes#
v1.6.3 (April 13, 2026)#
This is the final release in the 1.6.x series. It is fully backwards-compatible and brings a range of bug fixes, improvements, as well as new and updated standard projections. Thanks to the 8 contributors who made this release possible!
The main highlight is a new generation of preprocessed glacier directories, including fully operational RGI7 support and ERA5-calibrated directories with climate data extending to 2025. New directories including avalanche maps are also available.
Model improvements are plenty: highlights include calving support in the default
dynamical solver (SemiImplicitModel),
Glacier3dViz
and its ice thickness distribution algorithm, and RGI7 support. See below for a
comprehensive list of changes.
We also added two new tutorials showcasing the new directories, and a third one for glacier runoff sensitivity analysis.
This release was designed to produce only small changes to the standard projections released a couple of years ago (v1.6.1), before more substancial changes are coming with 1.7 and GlacierMIP4. See this blogpost for a broader discussion on new glacier directories and the new projections.
While 1.6.3 was just released, v1.7 is around the corner. Several major developments are already in progress, including the move of the daily mass balance model to core OGGM and improved parameter handling. Stay tuned for more coming soon!
New preprocessed directories#
The new default directories are mostly a data-quality and “behind-the-scenes” improvement over the previous ones, but with some notable differences:
the map projection was changed from “local mercator” to UTM. This has a very minor influence on glacier grids and geometries (with slightly larger distortions near UTM zone boundaries)
the default topography dataset is now COPDEM (almost) globally (previously NASADEM in mid-latitudes)
ERA5 directories now include data up to 2025
RGI7 directories are now available with a full workflow
the
_w_datafolders now include additional datasets: ITS_LIVE v2, Cook et al. (2023, Alps only), and GlaThiDa. Bugs in some datasets (Hugonnet, Millan) have also been correctednew directories including avalanche maps are available
other general enhancements and bug fixes that are listed below
By design, the new directories lead to very similar results to the previous (OGGM v1.6.1) ones, with small differences mainly due to topography updates and bug fixes. Larger differences may arise when using the new ERA5 or RGI7 directories, but these remain much smaller than those resulting from different calibration choices or model structures. See this blogpost for a summary.
Contributors#
Thanks to all contributors to this release: Nicolas Gampierakis, Dan Goldberg, Chloe Hancock, Marin Kneib, Fabien Maussion, Patrick Schmitt, Lilian Schuster, and Beatriz Recinos!
Enhancements#
Added
tasks.compute_fl_diagnostics_quantiles, this task is designed to calculate quantiles from multiple fl_diagnostic files. It enables users to compute metrics such as the median flowline across various GCM projections (PR1746). By Patrick SchmittNew ranking options for the
distribute.assign_points_to_bandtask, which determines the order in which pixels “melt away” when redistributing flowline model runs into 2D for visualization purposes. It is now possible to combine different variables fromgridded_data(e.g.slope,dis_from_border, …) to define this ranking, providing greater flexibility and control over how the melting sequence is visualized (PR1746). By Patrick SchmittAdded BedMachine products to the shop (PR1753). By Fabien Maussion
Updated itslive velocity products to v2 (PR1753). By Fabien Maussion
Added “reset_state()” function to
MassBalanceModelto signal any state-dependent mass balance model to “reset its state” at the start of the period. This function does nothing in the parent class and would only be implemented by a state-ful mass balance model. There might be a use for this in the future, but for now it’s just a placeholder (PR1757). By Dan Goldberg and Fabien Maussion.Added the ability to use an incomplete version of the full params.cfg file to override some default parameter values. This can be done by providing the file during initialization with
cfg.initialize(file=mini_params_filepath)(PR1776). By Patrick SchmittAdded a compile_fl_diagnostics (PR1753). By Fabien Maussion
New standard glacier directories now use a new reference lookup table to decide on the topo data to use (PR1781). By Fabien Maussion
Added the possibility to provide a custom grid in
workflow.merge_gridded_data. If no grid is provided, the default is to merge all grids of the provided gdirs (PR1779). By Patrick SchmittFlowlines shapefiles output now have more attributes and are easier to use (PR1786). By Fabien Maussion
Flowline diagnostic variables can now be saved with a monthly resolution. With this the unit of some variables depends on the requested resolution. To reflect this the correct unit is stored in the attributes of the variables and the following variable names were changed:
dhdt_myr->dhdt,climatic_mb_myr->climatic_mbandflux_divergence_myr->flux_divergence(PR1792). By Patrick SchmittNew workflow.invert_from_params task which allows to specify which (regional) glen A and sliding parameters to use. This is useful if you don’t have any data to calibrate to (PR1816). By Fabien Maussion
Many additions to the prepro_levels routine to accomodate the many additions to the glacier directories (RGI7, new climate data, etc.), as well as exporting geotiffs of ice thickness fields, etc. (PR1816). By Fabien Maussion
New precipitation correction factors for ERA5 data and bias files according to the new glacier directories in OGGM 1.6.3. (PR1816). By Fabien Maussion
New calibrate_inversion_from_volume which is the entity task version of calibrate_inversion_from_consensus. It finds the “best Glen A” to match the reference volume for a single glacier. (PR1816). By Fabien Maussion
Added a new way to calibrate the mass balance model with MB timeseries (PR1827). By Chloe Hancock
SemiImplicitModel (the default dynamical solver in OGGM) now also supports calving like FluxBasedModel does (PR1858). Inversion with calving remains poorly supported / untested since v1.6 series, but this is an important step to re-offer a full calving workflow in OGGM core. By Beatriz Recinos
Refactored installation. Pip installations now accept optional dependencies, and no longer requires dedicated yaml files. Added support for uv. (PR1849). By Nicolas Gampierakis.
Added CI workflow for new releases (PR1867). By Nicolas Gampierakis
Added the option to compute hypsometries as part of the preprocessing CLI. Previously this would have been a separate step (PR1872). By Fabien Maussion
Generated and documented new preprocessed directories including contributions from avalanches (PR1877). By Marin Kneib
Bug fixes#
Fixed a bug where Millan velocities would be assigned 0 instead of NaN in grid points without velocity (PR1753). By Fabien Maussion
apparent_mb_from_any_mb no longer computes mass-balance twice (PR1757). By Dan Goldberg and Fabien Maussion.
Fixed small bug in which ERA5 data was missatributed for two Pyrenean glaciers (PR1843). By Lilian Schuster
Fixed
TimeoutErrorwhen running tests when urlopen hangs on DNS lookup (PR1813). By Nicolas Gampierakis.Refactored mass balance functions get_specific_mb and get_ela. These are no longer recursive and have been optimised for performance. By Nicolas Gampierakis.
Changed COPDEM data source (again) - this comes with good sides as the download is much easier now (PR1773). By Fabien Maussion
Fixed an issue in how we stored the dem.tif files in the pre-procecessed directories, which meant that some files could take as much as 4 times more space as necessary (GH1856). In total this leads to pre-processed files roughly 20-40% larger than the previous versions, which unfortunately impacts some of the glacier directories created for this release. See also GH1864 for a more pervasive continuation of the issue and why gdirs still remain larger after the fix. By Fabien Maussion
Fixed
ModuleNotFoundErrorcaused by callingdistutilswhich has been deprecated since Python 3.12. Reimplementsstrtoboolnatively. By Nicolas Gampierakis.Removed deprecated
pkg_resourcesmodule as this was removed from Python 3.12 and setuptools 82.0 (PR1875). By Nicolas Gampierakis.
Breaking changes#
While we try to avoid breaking changes in minor releases, the following changes might break some code, but remain minor in nature:
PARAMS[‘use_winter_prcp_fac’] cfg.PARAMS[‘use_temp_bias_from_file’] have been replaced by explicit calls in code (PR1816). In general, parameters that indicate whether an action should be taken or not in a workflow should never have been a parameter in the first place. There are several other instances of this in OGGM, that will be reviewed in 1.7. By Fabien Maussion.
Changed to the default in distribute_thickness_per_altitude to not smooth the resulting thickness fields. This would yield to weird effects at glacier boundaries and seemed overkill since topography is smoothed quite aggressively as well (PR1773). By Fabien Maussion
v1.6.2 (August 25, 2024)#
A new minor release of the OGGM with several improvements and bug fixes. The changes and additions are important, but not fundamental. Most users should switch to this version if they don’t care about full reproducibility of existing results. The previous 1.6 preprocessed directories are still compatible and can be used with this version. Some bugs have been fixed however (see below), and if they matter to you, you may have to reprocess the data yourself or be patient (we aim to publish a “final” 1.6.X release sometime soon, which will comprise updated preprocessed repositories, including a working version of RGI7 repositories).
Enhancements#
There is now a possibility for initializing a elevation-band flowline using external thickness data and conduct a dynamic run with it (PR1658). By Patrick Schmitt
The default minimum thickness for the dynamic spinup was changed from 10 m to 2 m. The new value was found in a local study and makes a larger difference for smaller (thinner) glaciers (PR1667). By Patrick Schmitt
Two new functions,
workflow.merge_gridded_dataandsandbox.distribute_2d.merge_simulated_thickness, have been introduced for merging distributed data from multiple glacier directories, including the possibility of adding topography to the merged grid. The latter function acts as a wrapper for the first one, specifically designed for merging distributed thickness data from a dynamic model run (PR1674, PR1691, PR1697 and PR1719). By Alex Fischer and Patrick SchmittAdded a new calving module to the sandbox. The module is based on Malles et al., 2023, but is currently still in development and cannot be used operationally yet. In general, calving is not operational in the v1.6 series, it can only be used on a glacier by glacier basis and is not yet fully integrated in the workflow (PR1615). Based on PR1403 and PR1532 (unmerged). By Jan Malles and Fabien Maussion
Added new last millennium climate data to the shop: LMR Online and ModE-RA (PR1712). By Fabien Maussion
Added the option to use the 2D mask of a glacier for the calibration of the mass balance. One can now calibrate the mass balance from 2D data, which adds consistency when also the run itself is fully distributed. Changes are found in PR1709. By Alex Fischer
Added Cook et al 2023 Alps thickness data to the shop (PR1724). By Fabien Maussion
Added support for RGI7 (PR1657, PR1702 and PR1720). By Fabien Maussion
Added GlaThiDa data to the shop (PR1663). By Fabien Maussion
Added an installation guide for Windows users (PR1666 and PR1683). By Anouk Vlug and Rebekka Neugebauer
Made it easier to run parameter perturbation experiments by allowing more than one
mb_calib.jsonfile in the working directory (PR1678) and by adding a newperturbate_mb_paramstask (PR1669). By Fabien MaussionPreprocessed directories can now have categorical resolution classes like GloGEM does, where users can choose bins where a given dx is used (PR1664). It looks nicer to the eye, but I still think the continuous
dxapproach is better. By Fabien MaussionThe mass-balance model can now be calibrated on regional averages instead of glacier-per-glacier values. This is useful to trick RGI7 into being calibrated (PR1692). By Fabien Maussion
Added the rgi7g_to_complex task which adds a mask of glacier entities in the glacier complex glacier dirs (PR1736). By Fabien Maussion
A new global task (glathida.compile_glathida_on_grid) is available to generate big tables that can be used for e.g. ML workflows for ice thickness estimation (PR1782). By Fabien Maussion
Bug fixes#
Fixed a bug in
inversion.filter_inversion_outputthat caused an error for small glaciers with fewer than five grid points containing ice (PR1635). By Patrick SchmittChanged variable name from
t_biastot_spinupindynamic_spinup.run_dynamic_spinup, to avoid confusions with variable names of the massbalance models (PR1671). By Patrick SchmittFixed a bug in
dynamic_spinup.run_dynamic_melt_f_calibrationthat allowed the melt_f value to slightly exceed the defined limits (PR1685). By Patrick SchmittThe binned variables in the elevation band flowlines did not use the glacier mask when preserving the total values. This is a bad bug that is now fixed (PR1661). By Patrick Schmitt
When converting a variable of gridded_data to an tiff-file using
tasks.gridded_data_var_to_geotiffthe resulting coordinates where shifted half a pixel, this is now fixed (PR1682). By Patrick SchmittWhen adding the Hugonnet et al. (2021) dh/dt maps to the glacier directory and multiple files are needed, previously there was no check to ensure they all used the same coordinate reference system (CRS). This caused errors during the file merging process. The bug fix now checks if the files have different CRS. If they do, all files are converted to a single, common CRS to make sure they can be merged without issues (PR1698). By Patrick Schmitt
COPDEM data is now downloaded from public http server (no credentials required) (PR1684). By Codruț Diaconu
v1.6.1 (August 27, 2023)#
A new minor release of the OGGM with several improvements and bug fixes. We recommend all users currently using 1.6.0 to switch to this version if they are still in the testing/learning phase. If you rely on your results staying strictly the same, you should stick to the version you are currently running.
Breaking changes#
OGGM 1.6.1 should be fully compatible with 1.6.0 code. We have updated the pre-procecessed directories however, and recommend users to switch to the new OGGM version if possible.
The new pre-processed directories are available in the 2023.3 version: https://cluster.klima.uni-bremen.de/~oggm/gdirs/oggm_v1.6/L3-L5_files/2023.3
These incorporate all the changes listed below.
Bug fixes#
Corrected a small bug in the W5E5 climate files, which led to some glaciers getting climate data from a grid point further away than they should. This should affect the results of a few thousand glaciers in a minimal way. Fix (PR1547, PR1557) by Lilian Schuster
Added more flexibility to
compile_run_output. It is now possible to compile runs with different data variables (the default is NaN). It is needed to compile different spinup strategies together, as some include special data variables (e.g.is_fixed_geometry_spinup) (PR1563). By Patrick SchmittFixed a problem in the hydro outputs where on some occasions
melt_on_glacierwould be negative. We changed this term to become a positive term for snowfall on glacier instead (PR1584). By Lilian SchusterFixed an issue with volume below water level computations with lake-terminating glaciers (PR1584). This affected only diagnostic computations of the
volume_below_watervariable and should be insignificant. By Fabien Maussion
Enhancements#
There is now the possibility to compute distributed area and thickness changes from the flowline projections (PR1576, PR1585, PR1619, PR1623). The functionality is currently in the sandbox but is documented in the tutorials. By Anouk Vlug, Patrick Schmitt and Fabien Maussion
Added three new flowline diagnostic variables: thickness change in one year (
dhdt), forcing climatic mass balance (climatic_mb) and flux divergence (flux_divergence). All variables are in units meter of ice per year (PR1595). By Patrick SchmittAdded more flexibility to
run_dynamic_spinup. Users can now specify a target year and a desired value to match. The default is still the same, matching area or volume at the RGI date (PR1600). By Patrick SchmittAdded possibility to use MultiPolygon outlines together with elevation bands. That can be useful when working with local glacier inventories with multiple outlines (e.g. older outline single polygon but newer outline multi polygon for the same glacier) (PR1604). By Patrick Schmitt
OGGM can now read RGI7 files. OGGM was used to generate the RGI-TOPO dataset as well as auxiliary products for RGI7 (PR1572, PR1590). By Alexander Fischer and Fabien Maussion
The pre-processed directories are now run with dynamical spinup and calibration as the standard option. Dynamical calibration is run with a lower error tolerance than before, improving results in all regions (PR1558). By Fabien Maussion
OGGM now provides “standard” projections, attached to a specific OGGM version (PR1627). This will be a huge asset for many users and will help to track important changes as OGGM continues to improve. By Lilian Schuster
v1.6.0 (March 10, 2023)#
A new major release of the OGGM with several important changes. We recommend all users to switch to this version only if they are ready for a new study, or are prepared to rerun their simulations with changed results.
Breaking changes#
we removed the
init_glacier_regionstask, which was deprecated since a few OGGM versions. Similarly, other old functions (e.g.process_cmip5_data) were also removed.several default parameters were updated to new values. See “migrating guide” (in construction) to navigate through these changes.
the calibration of the mass balance models with the \(t^*\) (“T star”) method is no longer supported. The new calibration scheme is considerably more flexible, but relies on new parameter names.
as a result, old workflows and old glacier directories cannot be used (after Level 3) in OGGM v1.6 anymore.
Warning
Because of the many changes, the list below is not exhaustive at all. We preferred to focus on what is new in the tutorials, and recommend all returning users to go over the new tutorials to familiarize themselves with the changes.
Enhancements#
added support for new reference data (W5E5), a bias corrected dataset based on ERA5. This will become the new default in OGGM (PR1435). By Lilian Schuster
added support for a precipitation factor varying per glacier (PR1435). By Lilian Schuster
Added a new entity task
run_dynamic_melt_f_calibration. This task dynamically calibrates the temperature sensitivity mu star to a geodetic mass-balance observation. There are different options available how this is done, the default incorporates an inversion and a dynamic spinup in each iteration (PR1425). By Patrick SchmittAdded two new output variables in
FlowlineModel.run_until_and_store()(area_m2_min_handvolume_m3_min_h) which are needed for a dynamic mu star calibration which should include the minimum ice thickness argument of an dynamic spinup (needed as a filter for interannual changes of especially the area). Also includedcfg.PARAMS['dynamic_spinup_min_ice_thick']to be able to globally define the used minimum ice thickness for the dynamic spinup (PR1425). By Patrick SchmittRearanged the entity tasks
run_dynamic_melt_f_calibrationandrun_dynamic_spinupwith all help functions in new moduloggm.core.dynamic_spinup(PR1425). By Patrick SchmittRearanged the prepro levels. Level 4 now adds a historical run (previously done in level 5) and a spinup historical run (using dynamic mu star calibration). Level 5 now replaces level 4 and creates the minigdirs (where only the files for a model run are kept and no inversion is possible anymore) (PR1425). By Patrick Schmitt
Added support for Millan et al 2022 velocity and thickness in the shop (PR1443). By Fabien Maussion
Added support for Hugonnet et al 2021 dhdt in the shop (PR1529). By Fabien Maussion
Added trapezoidal downstream line (PR1491). Can be selected with
cfg.PARAMS['downstream_line_shape'], with the options'parabol'(default) or'trapezoidal'before callinginit_present_time_glacier(gdir). By Patrick SchmittAdded option to plot flowline velocities in
graphics.plot_modeloutput_map()(PR1496). By Patrick SchmittAdded option to extend the plot limits when plotting multiple gdirs. Could be used with
extend_plot_limits=True, e.g.graphics.plot_modeloutput_map(gdirs, extend_plot_limits=True)(PR1508). By Patrick SchmittAdded new argument
add_fixed_geometry_spinupto extend the model run ofrun_dynamic_spinupwith a fixed-geometry-spinup if the spinup period is shortened(PR1514). By Patrick SchmittAdded SemiImplicitModel for a single trapezoid or rectangular flowline developed by Dan Goldberg (PR1507). By Patrick Schmitt
Adapted
filter_inversion_outputto conserve the bed shape during filtering (PR1502). By Patrick SchmittAdapted calculation of inversion flux to avoid zero thickness at last grid point (PR1502). By Patrick Schmitt
Added the possibility to use the UTM map proj instead of the local TM used by OGGM usually (PR1526). Leads to qualitative and quantitative differences when used. By Fabien Maussion
Bug fixes#
corrected a but in
apparent_mb_from_any_mb, where only two years of MB would be used instead of a range of years (PR1426). By BowenCorrected
sourceargument intasks.define_glacier_regionto handle a list of DEM sources. (PR1506). By Daniel Otto
v1.5.3 (02.04.2022)#
New release of the OGGM model, setting the ground for a major update to be released soon. Several major improvements available for testing, and will become the default in a future major release:
new
MassRedistributionCurveModelwhich uses the Huss curves to parameterize glacier retreat.new
mu_star_calibration_from_geodetic_mbtask which now calibrates each glacier individuallynew
run_dynamic_spinuptask which used the ice dynamics model to spinup the model (instead of the default equilibrium assumption)and much more! See below.
Breaking changes#
In the process of adding new output diagnostic files (PR1308), the signature and return output of
FlowlineModel.run_until_and_storechanged. We hope that this change won’t affect too many of our users but if it does, it should be relatively straightforward to update your code: users now control the number of outputs with thefl_diag_pathandgeom_pathkwargs. Most users will probably have used therun_*tasks anyway, and won’t be affected by this change (except maybe for the point below). By Fabien MaussionFurthermore,
cfg.PARAMS['store_model_geometry']is now set toFalseper default. If you were relying on these files (e.g. for a run with spinup or similar), your code will fail withFileNotFoundErrorfor themodel_geometryfiles. Settingcfg.PARAMS['store_model_geometry']back toTrueshould solve the issue.Copernicus DEM 90m is now called
'COPDEM90'instead of'COPDEM'and also uses the 2021 release with additional data corrections (PR1364).
Enhancements & bug fixes#
Added the ELA back as a variable. Unlike before it is now a diagnostic variable that can be computed independent of a model run with
global_tasks.compile_ela(PR1333). By Anouk VlugAdded a
prescribe_yearskwarg toRandomMassBalanceto control which years are picked instead of the random number generator (PR1310). By Fabien MaussionAdded a
stop_criterionkwarg torun_until_and_store, so that users can specify when a simulation has to stop based on their chosen criteria (PR1303). By Fabien MaussionImplemented a
MassRedistributionCurveModelunder the FlowlineModel interface, which uses the Huss curves to parameterize glacier retreat. There is some parameterisation for advance as well, but a very coarse one (PR1288). By Fabien MaussionAdded a new
mu_star_calibration_from_geodetic_mbtask which now calibrates each glacier individually from the reference geodetic MB data. This is a rather quick solution for now, but it opens new avenues (PR1286). A bug in the new feature was later corrected (PR1351). By Fabien Maussion and Lilian SchusterAdded a new
utils.get_geodetic_mb_dataframewhich returns the reference geodetic MB data, currently from Hugonnet et al 2021. Also changed the behavior ofcfg.DATAto be shared across processes (PR1285). By Fabien MaussionAdded a new output diagnostic files containing variables along the flowlines instead of aggregated at the glacier level (PR1308). These files are stored in the glacier directory (
gdir.get_filepath('fl_diagnostics')) and are not saved per default. Setcfg.PARAMS['store_fl_diagnostics'] = Trueto activate it. By Fabien MaussionAdded a new keyword argument to
run_with_hydro,run_from_climate_data, andrun_until_and_store:fixed_geometry_spinup_yrwhich allows to “start” a simulation at an earlier date than the RGI date (PR1327). In practice, it computes the glacier volume change from SMB only (fixed geometry), ignoring glacier area change in this period. Therefore, it is only valid for short periods of times (years, not decades). By Fabien MaussionAdded new keyword arguments to
run_with_hydrowhich allow to select which glacier area should be used as reference for the hydro computations (PR1331). Furthermore, it also allows to use a previous geometry file for the computations, i.e. allowing for continuous historical to projections outputs (if needed). By Fabien MaussionThe package “descartes” is no longer a required dependency for oggm.
Added a new entity task
run_dynamic_spinup. This task dynamically spinup the glacier to match the area or volume at the RGI date. To do so the glacier is simulated from the recent past (default 1980) to the RGI date. The unknown glacier geometry at the start of the simulation is iteratively changed with a short constant climate run with a varying temperature bias (PR1342, PR1361). By Patrick SchmittAdded new options to write_centerlines_to_shape which allow to output smoother and more correct centerlines (PR1357). By Fabien Maussion
Added the 30m version of the Copernicus DEM. This DEM can be set with
source='COPDEM30'and can be useful for smaller sized glaciers. An account with Copernicus is required to access the DEM (free for academics). (PR1364). By Matthias DuschAdded a new merge_consecutive_run_outputs entity task which allows to merge two output files together (PR1379). This is useful to merge e.g. spinup + historical or historical + projection runs in post-processing. By Fabien Maussion
v1.5.2 (29.08.2021)#
Very minor release to remove the dependency on the python-colorspace package.
Breaking changes#
Removed use and dependency on the
python-colorspacepackage. Although not very dramatic, this change might change the way your plots look like (PR1284). Users can specify their own colormaps anyways to get back to the old plots. By Fabien Maussion
v1.5.1 (28.08.2021)#
This is a minor release of OGGM, containing mostly bugfixes and a few new features.
Breaking changes#
This version should be fully backwards compatible.
Enhancements#
Added
cook_rgidf()function inoggm.utilsto simplify the use of a non-RGI glacier inventory in OGGM (PR1251). By Li FeiAdded support for last millennium reanalysis data to the shop (PR1257). By Fabien Maussion
Added a new
apply_funcargument inutils.compile_glacier_statisticsthat allows user to compute any new statistics from a gdir themselves (PR1259) By Li FeiAdded a new
workflow.match_geodetic_mb_for_selectionfunction to match the MB bias for any selection of glaciers (PR1248) By Patrick SchmittAdded functionality to control the area over which the hydrological output is computed (PR1264, PR1276). By Fabien Maussion
Added a new (wrong) way to compute equilibrium runs based on the average climate (PR1275). By Fabien Maussion
Bug fixes#
Fixed a quite bad bug where monthly runoff data would have very large artifacts (PR1283). By Fabien Maussion
Small bug fix to ensure backwards compatibility of
gdir.get_filepath('model_run'). By Fabien MaussionVarious backwards compatibility fixes (mostly xarray).
v1.5.0#
This a new update of the OGGM model. It should be largely compatible with OGGM v1.4.0. The main addition in this release is the computation of hydrological diagnostics. Check-out the new tutorial at https://tutorials.oggm.org !
Breaking changes#
Mass balance models now do their computations with float64 arrays instead of float32 (PR1211). By Lilian Schuster
prcp_bias renamed to prcp_fac in mass balance models (PR1211). By Lilian Schuster
Various name changes (with deprecation cycle, i.e. old code should still work):
gdir.get_filepath('model_run')renamed togdir.get_filepath('model_geometry');run_pathkwarg inrun_until_and_storerenamed togeom_path.
Enhancements#
Mass balance models now properly refer to
prcp_fac(was incorrectly namedprcp_bias) (PR1211). Additionally, therun_*tasks inoggm.core.flowlinecan now also adjust the precipitation factor for sensitivity experiments. By Lilian SchusterUsers can now choose the variables that are written in diagnostics files and can also choose not to write the glacier geometry files during the run (PR1219). The respective global parameters are
store_diagnostic_variablesandstore_model_geometry. By Fabien MaussionAdded experimental
run_with_hydrotask which computes hydrological diagnostics after a standard dynamical run (PR1224). This is highly experimental, will likely change in the future. By Fabien MaussionAdded monthly output to
run_with_hydro(PR1232). By Sarah Hanus and Fabien MaussionAdded new diagnostic variables (terminus_thick_0 …) to better track the thickness at the terminus (PR1230). By Fabien Maussion
Temperature and precipitation corrections can now also be applied on a monthly basis for the PastMassBalanceModel (PR1247). By Fabien Maussion
Bug fixes#
Fixed bug in hydro date / calendar date conversions with month=1 (i.e. no conversion) (PR1220). By Lilian Schuster
Fixed bug in
graphics.plot_distributed_thicknesswhich led to an error with elevation bands flowlines (PR1241). By Li Fei
v1.4.0 (17.02.2021)#
This a new major update of the OGGM model. It it the result of one year of development, with several non-backwards compatible changes.
We recommend all users to update to this version.
Major new release 1.4!
There have been a large number of additions too long to be summarized, and the list below is far from complete (we have waited way too long for this release). Here are the highlights:
new option to compute centerlines: “elevation band flowlines”
new option to calibrate OGGM mass balance regionally to geodetic estimates
new option to calibrate the creep parameter Glen A to match the ice thickness to the Farinotti et al. (2019) consensus
users can now choose from a variety of pre-processed directories, including with new climate data (e.g. ERA5)
OGGM now has a calving parameterization (switched off per default)
OGGM shop, to download several new input datasets
Historical runs (“spin-up”) are now available per default and can be readily used for projections
and much much more….
Note: not all changes since v1.3.1 are documented below. We’ll try to be better with documenting changes in the future.
Breaking changes#
The dynamical model now has a “real” parameterization for calving (WIP). A blog post explaining it can be found on the website (PR945). By Fabien Maussion
The calving parameterization has been extended and made more useful by logging its output to compiled files. See PR996 for code changes and watch out for upcoming changes in the documentation and notebooks. By Fabien Maussion
The new default when applying GCM data to a glacier is to correct for temperature standard deviation (PR978). The previous default was wrong and should not be the default. By Fabien Maussion
Added a new “glacier directory initialization” global task: init_glacier_directories (PR983, GH965). It replaces init_glacier_regions and covers all its functionality, except that it does not process the DEM data (this was a confusing “feature” of init_glacier_regions). The old task init_glacier_regions is officially deprecated but without warnings for now. Since it is a very widely used task, we prefer to deprecate it in a slow cycle: first, change the documentation, deprecate later. By Fabien Maussion
More climate datasets are now supported in OGGM (PR1036). A new task (historical_climate_qc) has been added to quality check the climate timeseries. This has not been tested intensively yet and is still a WIP. By Fabien Maussion
The order of the tasks applied to the preprocessed levels has changed, climate data comes in later (PR1038). By Fabien Maussion
The default DEMS used for each glacier have changed for more modern ones (PR1073). By Fabien Maussion
The inversion tasks now can invert for trapezoid shapes (PR1045). This has non-trivial consequences for the model workflow. First and foremost, the decision about using a trapezoid bed (instead of parabolic when the parabola is too “flat”) is taken at the inversion step and not afterwards. The forward model and the inversion are therefore much more consistent. Furthermore, the task filter_inversion_output was simplified to take the estimated downstream bedshapes into account and now preserves glacier area, not volume. This also is a step towards more physical consistency between inverse and forward model. By Fabien Maussion
The vascaling module has been removed from oggm core (PR1065). It is now available via a separate package (oggm-vas, maintained by Moritz Oberrauch).
New options to compute the length of a glacier during a run: PARAMS[‘min_ice_thick_for_length’] and PARAMS[‘glacier_length_method’] (PR1069). By Matthias Dusch.
Several further important changes to be documented later in (PR1099). By Fabien Maussion.
Enhancements#
Added Copernicus DEM GLO-90 as optional DEM. Requires credentials to
spacedata.copernicus.eustored in a local.netrcfile. Credentials can be added on the command line via$ oggm_netrc_credentials(PR961). By Matthias Dusch.Added NASADEM as optional DEM. This is a improved version of SRTM and could replace the current SRTM (https://lpdaac.usgs.gov/products/nasadem_hgtv001/). (PR971). By Matthias Dusch.
Added support for “squeezed” flowlines from Huss & Farinotti 2012 (PR1040). The corresponding tasks are
tasks.elevation_band_flowline()andtasks.fixed_dx_elevation_band_flowline(). By Fabien MaussionAdded a calibrate_inversion_from_consensus global task which calibrates Glen A so that the volume of glaciers in a selection is matched (PR1043). By Fabien Maussion
Added support for writing a NetCDF variable in
gridded_data.ncfile to a georeferenced GeoTiff file (PR1118). The new task aretasks.gridded_data_var_to_geotiff(). By Li FeiAdded a find_inversion_calving_from_any_mb task which uses the Recinos et al. approach, but on any mass balance profile (PR1043). By Fabien Maussion
Bug fixes#
v1.3.1 (16.02.2020)#
Minor release with small improvements but an important and necessary change in multiprocessing.
Enhancements#
After a recent change in multiprocessing, creating a pool of workers became very slow. This change was necessary because of race conditions in GDAL, but these conditions are rarely relevant to users. We now make this change in multiprocessing optional (PR937)
various improvements and changes in the dynamical model - mass balance model API. These were necessary to allow compatibility with the PyGEM model (PR938, PR946, PR949, PR953, PR951). By Fabien Maussion and David Rounce.
added a “flux gate” to allow for precise mass-conservation checks in numerical experiments (PR944). By Fabien Maussion.
v1.3.0 (02.02.2020)#
The time stepping scheme of OGGM has been fixed for several flaws. This blog post explains it in detail. We expect some changes in OGGM results after this release, but they should not be noticeable in a vast majority of the cases.
We recommend all users to update to this version.
Breaking changes#
The adaptive time stepping scheme of OGGM has been fixed for several flaws which lead to unstable results in certain conditions. See the blog post for a full description. The API didn’t change in the process, but the OGGM results are likely to change slightly in some conditions. (GH731, GH860, PR931). By Fabien Maussion and Alex Jarosch.
Enhancements#
The test_models test module has been refactored to use pytest fixtures instead of unittest classes (PR934 and PR922). By Chris Merrill.
v1.2.0 (04.01.2020)#
OGGM is released under a new license. We now use the BSD-3-Clause license.
v1.1.3 (03.01.2020)#
Minor release of the OGGM model with several small improvements. We don’t expect major changes in the model results due to this release.
Important: this will be the last release under a GPL license. The next release (v1.2) will be done without modifications but under a BSD-3-Clause License.
Enhancements#
New function
cfg.add_to_basenamesnow allows users to define their own entries in glacier directories (GH731). By Fabien Maussion.New function
inversion.compute_inversion_velocitieswrites the section and surface veloicites in the inversion output (GH876). By Beatriz Recinos.Added ASTER v3 as optional DEM. Requires credentials to
urs.earthdata.nasa.govstored in a local.netrcfile. Credentials can be added on the command line via$ oggm_netrc_credentials(PR884). By Matthias Dusch.Added a global task (
tasks.compile_task_timeand the associated method at the GlacierDirectory levelget_task_time) to time the execution of entity tasks (GH918). By Fabien Maussion.Improved performance of numerical core thanks to changes in our calls to np.clip (PR873 and PR903). By Fabien Maussion.
Added a function cfg.initialize_minimal to run the flowline model without enforcing a full download of the demo files (PR921). By Fabien Maussion.
Bug fixes#
Small bugs in DEM processing fixed - internal refactoring followed, hopefully for the good (PR890 and PR886). By Fabien Maussion and Matthias Dusch.
v1.1.2 (12.09.2019)#
Minor release of the OGGM model, with several substantial improvements, most notably:
update in the inversion procedure for calving glaciers (Recinos et al., 2019)
new glacier evolution model based on Marzeion et al., 2012
We don’t expect major changes in the model results due to this release.
Breaking changes#
run_untilnow makes sure that the years (months) are not crossed by the adaptive time-stepping scheme (GH710).run_untilandrun_until_and_storeshould now be consistent. The change is unlikely to affect the majority of users (which usedrun_until_and_store), but the results orrun_untilcan be affected (PR726). By Matthias Dusch.find_inversion_calvinghas been renamed tofind_inversion_calving_loopand will probably be deprecated soon (PR794). By Fabien Maussion.use_rgi_area=Falsenow also recomputes CenLon and CenLat on the fly. (GH838). By Fabien Maussion.
Enhancements#
Added new
gridded_attributesandgridded_mb_attributestasks to add raster glacier attributes such as slope, aspect, mass balance… to the glacier directory (PR725). This can be useful for statistical modelling of glacier thickness. By Matteo Castellani.Added support for a new DEM dataset: Mapzen, found on Amazon cloud (GH748, PR759). Also added some utility functions to handle DEMs, to be improved further in the near future. By Fabien Maussion.
Added support for a new DEM dataset: REMA (PR759). By Fabien Maussion.
Added an option to pre-process all DEMs at once (PR771). By Fabien Maussion.
Added support for another evolution model: the volume-area-scaling based model of Marzeion et al., 2012 (PR662). This is a major enhancement to the code base as it increases the number of choices available to users and demonstrates the modularity of the model. By Moritz Oberrauch.
Changed the way the calving flux is computed during the ice thickness inversion. This no longer relies on an iteration over mu*, but solves for h instead. The new function is likely to replace the “old” calving loop (PR794). By Fabien Maussion.
compile_climate_inputandcompile_run_outputare now faster for larger numbers of glaciers thanks to temporary files (PR814). By Anouk Vlug. Could be made faster with multiprocessing one day.OGGM can now run in “minimal mode”, i.e. without many of the hard dependencies (GH420). This is useful for teaching or idealized simulations, but won’t work in production. By Fabien Maussion.
the flowline model gives access to new diagnostics such as ice velocity and flux along the flowline. The numerical core code changed in the process, and we will monitor performance after this change (PR853). By Fabien Maussion.
Bug fixes#
Preprocessed directories at the level 3 now also have the glacier flowlines ready for the run (GH736, PR771). By Fabien Maussion.
Nominal glaciers now error early in the processing chain (GH832). By Fabien Maussion.
Specific MB (not used operationally) was wrongly computer for zero ice thickness rectangular or parabolic sections. This is now corrected (GH828). By Fabien Maussion.
Fixed a bug in model output files where SH glaciers were wrongly attributed with NH calendar dates (GH824). By Fabien Maussion.
v1.1.1 (24.04.2019)#
Minor release of the OGGM model, with several bugfixes and some improvements.
We don’t expect any change in the model results due to this release.
Enhancements#
Adapted
graphics.plot_domain,graphics.plot_centerlinesandgraphics_plot_modeloutput_mapto work with merged glaciers (PR726). By Matthias Dusch.Added (and updated) an official task to find the calving flux based on the mass-conservation inversion (inversion.find_inversion_calving). This is still in experimentation phase! (PR720). By Beatriz Recinos.
Added a mechanism to add custom MB data to OGGM (GH724). By Fabien Maussion.
The ALOS Global Digital Surface Model “ALOS World 3D - 30m” DEM from JAXA can now be used as alternative DEM within OGGM (PR734). By Matthias Dusch.
Switch to setuptools-scm as a version control system (GH727). By Timo Rothenpieler.
Bug fixes#
Fixed several problems with the file download verification algorithm. By Timo Rothenpieler.
Fixed a timing problem in the benchmark command line tool (PR717). By Fabien Maussion.
v1.1 (28.02.2019)#
This is a major new release of the OGGM model, with substantial improvements to version 1. We recommend to use this version from now on. It coincides with the publication of our publication in Geoscientific Model Development.
New contributors to the project:
Matthias Dusch (PhD student, University of Innsbruck), added extensive cross-validation tools and an associated website.
Philipp Gregor (Master student, University of Innsbruck), added options to switch on lateral bed stress in the flowline ice dynamics
Nicolas Champollion (PostDoc, University of Bremen), added GCM data IO routines.
Sadie Bartholomew (Software Engineer, UK Met Office), added ability to replace colormaps in graphics with HCL-based colors using python-colorspace.
Breaking changes#
The utils.copy_to_basedir() function is changed to being an entity task. In addition gcm_data files, when present, will from now on always be copied when using this task (GH467 & PR468). By Anouk Vlug.
Accumulation Area Ratio (AAR) is now correctly computed (GH361). By Fabien Maussion.
The method used to apply CRU and GCM anomalies to the climatology has changed for precipitation: we now use scaled anomalies instead of the standard anomalies (PR393). The previous method might have lead to negative values in some cases. The corresponding reference t* have also been updated (PR407). This change has some consequences on the the model results: cross-validation indicates very similar scores, but the influence on global model output has not been assessed yet. By Fabien Maussion.
It is now possible to run a simulation with spinup in the standard workflow (PR411). For this to happen it was necessary to clean up the many *filesuffix options. The new names are more explicit but not backwards compatible. The previous filesuffix is now called output_filesuffix. The previous input_filesuffix is now called climate_input_filesuffix. The random_glacier_evolution task is now called run_random_climate for consistency with the other tasks See the PR linked above for more info. By Fabien Maussion.
RGI version 4 isn’t supported anymore (GH142). By Fabien Maussion.
Rework of the 2d interpolation tasks for ice thickness in the context of ITMIX2. The new interpolation are better, but not backwards compatible. Aside of me I don’t think anybody was using them (PR465). By Fabien Maussion.
Diagnostic variables (length, area, volume, ELA) are now stored at annual steps instead of monthly steps (PR488). The old behavior can still be used with the
store_monthly_stepkwarg. Most users should not notice this change because the regionally compiled files were stored at yearly steps anyways. By Fabien Maussion.The list of reference t* dates is now generated differently: instead of the complex (and sort of useless) nearest neighbor algorithm we are now referring back to the original method of Marzeion et al. (2012). This comes together with other breaking changes, altogether likely to change the results of the mass balance model for some glaciers. For more details see the PR: PR509 By Fabien Maussion.
The ice dynamics parameters (Glen A, N, ice density) are now “real” parameters accessible via
cfg.PARAMS(PR520, GH511 and GH27). Previously, they were also accessible via a module attribute incfg, which was more confusing than helping. Deprecated and removed a couple of other things on the go, such as the dangerous `optimize_inversion_paramstask (this cannot be optimized yet) and the uselessvolume_inversionwrapper (now calledmass_conservation_inversion) By Fabien Maussion.The temperature sensitivity mu* is now flowline specific, instead of glacier wide. This change was necessary because it now allows low-lying tributaries to exist, despite of too high glacier wide mu*. This change had some wider reaching consequences in the code base and in the mass balance models in particular: PR539. This will also allow to merge neighboring glaciers in the future. By Fabien Maussion.
The “human readable” mu* information is now stored in a JSON dict instead of a csv: PR568. By Fabien Maussion.
The global task glacier_characteristics has been renamed to compile_glacier_statistics (PR571). By Fabien Maussion.
The
process_cesm_datatask has been been moved to gcm_climate.py addressing: GH469 & PR582. By Anouk Vlug.The shapefiles are now stored in the glacier directories as compressed tar files, addressing GH367 & GH615. This option can be turned off with cfg.PARAMS[‘use_tar_shapefiles’] = False. By Fabien Maussion.
Enhancements#
Added a utility function to easily get intersects files (PR402). By Fabien Maussion.
The old GlaThiDa file linking the total volume of glaciers (T database) to RGI has been updated to RGI Version 6 (PR403). Generally, we do not recommend to use these data for calibration or validation because of largely unknown uncertainties. By Fabien Maussion.
The computing efficiency of the 2D shallow ice model has been increased by a factor 2 (PR415), by avoiding useless repetitions of indexing operations. The results shouldn’t change at all. By Fabien Maussion.
Added optional shape factors for mass-conservation inversion and FluxBasedModel to account for lateral drag dependent on the bed shape (PR429). Accepted settings for shape factors are None, ‘Adhikari’ (Adhikari & Marshall 2012), ‘Nye’ (Nye, 1965; equivalent to Adhikari) and ‘Huss’ (Huss & Farinotti 2012). Thorough tests with applied shape factors are still missing. By Philipp Gregor.
Some amelioration to the mass balance models (PR434). Added a
repeatkwarg to thePastMassBalancein order to loop over a selected period. Added anUncertainMassBalancemodel which wraps an existing model and adds random uncertainty to it. By Fabien Maussion.The DEM sources are now clearly stated in each glacier directory, along with the original data citation (PR441). We encourage to always cite the original data providers. By Fabien Maussion.
Added some diagnostic tools which make it easier to detect dubious glacier outlines or DEM errors (PR445). This will be used to report to the RGI authors. By Fabien Maussion.
Added a new parameter (
PARAMS['use_rgi_area']), which specifies whether OGGM should use the reference area provided by RGI or the one computed from the local map and reprojected outlines (PR458, default: True). By Matthias Dusch.A new
simple_glacier_maskstasks allows to compute glacier rasters in a more robust way than the default OGGM method (PR476). This is useful for simpler workflows or to compute global statistics for external tools like rgitools. This task also computes hypsometry files much like RGI does. By Fabien Maussion.Reference glaciers now have mass balance profiles attached to them, if available. You can get the profiles with
gdir.get_ref_mb_profile()(PR493). By Fabien Maussion.New
process_histalp_datatask to run OGGM with HISTALP data automatically. The task comes with a list of predefined t* like CRU and with different default parameters (see blog). The PR also adds some safety checks at the calibration and computation of the mass balance to make sure there is no misused parameters (PR493). By Fabien Maussion.The
process_cesm_datafunction has been split into two functions, to make it easier to run oggm with the climate of other GCM’s:process_cesm_datareads the CESM files and handles the CESM specific file logic.process_gcm_datais the general task able to handle all kind of data.process_cesm_datacan also be used as an example when you plan make a function for running OGGM with another GCM (GH469 & PR582). Anouk Vlug.New
process_dummy_cru_filetask to run OGGM with randomized CRU data (PR603). By Fabien Maussion.Colormaps in some graphics are replaced with Hue-Chroma-Luminance (HCL) based improvements when python-colorspace is (optionally) installed (PR587). By Sadie Bartholomew.
Added a workflow
merge_glacier_taskswhich merges tributary/surrounding glaciers to a main glacier, allowing mass exchange between them. This is helpful/necessary/intended for growing glacier experiments (e.g. paleoglaciology) (PR624). By Matthias Dusch.New
oggm_preprocommand line tool to run the OGGM preprocessing tasks and compress the directories (PR648). By Fabien Maussion.init_glacier_regions task now accepts RGI Ids strings as input instead of only Geodataframes previously (PR656). By Fabien Maussion.
The
entity_taskdecorator now accepts a fallback-function which will be executed if a task fails and cfg.PARAMS[‘continue_on_error’] = True. So far only one fallback function is implemented for climate.local_t_star (PR663). By Matthias Dusch.New process_gcm_data task to handle CMIP5 files. By Nicolas Champollion.
Bug fixes#
Remove dependency to deprecated matplotlib._cntr module (GH418). By Fabien Maussion.
Fixed a bug in tidewater glaciers terminus position finding, where in some rare cases the percentile threshold was too low (PR444). By Fabien Maussion.
Fixed a caching bug in the test suite, where some tests used to fail when run for a second time on a modified gdir (PR448). By Fabien Maussion.
Fixed a problem with netCDF4 versions > 1.3 which returns masked arrays per default. We now prevent netCDF4 to return masked arrays altogether (GH482). By Fabien Maussion.
Internals#
We now use a dedicated server for input data such as modified RGI files (PR408). By Fabien Maussion.
Test fix for googlemaps. By Fabien Maussion.
Added a utility function (
idealized_gdir()) useful to dow flowline experiments without have to create a local map (PR413). By Fabien Maussion.
v1.0 (16 January 2018)#
This is the first official major release of OGGM. It is concomitant to the submission of a manuscript to Geoscientific Model Development (GMD).
This marks the stabilization of the codebase (hopefully) and implies that future changes will have to be documented carefully to ensure traceability.
New contributors to the project:
Anouk Vlug (PhD student, University of Bremen), added the CESM climate data tools.
Anton Butenko (PhD student, University of Bremen), developed the downstream bedshape algorithm
Beatriz Recinos (PhD student, University of Bremen), participated to the development of the calving parametrization
Julia Eis (PhD student, University of Bremen), developed the glacier partitioning algorithm
Schmitty Smith (PhD student, Northand College, Wisconsin US), added optional parameters to the mass balance models
v0.1.1 (16 February 2017)#
Minor release: changes in ITMIX to handle the synthetic glacier cases.
It was tagged only recently for long term documentation purposes and storage on Zenodo.
v0.1 (29 March 2016)#
Initial release, used to prepare the data submitted to ITMIX (see here).
This release is the result of several months of development (outside of GitHub for a large part). Several people have contributed to this release:
Michael Adamer (intern, UIBK), participated to the development of the centerline determination algorithm (2014)
Kévin Fourteau (intern, UIBK, ENS Cachan), participated to the development of the inversion and the flowline modelling algorithms (2014-2015)
Alexander H. Jarosch (Associate Professor, University of Iceland), developed the MUSCL-SuperBee model (PR23)
Johannes Landmann (intern, UIBK), participated to the links between databases project (2015)
Ben Marzeion (project leader, University of Bremen)
Fabien Maussion (project leader, UIBK)
Felix Oesterle (Post-Doc, UIBK) provided the AWS deployment script (PR25)
Timo Rothenpieler (programmer, University of Bremen), participated to the OGGM deployment script (e.g. PR34, PR48), and developed OGGM installation tools
Christian Wild (master student, UIBK), participated to the development of the centerline determination algorithm (2014)