Configuration
The configuration of an openAMUNDSEN model run can either be read in from a YAML file or be passed directly as a dictionary from within Python.
Only few configuration parameters (domain
, start_date
, end_date
, resolution
, timezone
and the input data directories) are mandatory, for all other parameters default values are used otherwise. The different options for the process modules are described at the respective sections in the model description. A detailed documentation of all model parameters will be available soon (in the meantime, the available parameters and their default values can be looked up in configschema.yml.
This is an example of a YAML configuration file:
domain: rofental
start_date: 2019-10-01
end_date: 2020-09-30
resolution: 50 # spatial resolution (m)
timestep: h # temporal resolution as a pandas-compatible frequency string (e.g., "h", "3h", "D")
crs: "epsg:32632" # CRS of the input grids
timezone: 1 # timezone of the model domain (difference to UTC in h)
results_dir: results/rofental # directory for storing the model outputs
# Input data configuration
input_data:
grids:
dir: data/rofental # location of the input grids (DEM, ROI etc.)
meteo:
dir: data/rofental/meteo/ # location of the meteorological input data
format: netcdf # input format (csv or netcdf)
#crs: "epsg:32632" # CRS of the station coordinates (when using CSV format)
bounds: grid
aggregate_when_downsampling: false
# Output data configuration
output_data:
# Configuration for gridded outputs
grids:
format: ascii # output format (ascii, geotiff or netcdf)
variables:
# Temperature (monthly mean)
- var: meteo.temp # internal variable name
name: temp_month # NetCDF output variable name
freq: M # write frequency (if not specified, write every timestep)
agg: mean # aggregation function ("sum", "mean" or empty)
# Precipitation (monthly sum)
- var: meteo.precip # internal variable name
name: precip_month # NetCDF output variable name
freq: M # write frequency (if not specified, write every timestep)
agg: sum # aggregation function ("sum", "mean" or empty)
# SWE (monthly mean)
- var: snow.swe
name: swe_month
freq: M
agg: mean
# Snow depth (monthly mean)
- var: snow.depth
name: snowdepth_month
freq: M
agg: mean
# SWE (certain dates)
- var: snow.swe
name: swe_dates
dates:
- 2020-04-11 12:00
- 2020-06-02 12:00
# Snow depth (certain dates)
- var: snow.depth
name: snowdepth_dates
dates:
- 2020-04-11 12:00
- 2020-06-02 12:00
# Snowmelt (monthly sum)
- var: snow.melt
name: snowmelt_month
freq: M
agg: sum
# SWE (daily)
# - var: snow.swe
# freq: D
#
# - var: snow.depth
# freq: D
# Evapotranspiration (monthly sum)
- var: evapotranspiration.evapotranspiration
freq: M
agg: sum
- var: meteo.temp
freq: D
agg: mean
- var: meteo.precip
freq: D
agg: sum
- var: meteo.rel_hum
freq: D
agg: mean
- var: meteo.sw_in
freq: D
agg: mean
- var: meteo.lw_in
freq: D
agg: mean
- var: meteo.wind_speed
freq: D
agg: mean
# Time series (point) outputs configuration
timeseries:
format: csv # output format (csv or netcdf)
write_freq: M
add_default_points: true
add_default_variables: true
# points:
# - x: 638139
# y: 5181920
# - x: 642579
# y: 5193069
# name: testpoint
# - x: 637235
# y: 5192569
variables:
- var: evapotranspiration.evapotranspiration
- var: surface.turbulent_exchange_coeff
meteo:
# Spatial interpolation parameters
interpolation:
temperature:
trend_method: fixed # use fixed monthly temperature lapse rates
extrapolate: true
lapse_rate: # (°C m-1)
- -0.0026 # J
- -0.0035 # F
- -0.0047 # M
- -0.0053 # A
- -0.0052 # M
- -0.0053 # J
- -0.0049 # J
- -0.0047 # A
- -0.0042 # S
- -0.0033 # O
- -0.0035 # N
- -0.0031 # D
precipitation:
trend_method: fractional # use fixed monthly fractional precipitation gradients
extrapolate: true
lapse_rate: # (m-1)
- 0.00048 # J
- 0.00046 # F
- 0.00041 # M
- 0.00033 # A
- 0.00028 # M
- 0.00025 # J
- 0.00024 # J
- 0.00025 # A
- 0.00028 # S
- 0.00033 # O
- 0.00041 # N
- 0.00046 # D
humidity:
trend_method: fixed # use fixed monthly dew point temperature lapse rates
extrapolate: true
lapse_rate:
- -0.0044 # J
- -0.0046 # F
- -0.0049 # M
- -0.0048 # A
- -0.0046 # M
- -0.0047 # J
- -0.0043 # J
- -0.0042 # A
- -0.0045 # S
- -0.0044 # O
- -0.0047 # N
- -0.0046 # D
cloudiness:
method: clear_sky_fraction # use the ratio of measured vs. potential shortwave radiation to calculate cloudiness
clear_sky_fraction_night_method: humidity # for method "clear_sky_fraction" calculate nighttime cloudiness using a relationship between relative humidity and air temperature at a defined pressure level
allow_fallback: true # allow to fall back to calculate cloud fraction using other methods if the selected method is unavailable (e.g. due to missing measurements)
wind_speed:
trend_method: regression
extrapolate: false
# Precipitation phase determination parameters
precipitation_phase:
method: wet_bulb_temp # use wet-bulb temperature for precipitation phase determination
threshold_temp: 273.65 # threshold temperature (K) in which 50% of precipitation falls as snow
temp_range: 1. # temperature range in which mixed precipitation can occur
# Parameters for adjusting precipitation for wind-induced undercatch and snow redistribution
precipitation_correction:
#- method: constant_scf
# scf: 1.25
#- method: kochendorfer # use the Kochendorfer et al. (2017) transfer functions
# gauge: us_un # gauge-specific transfer function to use according to Kochendorfer et al. (2017, Table 3)
- method: wmo
gauge: hellmann
#- method: srf # apply an additional precalculated spatially distributed snow redistribution factor (SRF)
# Radiation parameters
radiation:
snow_emissivity: 0.99
cloud_emissivity: 0.976
rock_emission_factor: 0.01
ozone_layer_thickness: 0.0035
atmospheric_visibility: 25000.
single_scattering_albedo: 0.9
clear_sky_albedo: 0.0685
num_shadow_sweeps: 1
measurement_height:
temperature: 2 # temperature measurement height (m)
wind: 10 # wind measurement height (m)
stability_correction: false # adjust turbulent fluxes for atmospheric stability
stability_adjustment_parameter: 5. # adjustment parameter for atmospheric stability correction
# Snow parameters
snow:
model: multilayer # snow scheme (multilayer or cryolayers)
thermal_conductivity: 0.24 # snow thermal conductivity (W m-1 K-1)
roughness_length: 0.01 # roughness length of snow-covered ground (m)
measurement_height_adjustment: false # adjust the temperature measurement height for snow depth
snow_cover_fraction_depth_scale: 1.e-6 # snow cover fraction depth scale (m)
# Parameters for the cryo layer model
cryolayers:
transition:
old_snow: 200. # new snow -> old snow transition (density, kg m-3)
firn: 10 # old snow -> firn transition (calendar month)
ice: 900. # firn -> ice transition (density, kg m-3)
use_single_snow_albedo: true # xxx
cold_holding_capacity: 0.05 # cold holding capacity (as a fraction of the layer SWE) and refreezing factor for the cold content approach by Braun (1984)
refreezing_factor: 1. # fraction of available energy that is used for building up cold content and refreezing liquid water
surface_heat_flux: -2. # surface heat flux for snow-covered conditions (W m-2)
# Albedo parameters
albedo:
method: snow_age
min: 0.55 # minimum snow albedo
max: 0.85 # maximum snow albedo
cold_snow_decay_timescale: 480 # albedo decay timescale for cold (T < 0 °C) snow (h)
melting_snow_decay_timescale: 200 # albedo decay timescale for melting snow (h)
decay_timescale_determination_temperature: surface # use surface temperature to distinguish between cold and melting snow
refresh_snowfall: 0.5 # snowfall amount for resetting albedo to the maximum value (kg m-2 h-1)
refresh_method: binary # binary or continuous
firn: 0.4 # firn albedo (constant)
ice: 0.2 # ice albedo (constant)
# Snow compaction parameters
compaction:
method: anderson # anderson or empirical
# Parameters for method "empirical"
timescale: 200 # snow compaction timescale (h)
max_cold_density: 300 # maximum density for cold (T < 0 °C) snow (kg m-3)
max_melting_density: 500 # maximum density for melting snow (kg m-3)
# Liquid water content
liquid_water_content:
method: pore_volume_fraction # pore_volume_fraction or mass_fraction
max: 0.03 # maximum liquid water content as a fraction of the total pore volume or mass
# Melt parameters
melt:
method: energy_balance # melt method (energy_balance, temperature_index or enhanced_temperature_index)
threshold_temp: 273.15 # threshold temperature for the temperature index methods (K)
degree_day_factor: 1.2 # degree day factor for the temperature index methods (kg m-2 d-1 K-1)
albedo_factor: 0.1 # albedo factor for the enhanced temperature index method (m2 kg m-2 W-1 d-1)
soil: # Soil parameters for FSM soil module (not used for FAO evapotranspiration)
thickness:
- 0.1
- 0.2
- 0.4
- 0.8
sand_fraction: 0.6
clay_fraction: 0.3
init_moisture_content: 0.5
init_temp: 285
saturated_soil_surface_conductance: 0.01
roughness_length: 0.1
albedo: 0.15
canopy:
enabled: true
extinction_coefficient: 0.71
temperature_scaling_coefficient: 0.8
canopy_flow_index_coefficient: 0.9
spherical_ice_particle_radius: 500.e-6
kinematic_air_viscosity: 1.3e-5
max_interception_storage_coefficient: 4.4
exposure_coefficient_coefficient: 0.010
degree_day_factor: 5.
evapotranspiration:
enabled: true
min_crop_coefficient: 0.175
grass_albedo: 0.23
grass_emissivity: 0.985
sealed_albedo: 0.4
sealed_emissivity: 0.92
mean_wind_speed: 2.
mean_min_humidity: 45.
surface_soil_layer_evaporation_depth: 0.125
land_cover:
classes:
# Water (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-512.html)
1:
crop_coefficient_type: single
crop_coefficients:
- 1.25
- 0.65
- 1.25
plant_date: 1
growth_stage_lengths:
- 0
- 183
- 0
- 183
max_height: 0
rooting_depth: .nan
depletion_fraction: .nan
is_water_body: true
# Bare rock (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-332.html)
2:
is_sealed: true
max_sealed_interception: 0.935
max_height: 1.9
depletion_fraction: .nan
rooting_depth: .nan
# Settlement (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-111.html)
3:
is_sealed: true
max_sealed_interception: 0.935
max_height: 1.9
depletion_fraction: .nan
rooting_depth: .nan
# Pasture (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-231.html)
4:
crop_coefficient_type: dual
crop_coefficients:
- 0.30
- 0.90
- 0.80
plant_date: 60
growth_stage_lengths:
- 10
- 20
- 210
- 30
max_height: 0.225
rooting_depth: 0.5
depletion_fraction: 0.6
# Coniferous forest (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-312.html)
5:
is_forest: true
crop_coefficient_type: dual
crop_coefficients:
- 0.95
- 0.95
- 0.95
plant_date: 1
growth_stage_lengths:
- 0
- 0
- 366
- 0
max_height: 26.
scale_height: false
rooting_depth: 1.25
depletion_fraction: 0.7
leaf_area_index:
min: 3.8
max: 5.1
effective_add: 3.2
# Deciduous forest (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-311.html)
6:
is_forest: true
crop_coefficient_type: dual
crop_coefficients:
- 0.5
- 1.05
- 0.6
plant_date: 60
growth_stage_lengths:
- 20
- 70
- 120
- 60
max_height: 24.8
scale_height: false
rooting_depth: 2.05
depletion_fraction: 0.5
leaf_area_index:
min: 0.5
max: 4.4
effective_add: 1.9
# Mixed forest (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-313.html)
# (ET parameters currently the same as for coniferous forest)
7:
is_forest: true
crop_coefficient_type: dual
crop_coefficients:
- 0.95
- 0.95
- 0.95
plant_date: 1
growth_stage_lengths:
- 0
- 0
- 366
- 0
max_height: 26.
scale_height: false
rooting_depth: 1.25
depletion_fraction: 0.7
leaf_area_index:
min: 2.0
max: 4.7
effective_add: 2.5
# Arable land
8:
crop_coefficient_type: dual
crop_coefficients:
- 0.15
- 1.10
- 0.25
plant_date: 120
growth_stage_lengths:
- 30
- 40
- 50
- 25
max_height: 2.
rooting_depth: 1.35
depletion_fraction: 0.55
# Natural grassland (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-321.html)
# TODO: currently uses the same parameters as for pastures; should be adjusted
9:
crop_coefficient_type: dual
crop_coefficients:
- 0.30
- 0.90
- 0.80
plant_date: 60
growth_stage_lengths:
- 10
- 20
- 210
- 30
max_height: 0.225
rooting_depth: 0.5
depletion_fraction: 0.6
# Transitional zone (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-324.html)
# (assumed to be non-leaf dropping with 25% soil coverage)
10:
crop_coefficient_type: dual
crop_coefficients:
- 1.20
- 1.20
- 1.20
plant_date: 1
growth_stage_lengths:
- 0
- 0
- 366
- 0
max_height: 3.
rooting_depth: 0.5
depletion_fraction: 0.5
is_sparse: true
sparse_vegetation_fraction: 0.25
# Alpine vegetation (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-322.html)
# TODO: currently uses the same parameters as for pastures; should be adjusted
11:
crop_coefficient_type: dual
crop_coefficients:
- 0.30
- 0.90
- 0.80
plant_date: 60
growth_stage_lengths:
- 10
- 20
- 210
- 30
max_height: 0.225
rooting_depth: 0.5
depletion_fraction: 0.6
# Wetland (https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-411.html)
# TODO: currently uses the same parameters as for pastures; should be adjusted
12:
crop_coefficient_type: dual
crop_coefficients:
- 0.30
- 0.90
- 0.80
plant_date: 60
growth_stage_lengths:
- 10
- 20
- 210
- 30
max_height: 0.225
rooting_depth: 0.5
depletion_fraction: 0.6
liveview:
enabled: true
cols: 5
width: 1200
height: 800
variables:
- var: meteo.temp
min: 255
max: 280
- var: meteo.precip
min: 0
max: 5
- var: meteo.snowfall
min: 0
max: 5
- var: meteo.rainfall
min: 0
max: 5
- var: meteo.rel_hum
min: 30
max: 100
- var: meteo.wind_speed
min: 0
max: 10
- var: meteo.sw_in
min: 0
max: 1200
- var: meteo.sw_out
min: 0
max: 800
- var: meteo.lw_in
min: 150
max: 350
- var: meteo.lw_out
min: 200
max: 500
- var: snow.num_layers
min: 0
max: 3
- var: snow.swe
min: 0
max: 100
- var: snow.depth
min: 0
max: 1
- var: surface.albedo
min: 0
max: 1
- var: surface.temp
min: 255
max: 280