Recent Releases of openAMUNDSEN

openAMUNDSEN - v1.2.1

  • Fix regression introduced in v1.1.3 where nan snowfall fractions for timesteps with missing temperature/humidity data were not handled correctly, causing precipitation/snowfall/rainfall fields to be filled with nan instead of 0

Cryosphere - Sea Ice - Python
Published by fhanzer 3 months ago

openAMUNDSEN - v1.2.0

New features:

  • Add config parameter output_data.grids.layout = "roi_pixel" (applicable for netcdf and memory grid outputs) that stores only ROI pixels as flattened 1D arrays instead of full grids. For setups with a small ROI inside a large domain, this reduces I/O overhead and output size. (#110)
  • Add config parameter meteo.precipitation_phase.enforce_no_snow_below_rain (default false) which enforces that there is no snow falling at elevations below the highest elevation where precipitation is 100% rain (might happen in inversion situations otherwise) (#113)
  • Add config parameter input_data.meteo.enable_missing_data_checks (default true). When set to false, there is no error raised if meteorological input data is missing at the beginning or end of the simulation period or unavailable for the entire period. This makes it possible to run the model through periods with missing data, for example in operational applications, even though affected timesteps will contain nan values. (263b4ae33b58a187ac10af63a45e0c3d8b77822d)

Other changes:

  • Validate that the resolution of input rasters matches the configured model grid resolution (0de14247b730ccfba1de44266929f2bf6a219fff)
  • Switch from loguru to stdlib logging (#111)
  • Drop support for Python 3.8 and 3.9 (073d08284fa7957575d2347af13654596f323ae1)

Cryosphere - Sea Ice - Python
Published by fhanzer 3 months ago

openAMUNDSEN - v1.1.6

  • Add a new numba_threads configuration parameter to control the number of threads used by numba parallel regions.

    Allowed values:

    • "auto" (default): Use the value of the NUMBA_NUM_THREADS environment variable if set, otherwise automatically determine thread count based on grid size (1 thread for grids < 100 pixels, 2 threads for grids < 10,000 pixels, 4 threads for larger grids)
    • Integer value: Use a specific number of threads
    • null: Use the system default

Cryosphere - Sea Ice - Python
Published by fhanzer 5 months ago

openAMUNDSEN - v1.1.5

  • Add function meteo.relative_humidity_from_dew_point_temperature() (a7cb4cc7bb7c09aa798d1dcb4816a6e44167cb22)
  • Fix compatibility issues with pandas 3.0 (392790bee65088cb9fada36364ea3af1defa5707)

Cryosphere - Sea Ice - Python
Published by fhanzer 5 months ago

openAMUNDSEN - v1.1.4

  • Use the netCDF4 engine when writing netCDF files (xarray default engine order is since v2025.09.1 ['h5netcdf', 'scipy', 'netcdf4'], so when h5netcdf is not installed scipy would otherwise be used) (2e712c2b691f7cc3157cc959ed4a255f577fe54f)

Cryosphere - Sea Ice - Python
Published by fhanzer 9 months ago

openAMUNDSEN - v1.1.3

  • Fix bug in wet-bulb temperature calculation (bf92ebb29e14ae3a93e059a70c201751b21adbf6): if relative humidity was NaN, oa.meteo.wet_bulb_temperature() incorrectly returned the air temperature (i.e. as if RH were 100 %). Now, NaN is returned where either temperature or relative humidity are NaN.

Cryosphere - Sea Ice - Python
Published by fhanzer 9 months ago

openAMUNDSEN - v1.1.2

  • Fix a meteo data aggregation issue which would occur when the data for one station ends less than one day before the simulation start date

Cryosphere - Sea Ice - Python
Published by fhanzer 10 months ago

openAMUNDSEN - v1.1.1

Fix compatibility for Python < 3.10

Cryosphere - Sea Ice - Python
Published by fhanzer 11 months ago

openAMUNDSEN - v1.1.0

New features:

  • Add support for piecewise linear regressions for temperature/humidity interpolation to capture non-uniform gradients (#108). To enable, set config.meteo.interpolation.temperature.regression_params.max_segments or config.meteo.interpolation.humidity.regression_params.max_segments to a value > 1 (and potentially adjust min_points_per_segment).
  • Implement experimental glacier geometry change model (02ee5886ab52d83dd28a254d124fb161b0c73c14)

Enhancements:

  • Silently enable correct aggregation if data is available (by @geopanda1, #106)
  • Remove superfluous loop in IDW function, resulting in a significant speedup (by @geopanda1, #107)
  • Allow fallback cloudiness calculation for method prescribed (749568df50fb94cc74eede056320cf4692c20352)
  • Print warning when trying to create large in-memory dataset for gridded outputs (2694ab5b83d265ef15c8e5844f9c43330d8ad8cd)
  • When using daily time steps always aggregate sub-daily inputs (ignoring the value of aggregate_when_downsampling) (3ba7d07f3a1fd7967590be79bacc03141a43ee67)
  • Interpolate missing data for precipitation correction only for time steps with non-zero precipitation (a61bbba36464de7005a9fbda937d250b56bf9a69)
  • Require a CRS specification in the config (ba0ce9d34be57221bb115570614e9b6d72ad6d97)
  • Raise error if a geographic CRS is used (d5d2607e1776f3e8c710847dba592b564ecf48be)

Fixes:

  • Fix small bug in precipitation correction (would only occur when the trend_method for wind speed was fixed) (3c836085f16a114b70e4d7ccf826b5b77c53e029)

Cryosphere - Sea Ice - Python
Published by fhanzer 11 months ago

openAMUNDSEN - v1.0.4

  • Set minimum value of the default relative humidity filter to 1% (instead of 0%) (e1312f7616658f6092ae84fc184d88df4ce61121)
  • Use the (deprecated) cloudiness.day_method for cloudiness.method only when cloudiness.method is not set (if both are set, cloudiness.method should be used) (3aab15a814af1623c39d3c32cfb1aed426121ec7)
  • Fix bug in the "constant_scf" precipitation correction method (correction values where incorrectly calculated for mixed precipitation) (a2f7d487cdd45a4b722d9dd3a675e10e82a401b1)
  • Set precipitation correction factors to 1 where they cannot be calculated (i.e., where temperature (or wind speed, for methods "wmo" and "kochendorfer") is nan) (f576d2387471a677eb33350158f4421c895f6074)

Cryosphere - Sea Ice - Python
Published by fhanzer over 1 year ago

openAMUNDSEN - v1.0.3

  • Catch nan values in albedo refresh calculation (a5d41210baf64615df3265660bbe3f13d6bdd28e)

Cryosphere - Sea Ice - Python
Published by fhanzer over 1 year ago

openAMUNDSEN - v1.0.2

  • Fix compatibility issues with rasterio 1.4.0

Cryosphere - Sea Ice - Python
Published by fhanzer over 1 year ago

openAMUNDSEN - v1.0.1

  • Fix snow coverage determination in cryo layer sublimation calculation (3ab441ef3d9527ef53a98c8ea911013fd244d78b)

Cryosphere - Sea Ice - Python
Published by fhanzer almost 2 years ago

openAMUNDSEN - v1.0.0

  • Add basic filters to mask implausible meteo values (606d5722961ff9fcedaccb7896eb0bc19c88cfc8)
  • Add support for interpolating wind gusts (3c8dac8932e6e76a0db2a2ef1012ab87b8fcd7a8)
  • Set snow_cover_fraction_depth_scale to 0 by default (1cac4e2c56c35816c4198107648259c82fb2deaa)
  • Improve logging (#96)
  • Fix bug in cryo layer liquid water refreezing (792cfab9e748fbc38fd87ab7d9887a14d276f88d)
  • Fix issue with station data aggregation (42039d6ebcc08a1e6d50c306cd214aad5585eeb1)
  • Several fixes for changes introduced in in recent numpy/pandas/xarray releases

Cryosphere - Sea Ice - Python
Published by fhanzer almost 2 years ago

openAMUNDSEN - v0.8.3

  • Allow compression of gridded output (#95)
  • Fix bug in evapotranspiration calculation for water bodies (ddd33221f0fbe872cbf5c67f10480a7d7cd07227)
  • Use QtAgg matplotlib backend for the live view window instead of Qt5Agg, so that an appropriate Qt binding (PyQt6/PySide6/PyQt5/PySide2) is automatically selected

Cryosphere - Sea Ice - Python
Published by fhanzer over 2 years ago

openAMUNDSEN - v0.8.2

  • Replace the polynomial fit in cloud_fraction_from_cloud_factor() by the analytical inverse of the function in cloud_factor_from_cloud_fraction() (0170d6a84569b38c94ea852bca778c79c426ea86)
  • Fix for cloudiness method prescribed: the prescribed values should be the cloud area fraction (corresponding to the cloud_fraction model variable), not the "cloud factor" (ratio of actual to potential radiation) (50e908d09d42ce80a93793f18f25cd8a30a51fcb)
  • Consequently, the meteo input variable cloud_cover has been renamed to cloud_fraction for consistency (however, values are expected to be in percent there, in contrast to the model variable cloud_fraction which has fractional values (0-1) (1325f5e3cb701a3a89b92a49bd964156b0d54bfa)

Cryosphere - Sea Ice - Python
Published by fhanzer over 3 years ago

openAMUNDSEN - v0.8.1

  • Add shadows_downsampling_factor parameter for speeding up shadows calculation (22124087d0518fbdbbfc9dcc39b6bf3ca982de0f)
  • Write sky-view factor files with 3 decimal places instead of full precision to reduce file size (f4cf10d9796f94118a699fbf684052843f850516)

Cryosphere - Sea Ice - Python
Published by fhanzer over 3 years ago

openAMUNDSEN - v0.8.0

  • Allow to supply an "extended DEM" (extended-dem_{domain}_{resolution}.asc) with a larger extent than the model grid for calculating the sky-view factor and radiation processes.
  • Cloudiness parameter allow_fallback is more generic and potentially tries several cloudiness calculation methods (e.g. if method is clear_sky_fraction and no radiation measurements are available, first the humidity method is attempted, if also no temperature/humidity measurements are available the constant method is used).
  • The parameters for the cloudiness method humidity can now be specified in the model configuration:
    • pressure_level: the pressure level for which the calculation should be performed (hPa)
    • saturation_cloud_fraction: cloud fraction at 100% relative humidity (0-1)
    • e_folding_humidity: "e-folding relative humidity" (%)
  • Related to this, the humidity method now uses pressure_to_altitude() to convert the prescribed pressure level (700 hPa by default) to an altitude instead of using a hardcoded value of 3000 m, hence introducing small changes in cloudiness values compared to those calculated with earlier openAMUNDSEN versions (1bd686555fb9ce031922625c284d975d67533bd8).
  • Add cloudiness method prescribed, which interpolates prescribed cloudiness values at the input stations. For this, the input files need to include a variable cloud_cover (in %) (adfdf08d579b73f7aa6ddd4182a188e70c57c0b8).
  • Cloudiness configuration keys day_method and night_method have been renamed to method and clear_sky_fraction_night_method (dbdfd1c07485b3ab7e6a4e347306af459f2b2b4e).

Cryosphere - Sea Ice - Python
Published by fhanzer over 3 years ago

openAMUNDSEN - v0.7.4

  • Fix issue with creating in-memory datasets when using xarray >= 2022.11.0 (#87)
  • Drop Python 3.7 support (#88)
  • Support Python 3.10 (#90)

Cryosphere - Sea Ice - Python
Published by fhanzer over 3 years ago

openAMUNDSEN - v0.7.3

  • Append gridded outputs by default when using NetCDF format instead of creating the entire dataset at once (#85)

Cryosphere - Sea Ice - Python
Published by fhanzer almost 4 years ago

openAMUNDSEN - v0.7.2

  • Fix meteo data resampling when source and target start times are not in sync (#83)
  • Fix a NetCDF point output issue occurring when using recent versions of xarray (#84)

Cryosphere - Sea Ice - Python
Published by fhanzer almost 4 years ago

openAMUNDSEN - v0.7.1

  • Fix bug in precipitation correction introduced in renaming the wind interpolation config key in v0.7.0

Cryosphere - Sea Ice - Python
Published by fhanzer almost 4 years ago

openAMUNDSEN - v0.7.0

Enhancements/fixes:

  • Add wind speed/direction interpolation method liston (2be2cc5318333d94056679e83748568bf065e6d6)
  • Allow specifying fixed lapse rates also for wind speed (2c2df653a6260c250e4a1b00ddd2ee98ea8dee9a)
  • Set default rooting depth of the transitional zone class to 0.5 (3c6a70b38b910f65d0e0ae22dd53aaf254d562ed)

Deprecations:

  • Configuration key meteo.interpolation.wind_speed has been renamed to meteo.interpolation.wind (468bdb8401a50914f7e7ba96abd397b5b356c938)

Cryosphere - Sea Ice - Python
Published by fhanzer almost 4 years ago

openAMUNDSEN - v0.6.3

  • Fix issue where the diffuse reflected radiation from surrounding slopes (and subsequently clear-sky shortwave radiation) could become NaN for DEMs containing NaN values (38b280ebdaaa1e4cf40c5945820108dc27360843)

Cryosphere - Sea Ice - Python
Published by fhanzer about 4 years ago

openAMUNDSEN - v0.6.2

  • Exclude pixels where the DEM is NaN from the ROI (025c985bb3a9f0596f61e8f9b61b06f19298da76)
  • Add extend_roi_with_stations parameter (#77)
  • Add fill_value and dtype keywords to read_raster_file() (#78)

Cryosphere - Sea Ice - Python
Published by fhanzer about 4 years ago

openAMUNDSEN - v0.6.1

  • Use Dask for initial output grids NetCDF creation if available (#76)
  • Add liquid water refreezing state variable (224f143024b7a0823b550e8949df45c099bf6c11)
  • Implement cryo layer resublimation (977c08985221a81f4f5753eac480d26def29592a)
  • Improve multilayer model melt calculation (do not count cold content reduction as melt) (30340cd43731a7ff729f9952efb4357579a799de)

Cryosphere - Sea Ice - Python
Published by fhanzer about 4 years ago

openAMUNDSEN - v0.6.0

  • Add simulation_timezone parameter (#75)

Cryosphere - Sea Ice - Python
Published by fhanzer about 4 years ago

openAMUNDSEN - v0.5.3

  • Add meteo input format "callback" (#74)

Cryosphere - Sea Ice - Python
Published by fhanzer over 4 years ago

openAMUNDSEN - v0.5.2

  • Add meteo input format "memory" (#68)
  • Several small fixes

Cryosphere - Sea Ice - Python
Published by fhanzer over 4 years ago

openAMUNDSEN - v0.5.1

Enhancements/fixes:

  • Several bugfixes/improvements in the evapotranspiration module
  • Fix calculation of write dates for gridded outputs (1f00067fadc461f962294c903ec9157c2bcdd067)
  • Fix calculation of clear-sky radiation when mean surface albedo is nan (51e206725fc8316b26d7ad2362e9505deaaccff5)
  • Fix calculation of (enhanced) temperature index melt (#64)
  • Allow to resample sub-daily meteo data to daily timesteps (#62)
  • Add option for resetting state variables in every timestep (#66)
  • Several additional small fixes/improvements

Cryosphere - Sea Ice - Python
Published by fhanzer over 4 years ago

openAMUNDSEN - v0.5.0

  • Add evapotranspiration module
  • Add canopy module

Cryosphere - Sea Ice - Python
Published by fhanzer almost 5 years ago

openAMUNDSEN - v0.4.0

Enhancements/fixes:

  • Add grid output formats geotiff and memory
  • Allow station selection by region or ID
  • Allow enabling/disabling extrapolation for temperature, precipitation, relative humidity and wind speed
  • Improve meteo data reading performance
  • Set meteo CRS to main CRS by default when using CSV input
  • Calculate clear-sky shortwave irradiance also for outside-ROI stations
  • Add method OpenAmundsen.run_single() for iterating over time steps
  • Use setuptools_scm for handling the package version
  • Add tests
  • Several bugfixes

Breaking changes:

  • Require Python >= 3.7
  • Rename OpenAmundsen.point_outputs to point_output
  • Use only within-grid stations by default

Cryosphere - Sea Ice - Python
Published by fhanzer almost 5 years ago