Skip to main content

Parameter Tables

HydroPol2D uses parameter tables to assign physical properties to categorical raster inputs.

Categorical maps such as LULC and Soil are not used directly in the governing equations. Instead, each class acts as an index into a parameter table, where the corresponding physical parameters are defined.

This structure separates spatial information from parameter definition and makes the model easier to calibrate, adapt, and interpret.


Where the Tables Live​

In MATLAB Excel mode the class tables are tabs of the case workbook HydroPol2D_Inputs.xlsx. Each tab is a cell-for-cell copy of the workbook it replaces, because the model reads some columns by position. Keep the rows and the column order; add a class as a new row.

TabWasRead when
Soil classesSOIL_parameters.xlsxalways
Land use classesLULC_parameters.xlsxalways (read from row 2 by position)
Human instabilityhuman_risk.xlsxflag_human_instability = 1 or 3
MeshVoronoi_Settings.xlsxflag_voronoi = 1
Control structuresBC_Control_structure.xlsxflag_reservoir = 1

In the older layout the same tables are the separate workbooks of the second column, in the folder of General_Data.xlsx. The model reads the tab when the case workbook has it, and the older workbook otherwise. HydroPol2D-Python reads the same class properties from the Case Builder contract.


General Structure​

Each parameter table contains:

  • a class identifier (Index)
  • a set of parameters associated with that class

At runtime, HydroPol2D:

  1. reads the raster value at each grid cell,
  2. uses that value as an index,
  3. assigns the corresponding parameters from the table.

For mapped classes, raster values and table indices must match exactly. When a valid LULC, soil, or snow code is absent from its parameter table, HydroPol2D assigns the area-weighted mean of properties represented by mapped cells and writes the decision to Input_Class_Code_Audit.csv. Duplicate indices, non-numeric indices, or a table with no mapped classes remain input errors.


LULC Parameter Table​

The LULC table defines surface-related properties controlling flow resistance, interception, imperviousness, pollutant-related behavior, and root-zone depth when layered soil storage is active.

The Land use classes tab of the case workbook

The Land use classes tab of the Stanford example workbook. Click the picture to open it full size.

Example structure​

Land CoverIndexnn
(s m−1/3)(\mathrm{s\,m^{-1/3}})
h0h_0
(mm)(\mathrm{mm})
d0d_0
(mm)(\mathrm{mm})
C1C_1C2C_2C3C_3C4C_4index_impervious\mathrm{index\_impervious}root_depth_m\mathrm{root\_depth\_m}KcK_c
Tree cover100.1000100.208001.20501.501.05
Shrubland200.0800120.209001.20NaN1.000.70
Grassland300.0600150.2210001.20NaN0.600.85
Cropland400.0500300.2514001.30NaN1.001.00
Built-up500.0300800.3020001.30NaN0.000
Bare / sparse vegetation600.03500450.2516001.25NaN0.100.30
Snow and ice700.020010.102001.10NaN0.000
Permanent water bodies800.035000000NaN0.000
Herbaceous wetland900.120080.187001.20NaN0.401.00
Mangroves950.150080.187001.20NaN1.001.05
Moss and lichen1000.080050.155001.15NaN0.150.40

Table 1. HydroPol2D LULC parameter table. The Index values must match the categorical values in the LULC raster.

Variable definitions​

  • nn: Manning’s roughness coefficient
  • h0h_0: interception parameter
  • d0d_0: initial surface storage parameter
  • C1C_1–C4C_4: coefficients associated with the pollutant build-up and wash-off formulation
  • index_impervious\mathrm{index\_impervious}: the Index of the class treated as fully impervious, entered once (the template uses the first data row, 50 = built-up) with the column blank in every other row. That class has no soil-infiltration storage
  • root_depth_m\mathrm{root\_depth\_m}: vegetation-controlled root-zone depth used by the layered soil/vadose model
  • KcK_c: crop and land-cover coefficient. It scales the internally computed reference ET to the potential soil ET of unponded, pervious cells. It is not applied to prescribed ET maps, and ponded water evaporates separately. Use 0 for impervious, permanent-water and snow or ice classes

The values shown above correspond to the current HydroPol2D parameter table and should be revised as needed for the adopted classification scheme and study area.

In the current implementation, root_depth_m is the supported way to provide root-depth input to the model. There is no separate root-depth raster path; root depth is assigned per LULC class and then mapped to the grid through the categorical LULC raster.


Snow Parameter Table​

The LULC parameter table contains the following snow columns in every LULC_Index row. There is no separate snow workbook; this keeps every land-cover-dependent property in one class record.

ColumnUnitsDescription
LULC_Index—LULC code to which the row applies.
Snow_Albedo—Shortwave albedo of the snow surface.
Snow_Emissivity—Longwave emissivity used in the net-radiation calculation.
Sublimation_Coefficient_d_1day⁻¹ (m s⁻¹)⁻¹Coefficient in the timestep-scaled sublimation term.
Degree_Day_Factor_mm_C_daymm °C⁻¹ day⁻¹Degree-day melt factor.
T_Snow_All_C°CTemperature at or below which all precipitation is snow.
T_Rain_All_C°CTemperature at or above which all precipitation is rain. It must be no lower than T_Snow_All_C.
Rho_Snow_Init_kg_m3kg m⁻³Fresh-snow density used for zero-snow and single-raster initialization.
Rho_Snow_Max_kg_m3kg m⁻³Upper bound on snow density after compaction.
Compaction_Temperature_kg_m3_C_daykg m⁻³ °C⁻¹ day⁻¹Temperature-dependent density increase.
Compaction_SWE_kg_m3_mm_daykg m⁻³ mm⁻¹ day⁻¹SWE-dependent density increase.
Compaction_Depth_kg_m3_mm_daykg m⁻³ mm⁻¹ day⁻¹Snow-depth-dependent density increase.

The degree-day, sublimation, and compaction terms are rates. HydroPol2D multiplies them by the current routing timestep. Snow requires the internal meteorological forcing mode, so the model can obtain mean temperature, minimum temperature, and wind speed.


Soil Parameter Table​

The soil table defines the base hydraulic properties used to estimate infiltration, layered vadose storage, recharge, and groundwater behavior.

The Soil classes tab of the case workbook

The Soil classes tab of the Stanford example workbook. Click the picture to open it full size.

Example structure​

Soil TypeIndexKsatK_{\mathrm{sat}}
(mm h−1)(\mathrm{mm\,h^{-1}})
nnα\alpha
(m−1)(\mathrm{m^{-1}})
θsat\theta_{\mathrm{sat}}θr\theta_{\mathrm{r}}θi\theta_{\mathrm{i}}SyS_{\mathrm{y}}Kg,satK_{\mathrm{g,sat}}
(mm h−1)(\mathrm{mm\,h^{-1}})
DTB\mathrm{DTB}
(m)(\mathrm{m})
KsK_s nearKsK_s rootKsK_s transmission
Clay10.31.090.80.3850.0680.09970.0361111
Silty Clay20.51.090.50.4230.0700.10530.04101111
Sandy Clay30.61.232.70.3210.1000.12210.06121111
Clay Loam41.01.311.90.3090.0950.11640.08201111
Silty Clay Loam51.01.231.00.4320.0890.12330.09201111
Sandy Clay Loam61.51.485.90.3300.1000.12300.11301111
Loam73.41.563.60.4340.0780.11360.18681111
Silty Loam86.51.412.00.4860.0670.12980.141301111
Sandy Loam910.91.897.50.4120.0650.09970.222181111
Silt102.51.371.60.4600.0340.11920.12501111
Loamy Sand1129.92.2812.40.4010.0570.12580.255981111
Sand12117.82.6814.50.4170.0450.11940.3023561111
Water00.31.090.80.3850.0680.09970.0361111

Table 2. HydroPol2D soil parameter table. The Index values must match the categorical values in the soil raster; the default codes follow the OpenLandMap USDA texture legend (7 loam, 8 silt loam). KsatK_{\mathrm{sat}} and θsat\theta_{\mathrm{sat}} are the Green–Ampt conductivity and effective porosity of Rawls et al. (1983); nn, α\alpha and θr\theta_{\mathrm{r}} are the class means of Carsel and Parrish (1988). Silt, which Rawls et al. do not list, takes KsatK_{\mathrm{sat}} and θsat\theta_{\mathrm{sat}} from Carsel and Parrish. θi=θr+Se(θsat−θr)\theta_{\mathrm{i}} = \theta_{\mathrm{r}} + S_e(\theta_{\mathrm{sat}} - \theta_{\mathrm{r}}) with Se=0.1S_e = 0.1 (0.15 for silt loam; 0.2 for silt, loamy sand and sand), and Kg,sat=20 KsatK_{\mathrm{g,sat}} = 20\,K_{\mathrm{sat}}.

Variable definitions​

  • KsatK_{\mathrm{sat}}: saturated hydraulic conductivity
  • nn: Van Genuchten shape parameter
  • α\alpha: inverse air-entry parameter
  • θsat\theta_{\mathrm{sat}}: saturated water content
  • θr\theta_{\mathrm{r}}: residual water content
  • θi\theta_{\mathrm{i}}: initial soil moisture
  • SyS_{\mathrm{y}}: specific yield
  • Kg,satK_{\mathrm{g,sat}}: saturated conductivity associated with subsurface or groundwater parameterization
  • DTB\mathrm{DTB}: depth to bedrock or effective storage depth
  • Ks_multiplier_near_surface: multiplier applied to base KsatK_{\mathrm{sat}} in the near-surface layer
  • Ks_multiplier_root_zone: multiplier applied to base KsatK_{\mathrm{sat}} in the root-zone layer
  • Ks_multiplier_transmission: multiplier applied to base KsatK_{\mathrm{sat}} in the transmission layer
  • Ltop_m: thickness LtopL_{\mathrm{top}} of the near-surface soil layer (m). It is also the length scale of the infiltration capacity of Hydrologic Model, Section 4.5. The template uses 0.05 m for every class
  • dh_max_m: cap Δhmax⁡\Delta h_{\max} on the driving head difference in that infiltration capacity (m). Default 1 m
  • l_vg: Mualem pore-connectivity parameter ll of the van Genuchten–Mualem unsaturated conductivity (dimensionless; 0.5 is the usual value)

The Soil classes tab has 17 columns in this order: name, Index, KsatK_{\mathrm{sat}}, nn, α\alpha, θsat\theta_{\mathrm{sat}}, θr\theta_{\mathrm{r}}, θi\theta_{\mathrm{i}}, SyS_{\mathrm{y}}, Kg,satK_{\mathrm{g,sat}}, DTB, the three multipliers, Ltop_m, dh_max_m and l_vg. The model reads them by position.

The categorical soil class defines the base hydraulic properties for the column. The layered implementation assigns those properties to the near-surface, root-zone, and transmission-zone layers, then applies optional conductivity multipliers where they are provided.

LULC controls root-zone depth. Depth to bedrock and the current water-table position constrain the final layer thicknesses, so physically impossible layer geometries collapse or truncate rather than producing negative storage.

The values shown above correspond to the current HydroPol2D soil parameter table and should be revised as needed for the adopted soil classification and simulation scenario.


DTB Assignment Through the Soil Table​

The DTB (m) column gives a depth to bedrock per soil class. When it is read depends on the subsurface scheme:

SchemeRole of DTB (m)
Layered subsurfaceBottom of the column where DTB_path and subsurface_depth_to_bedrock_m are both empty (MATLAB since 2026-10-20; HydroPol2D-Python reads its soil table the same way)
Default groundwater scheme (MATLAB)Not read. DTB_path is required; without groundwater an empty DTB_path gives a 1 m soil depth

Each soil class then carries a representative depth, and the column bottom follows the soil map. This is useful in data-scarce applications.


Consistency Requirements​

The following conditions must be satisfied:

  • mapped raster class values must be represented by the corresponding table,
  • class identifiers must not be duplicated,
  • parameter fields must not be left empty,
  • units must be consistent with the model formulation.

For an unmapped valid class, the model uses the documented area-weighted fallback and writes Input_Class_Code_Audit.csv. Review that file before accepting a run. A table without any class shared with its raster cannot define a meaningful fallback and stops preprocessing.


Practical Use​

Parameter tables are the main mechanism used to:

  • calibrate the model,
  • adapt the model to different environments,
  • perform sensitivity analysis,
  • test alternative physical assumptions without modifying the code.

In HydroPol2D, most practical modifications to model behavior are made by editing these tables.


Human Instability Table​

The Human instability tab (was human_risk.xlsx) has one column of values per method. The model reads the values by position, so keep every cell in place. See Human Instability for the equations.

The Human instability tab of the case workbook

The Human instability tab of the Stanford example workbook. Click the picture to open it full size.

ColumnRead whenValues
Method No. 1 (column B)flag_human_instability = 1one representative person, 9 values
Method No. 2 (column E)nevermode 2 is not implemented
Method No. 3 (column J)flag_human_instability = 3water, friction and drag, then 8 body types

Method No. 1.

KeyUnitTemplateMeaning
ro_waterkg/m³1000Water density ρw\rho_{\mathrm{w}}
gravitym/s²9.81Gravity gg
mu–0.5Ground-contact friction coefficient μ\mu
Cd–1.1Drag coefficient CdC_d
ro_personkg/m³1000Body density
weight_personkg75Body mass
height_personm1.75Body height
width1_personm0.3Body width facing the flow (w1w_1 in the drag force)
width2_personm0.3Body thickness along the flow; with w1w_1 it sets the submerged volume

Method No. 3. ro_water (1000 kg/m³), gravity (9.81 m/s²), mu (0.46) and Cd (1), then a mass m_ and a height y_ for each body type:

Body typeMass keyTemplate (kg)Height keyTemplate (m)
Child, malem_c_m22.915y_c_m1.160
Teenager, malem_t_m56.645y_t_m1.587
Adult manm_a_m84.587y_a_m1.720
Older manm_o_m76.892y_o_m1.667
Child, femalem_c_f22.719y_c_f1.155
Teenager, femalem_t_f59.271y_t_f1.571
Adult womanm_a_f76.858y_a_f1.602
Older womanm_o_f70.284y_o_f1.547

The model derives each body's width w=16 m/(3πρw y)w = \sqrt{16\,m / (3\pi \rho_{\mathrm{w}}\, y)} and thickness w/2w/2 from its mass and height.


Mesh Table​

The Mesh tab (was Voronoi_Settings.xlsx) is read only when flag_voronoi = 1. Its mesh-compatibility values must match the metadata of the prepared mesh: the preflight check stops a run whose workbook names a different mesh. The tab selects a prepared mesh; it never builds or changes one.

The Mesh tab of the case workbook

The Mesh tab of the Stanford example workbook. Click the picture to open it full size.

SectionParameterTemplateUnitUsed whenDescription
Prepared caseVoronoi case file–.matflag_voronoi = 1Prepared case with the UGRID mesh, overlap data, forcing and initial state
Mesh compatibilityBackground width2000mpreflightTarget background-cell width stored in the mesh metadata; it does not resize the mesh
Mesh compatibilityMinimum cell width100mpreflightSmallest permitted hydraulic width
Mesh compatibilityAdjacent size ratio2–preflightLargest target-size ratio between neighbouring cells
Mesh compatibilityUrban target width200mpreflightTarget cell width in urban refinement regions
Mesh compatibilityUrban buffer1000mpreflightTransition distance around urban refinement regions
Mesh compatibilityUnresolved riversneal_subgridnone or neal_subgridpreflightRiver treatment stored in the mesh: none, or the Neal subgrid for channels narrower than a cell
Optional subgridVoronoi subgrid table–pathflag_voronoi_subgrid = 1Cell and face property table (HEC-RAS style); blank for flat-prism cells
OutputWrite native archive10 or 1mesh outputKeep the native unstructured NetCDF result
OutputNative output interval s300smesh outputTime between frames of the NetCDF archive
OutputWrite final GeoTIFFs10 or 1mesh outputFinal maps through the conservative mesh-to-raster overlap
OutputWrite temporal GeoTIFFs10 or 1mesh outputMaps at each raster-stack interval
OutputRaster stack interval s3600smesh outputRaster export interval, a whole multiple of the native interval
OutputWrite figures10 or 1mesh outputResult figures
OutputWrite videos10 or 1mesh outputResult animations (needs video support)
OutputWrite gauge hydrographs10 or 1mesh outputGauge and outlet hydrographs

The row "River cells across" (Legacy) is not read: the loaded UGRID geometry sets the river resolution.


Internal Boundary Conditions (Control Structures)​

HydroPol2D allows the definition of internal boundary conditions (IBCs) that locally modify the hydraulic response of the domain.

These structures are implemented through a simple rating-curve approach that converts water depth into discharge. At the selected control cells, flow is no longer determined solely by the standard local inertial update. Instead, discharge is imposed through a depth–discharge relationship defined by user-specified parameters.

This allows the model to represent localized hydraulic controls such as:

  • culverts
  • gates
  • weirs
  • outlets
  • engineered control sections

Concept​

Each internal boundary condition is linked to a control cell defined by its spatial coordinates. The discharge through that control is computed from the local water depth using a rating-curve formulation.

In the current HydroPol2D implementation, the control structure spreadsheet defines two rating-curve branches, each with its own coefficient and threshold parameters. This makes it possible to represent piecewise hydraulic behavior under different flow depths or operating conditions.

The resulting discharge is imposed at the corresponding control location and therefore modifies the local flow dynamics within the numerical solver.


Function in the Model​

Internal boundary conditions affect the simulation by:

  • imposing a discharge response based on local depth
  • modifying inlet or outlet cell fluxes within the local inertial solver
  • introducing controlled internal flow exchange within the computational domain

These structures can strongly influence:

  • upstream storage
  • downstream propagation
  • flood attenuation
  • local backwater effects

Role in the Numerical Model​

At cells where an internal boundary condition is defined:

  • water depth is evaluated at the control point
  • discharge is computed from the rating-curve parameters
  • the resulting flow is imposed in the hydraulic update

This means that the local inertial solver is locally modified by the control structure behavior. The discharge is prescribed from the rating relationship rather than being obtained exclusively from the standard face-based flux computation.


Input Table Structure​

Internal boundary conditions are defined in the Control structures tab of the case workbook (BC_Control_structure.xlsx in the older layout), read when flag_reservoir = 1. Each row is one structure. The outflow is Q=k1(h−h0,1)k2Q = k_1 (h - h_{0,1})^{k_2} to the cell (xd,1,yd,1)(x_{d,1}, y_{d,1}) and Q=k3(h−h0,2)k4Q = k_3 (h - h_{0,2})^{k_4} to the cell (xd,2,yd,2)(x_{d,2}, y_{d,2}), with coordinates in the DEM projection.

The Control structures tab of the case workbook

The Control structures tab of the Stanford example workbook. Click the picture to open it full size.

Table structure​

ParameterUnitsDescription
Index\mathrm{Index}—Identifier of the control structure
xxm\mathrm{m}Easting coordinate of the control cell
yym\mathrm{m}Northing coordinate of the control cell
k1k_1—Coefficient of the first rating-curve branch
h0,1h_{0,1}m\mathrm{m}Reference depth or threshold associated with the first branch
k2k_2—Exponent or shape parameter associated with the first branch
xd,1x_{\mathrm{d},1}m\mathrm{m}Easting coordinate of the first discharge control point
yd,1y_{\mathrm{d},1}m\mathrm{m}Northing coordinate of the first discharge control point
k3k_3—Coefficient of the second rating-curve branch
h0,2h_{0,2}m\mathrm{m}Reference depth or threshold associated with the second branch
k4k_4—Exponent or shape parameter associated with the second branch
xd,2x_{\mathrm{d},2}m\mathrm{m}Easting coordinate of the second discharge control point
yd,2y_{\mathrm{d},2}m\mathrm{m}Northing coordinate of the second discharge control point

Table 3. HydroPol2D internal boundary condition parameter table. These parameters define the rating-curve behavior used to convert depth into discharge.


Example Values​

Index\mathrm{Index}xx (m)(\mathrm{m})yy (m)(\mathrm{m})k1k_1h0,1h_{0,1} (m)(\mathrm{m})k2k_2xd,1x_{\mathrm{d},1} (m)(\mathrm{m})yd,1y_{\mathrm{d},1} (m)(\mathrm{m})k3k_3h0,2h_{0,2} (m)(\mathrm{m})k4k_4xd,2x_{\mathrm{d},2} (m)(\mathrm{m})yd,2y_{\mathrm{d},2} (m)(\mathrm{m})
1-5166015.11-2706361.321.50.00.50-5166037.22-2706321.5543.02.51.5-5166037.22-2706321.554
2-5166922.84-2704154.6416.00.01.5-5166922.84-2704174.640.5389514130.10.5-5166922.84-2704174.64

Table 4. Example internal boundary condition parameters currently used in HydroPol2D.


Interpretation​

The control structure formulation is based on a depth–discharge relationship of the general form:

Q=f(h)Q = f(h)

where:

  • QQ is discharge through the structure in m3 s−1\mathrm{m^3\,s^{-1}}
  • hh is local water depth in m\mathrm{m}
  • the coefficients k1k_1, k2k_2, k3k_3, and k4k_4 define the rating-curve response
  • the terms h0,1h_{0,1} and h0,2h_{0,2} define the reference depths associated with each branch

The coordinates (xd,1,yd,1)\left(x_{\mathrm{d},1}, y_{\mathrm{d},1}\right) and (xd,2,yd,2)\left(x_{\mathrm{d},2}, y_{\mathrm{d},2}\right) are the cells that receive each branch's release. The release leaves the control cell and enters that cell, so the transfer conserves mass. Each release is capped at the water above its threshold, and the second branch uses the depth left after the first. A destination of (0,0)(0, 0) sends the release out of the model, and it is counted as outlet flow. An empty destination switches that branch off.

This structure makes it possible to represent a simple piecewise discharge relationship using two parameterized branches.


Practical Meaning of the Parameters​

  • k1k_1 and k3k_3 control the magnitude of discharge response
  • k2k_2 and k4k_4 control the curvature or nonlinearity of the response
  • h0,1h_{0,1} and h0,2h_{0,2} define activation thresholds or reference depths
  • xd,1,yd,1,xd,2,yd,2x_{\mathrm{d},1}, y_{\mathrm{d},1}, x_{\mathrm{d},2}, y_{\mathrm{d},2} define where the controlled discharge is linked spatially

Together, these parameters define how the internal structure converts water depth into flow.


Practical Considerations​

  • control coordinates must be consistent with the DEM projection
  • the selected cells must coincide with valid hydraulic cells in the model domain
  • rating-curve coefficients must be physically realistic
  • excessively steep rating curves may create numerical instability
  • control structures should be tested carefully because they directly alter local mass fluxes

Summary​

Internal boundary conditions in HydroPol2D are represented through a simple rating-curve framework that converts local water depth into discharge.

They are used to:

  • impose controlled inlet or outlet fluxes
  • represent hydraulic control structures
  • modify the local inertial dynamics at specific cells

Their correct parameterization is essential for stable and physically meaningful simulation of engineered hydraulic systems.


Design Philosophy​

HydroPol2D separates:

  • spatial inputs, which define where each class occurs,
  • parameter tables, which define how each class behaves.

This makes the model easier to maintain, easier to calibrate, and easier to apply across different domains.


Summary​

Parameter tables define how HydroPol2D translates categorical spatial data into physical behavior.

They are a central component of the model structure and must be carefully prepared to ensure consistent, stable, and physically meaningful simulations.