Skip to contents

The EDCHM package is a flexible hydrological modeling framework that incorporates a collection of well-known models, such as GR4J (Perrin et al. 2003) , HBV (Lindstroem et al. 1997) , VIC (Wood et al. 1992) , and UBC (Quick and Pipes 1977) . Each model is divided into clear, well-defined processes as individual, self-contained modules. EDCHM allows users to not only easily select and combine different processes to create new model structures, but also to choose from a range of methods for each specific process. This provides a high degree of flexibility and customization. EDCHM also allows users to divide the research catchment into sub-basins, grids, or hydrological response units (HRUs), providing a high degree of spatial resolution and flexibility. This enables users to capture and simulate the water cycle at different scales, from the regional level down to the level of individual land units or catchment areas.

Overview of this document

Due to the limitations of the Rd document format, the topics in the EDCHM package documentation are ordered alphabetically. To help users navigate the documentation, an auxiliary table is provided that outlines the design of the EDCHM package.

You will find some basic concepts and overview of hole EDCHM in:

  • EDCHM-package: basic concepts and describe of this document

  • all_vari: description of all the variables

  • all_param: description of all the parameters with ranges

You can see all of the 12 process with their associated 62 methods (modules) in:

  • snowMelt: melt the snow into liquid water

  • intercep: intercept the water before is arrive the land surface

  • evatransActual: calculate the actual evapotranspiration from interception of water in th soil

  • infilt: water from land surface enters the soil

  • percola: soil water through the pores of aquifer movement to ground water

  • inteflow: runoff in the soil layer, which from soilLy directly into the streams or rivers

  • capirise: ground water upward to the unsaturated soil layer

  • baseflow: the portion of groundwater, that directly into the streams or rivers

  • lateral: water exchange with other basin in the groundwater layer

  • confluenIUH: runoff (runoff, interflow, baseflow) from the hydrological unit to the rivers

  • atmosSnow: devide the precipitation into rainfall and snowfall

  • evatransPotential: calculates the potential evapotranspiration

You get the information how to use EDCHM and calibrate in:

Layer and Process

Before using the EDCHM framework, it is necessary to have a basic understanding of its concepts.

In the EDCHM framework, a Layer is defined as a vertical space with common characteristics. EDCHM defines five basic layers:

  • atmosLy: only stores meteorological data but doesn't interact with other hydrological processes (in current version).

  • snowLy: is the layer of snow.

  • landLy: consists of two sublayers. Sublayer intcpt is a storage for intercepted water, which can be evaporated. Sublayer land serves only as a temperature layer for "pounded water" and doesn't have any storage capacity.

  • soilLy: is defined as an unsaturated zone between land surface and water table of groundwater.

  • groundLy: is defined as a saturated zone of groundwater.

In the EDCHM framework, a Process related to the movement or distribution of water on Earth. Some of them occur in a single layer, some of them occur between two layers. Here has defined 9 hydrological processes:

  • snowMelt: melt the snow into liquid water.

  • intercep: intercept the water before is arrive the land surface.

  • evatransActual: calculate the actual evapotranspiration from interception of water in th soil.

  • infilt: water from land surface enters the soil.

  • percola: soil water through the pores of aquifer movement to ground water.

  • inteflow: runoff in the soil layer, which from soilLy directly into the streams or rivers.

  • capirise: ground water upward to the unsaturated soil layer.

  • baseflow: the portion of groundwater, that directly into the streams or rivers.

  • lateral: water exchange with other basin in the groundwater layer.

  • confluenIUH: runoff (runoff, interflow, baseflow) from the hydrological unit to the rivers, in this process the water volume will not be changed but the distribution the time axis will be recalculeted with IUH (Instantaneous Unit Hydrograph) method.

In addition, there are two meteological process:

  • atmosSnow: devide the precipitation into rainfall and snowfall.

  • evatransPotential: calculates the potential evapotranspiration. are both considered meteorological processes because they can be directly obtained from meteorological datasets or calculated using only meteorological data. The results of these processes serve always as input data for hydrological processes. evatransPotential is a crucial step in determining the actual evapotranspiration by most hydrological models.

Variable and Parameter define

With a clear understanding of layers and processes, we can now move on to the basic definitions in the context of modeling.

All variable names in the EDCHM framework are composed of three parts: a group-name, a physical-name and a variable-units These parts are separated by an underscore _.

  • group-name: name of the Layer in which the variable is located. Sometimes it can also be the Process name or time, one important dimension. The group-name is limited to a maximum of 8 characters and must be in lowercase letters.

  • physical-name: the physical variable name, and it uses camelCase to combine multiple words. And the water volume will always simplified as water.

  • variable-units: the physical units of the variable To simplify the program, all time-dependent variables use TS as the time unit, which is defined by the model, it can be 1 hour, 4, 12, 24 hours and so on, but the time unit is not included in the variable name. Additionally, all variables are assumed to be homogeneous in the area, so the area unit square meter (m2) is also not included in the variable name.

group_variableName_unit some like land_water_mm, atmos_temperature_Cel

The following tables list the model variables and their corresponding formula symbols used in the EDCHM:

  • some state variables and Capicity of the layer storage:

VariableSymbolUnitDescription
water_mm\(W\)mm/m2water volume in one Layer
land_water_mm\(W_{land}\)mm/m2.. in landLy
land_interceptWater_mm\(W_{itcp}\)mm/m2.. in landLy (intercepted)
snow_ice_mm\(W_{snow}\)mm/m2.. in snowLy (equal water)
soil_water_mm\(W_{soil}\)mm/m2.. in soilLy
ground_water_mm\(W_{grnd}\)mm/m2.. in groundLy
capacity_mm\(C\)mm/m2maximal capacity of storage in one Layer
land_interceptCapacity_mm\(C_{itcp}\)mm/m2.. in landLy (intercepted)
soil_capacity_mm\(C_{soil}\)mm/m2.. in soilLy
ground_capacity_mm\(C_{grnd}\)mm/m2. in groundLy
  • some flux variables and potential flux:

VariableSymbolUnitDescription
flux_mm\(F\)mm/m2/TSflux or flow in unit area
atmos_precipitation_mm\(P\)mm/m2/TS.. of precipitation
atmos_rain_mm\(P_r\)mm/m2/TS.. of rain fall
atmos_snow_mm\(P_s\)mm/m2/TS.. of snow fall
atmos_evatrans_mm\(E_a\)mm/m2/TS.. of evapotranspiration
land_intercept_mm\(F_{itcp}\)mm/m2/TS.. of interception
land_infilt_mm\(F_{iflt}\)mm/m2/TS.. of infiltration
land_runof_mm\(F_{roff}\)mm/m2/TS.. of runoff
snow_melt_mm\(F_{melt}\)mm/m2/TS.. of snow melt
soil_percola_mm\(F_{pecl}\)mm/m2/TS.. of percolation
soil_interflow_mm\(F_{intf}\)mm/m2/TS.. of interflow
ground_baseflow_mm\(F_{base}\)mm/m2/TS.. of baseflow
ground_capillarise_mm\(F_{capi}\)mm/m2/TS.. of capillary rise
ground_lateral_mm\(F_{ltrl}\)mm/m2/TS.. of lateral flow
potentialFlux_mm\(M\)mm/m2/TSpotential (maximal) flux or flow
atmos_evatrans_mm\(E_p\)mm/m2/TS.. of evapotranspiration
land_potentialInfilt_mm\(M_{iflt}\)mm/m2/TS.. of infiltration
soil_potentialPercola_mm\(M_{pecl}\)mm/m2/TS.. of percolation
soil_potentialInterflow_mm\(M_{intf}\)mm/m2/TS.. of subsurface flow
ground_potentialBaseflow_mm\(M_{base}\)mm/m2/TS.. of baseflow
soil_potentialCapirise_mm\(M_{capi}\)mm/m2/TS.. of capillary rise
ground_potentialLateral_mm\(M_{ltrl}\)mm/m2/TS.. of lateral flow
  • the stream flow will not in m3/TS or m3/s but also in flux dimension:

VariableSymbolUnitDescription
streamflow_mm\(Q\)mm/m2/TSstreamflow in flux dimension
flow_runoff_mm\(Q_{roff}\)mm/m2/TS.. from runoff
flow_interflow_mm\(Q_{itfl}\)mm/m2/TS.. from interflow
flow_baseflow_mm\(Q_{base}\)mm/m2/TS.. from baseflow

Additional there are also some symbols from the program-view:

  • \(D\): the collection of all data of one group or layer

    • \(D_{atms}\): data in atmosLy

    • \(D_{land}\): data in landLy

    • \(D_{snow}\): data in snowLy

    • \(D_{soil}\): data in soilLy

    • \(D_{grnd}\): data in groundLy

    • \(D_{lssg}\): data in any (but the one) landLy, snowLy, soilLy or groundLy

  • \(f\): function or modulr e.g. \(f_{atmosSnow}\) or \(f_{inflt}\)

Parameter define

The parameters will be defined in every function topic The naming convention for parameters consists of four parts: a prefix param, the process name Parameters make up with prefix , Process name (sometimes same as Layer name), an abbreviation of the method in three small letters, and the original parameter name. This allows for clear and consistent naming of parameters within the program.

param_process_mtd_k some like param_atmos_ubc_A0FORM, param_infilt_hbv_beta

In every function topic, the range of parameters will be provided in the format of <low, upper>. all_param list also all the parameters from EDCHM.

Module define

In the last section, ten hydrological and two meteorological processes are defined in the conceptual view. Now they will be defined in programming view:

For every process there is only one output variable and several input data (data and parameters):

ProcessMain InputOutput
intercepatmos_perc_mmland_intercept_mm
snowMeltsnow_ice_mmsnow_melt_mm
evatransActuallayer_water_mmlayer_evatrans_mm
infiltland_water_mmland_infilt_mm
percolasoil_water_mmsoil_percola_mm
inteflowsoil_water_mmsoil_interflow_mm
capiriseground_water_mmground_capirise_mm
baseflowground_water_mmground_baseflow_mm
lateralground_water_mmground_lateral_mm
confluenIUHlayer_flux_mmflow_water_mm
atmosSnowatmos_perc_mmatmos_snow_mm
evatransPotentialatmos_DATAevatrans_potential_mm

And then a module is defined as: a specific process with different method from well-know models. The name of module is composed of three parts: the process name and method name:

process_Method some like evatransActual_VIC and evatransActual_LiangLand

The following figure shows all 12 processes and 62 modules that have been defined to date.

Build a model and calibrate the parameters

The generally way of using the regular model can be described as follows:

  1. Select a model that suits your research needs and acquire the necessary software (or script).

  2. Prepare the input data and parameters and ensure they are accurate and complete.

  3. Use observed data to calibrate the model's parameters.

  4. Validate the optimized parameters by comparing them to known results or other models.

  5. Apply the model and its optimized parameter sets to research.

But in EDCHM, you need to at first build a model. The process of building a model is an intricate and nuanced task. It requires a deep understanding of the system of hydrological modelling to ensure that every component (process) is properly integrated and optimized.

  1. Identify the essential processes involved in your research.

  2. Organize and connect these processes in a logical sequence that reflects the real-world system and the data-flow.

  3. Select the appropriate method (module) for each process, taking into account the specific requirements and constraints of your research.

  4. Assemble the model script using the chosen modules, and compile it into a working model that can be tested and refined.

By following this approach, you can create a custom-built model that is tailored to your specific research needs, and that can be easily adjusted and updated as new information becomes available.

BUT despite the complexity of building a model, EDCHM also offers powerful tools build_modell that make the process more straightforward and efficient. EDCHM has defined a well-organized structure, so you just need to choose some necessary process and a method for every process. Once you have chosen your processes and methods, build_modell will automatically generate a model script, and it includes all the input arguments. In the same time it will also return the parameter ranges that are needed for calibration and validation.

In the standard structure, there are twelve processes available for selection. However, you can also choose to use only a subset of these processes, such as the six minimal processes. Certainly, you are not limited to the standard or minimal structures when building a model with build_modell. Instead, you have the freedom to choose any combination of processes that are relevant to your research.

The mininal-, snow- and standard-structure are showed in the fowling figure:

EDCHM offers also three compiled models EDCHM_mini, EDCHM_snow and EDCHM_GR4J.

Overall, build_modell offers a flexible and customizable approach to building models, allowing you to create a model that is tailored to your specific research needs and requirements. More details goto section build_modell.

After building the model, we can proceed to calibrate its parameters. Typically, we need to evaluate the simulated results with observations to do this. We can use the hydroGOF package, which offers many goodness-of-fit (GOF) functions, such as the Nash-Sutcliffe efficiency (NSE) and Kling-Gupta efficiency (KGE). We still need an evaluation function, which takes the parameters as input and produces the evaluation results as output. These inputs and outputs are then given to a calibration algorithm function, which decides the next set of probe parameters based on the result of the GOF.

The evaluation function is more flexible because it depends on whether the parameters are lumped or distributed, whether all or some of them need to be calibrated, and whether they are directly measured or calculated from categorical data such as soil class and land use. EDCHM does not offer an evaluation function, but it is not difficult to create one.

EDCHM offers two calibration algorithm functions: cali_DDS() (Tolson and Shoemaker 2007) and cali_UVS(). cali_DDS() is very powerful and recommended for most cases. cali_UVS() is recommended for specific tasks and is a very original algorithm. For more details, see the cali section of the documentation.

References

Lindstroem G, Johansson B, Persson M, Gardelin M, Bergstroem S (1997). “Development and Test of the Distributed HBV-96 Hydrological Model.” Journal of Hydrology, 201, 272--288. doi: 10.1016/S0022-1694(97)00041-3 .

Perrin C, Michel C, Andr攼㸹assian V (2003). “Improvement of a Parsimonious Model for Streamflow Simulation.” Journal of Hydrology, 279(1-4), 275--289. ISSN 00221694, doi: 10.1016/S0022-1694(03)00225-7 .

Quick MC, Pipes A (1977). “U.B.C. WATERSHED MODEL / Le Mod攼㸸le Du Bassin Versant U.C.B.” Hydrological Sciences Bulletin, 22(1), 153--161. ISSN 0303-6936, doi: 10.1080/02626667709491701 .

Tolson BA, Shoemaker CA (2007). “Dynamically Dimensioned Search Algorithm for Computationally Efficient Watershed Model Calibration.” Water Resources Research, 43(1). ISSN 1944-7973, doi: 10.1029/2005WR004723 .

Wood EF, Lettenmaier DP, Zartarian VG (1992). “A Land-Surface Hydrology Parameterization with Subgrid Variability for General Circulation Models.” Journal of Geophysical Research, 97(D3), 2717. ISSN 0148-0227.