Source code for imod.msw.infiltration
import xarray as xr
from imod.mf6.interfaces.iregridpackage import IRegridPackage
from imod.msw.fixed_format import VariableMetaData
from imod.msw.pkgbase import MetaSwapPackage
from imod.msw.regrid.regrid_schemes import InfiltrationRegridMethod
[docs]
class Infiltration(MetaSwapPackage, IRegridPackage):
"""
This contains the infiltration data.
This class is responsible for the file `infi_svat.inp`
Parameters
----------
infiltration_capacity: array of floats (xr.DataArray)
Describes the infiltration capacity of SVAT units. This array must have
a subunit coordinate to describe different land uses.
downward_resistance: array of floats (xr.DataArray)
Describes the downward resisitance of SVAT units. Set to -9999.0 to make
MetaSWAP ignore this resistance. This array must not have a subunit
coordinate.
upward_resistance: array of floats (xr.DataArray)
Describes the upward resistance of SVAT units. Set to -9999.0 to make
MetaSWAP ignore this resistance. This array must not have a subunit
coordinate.
bottom_resistance: array of floats (xr.DataArray)
Describes the infiltration capacity of SVAT units. Set to -9999.0 to
make MetaSWAP ignore this resistance. This array must not have a subunit
coordinate.
extra_storage_coefficient: array of floats (xr.DataArray)
Extra storage coefficient of phreatic layer. This array must not have a
subunit coordinate.
active: array of bools (xr.DataArray)
Describes whether SVAT units are active or not. This array must not have
a subunit coordinate.
"""
_file_name = "infi_svat.inp"
_metadata_dict = {
"svat": VariableMetaData(10, 1, 99999999, int),
"infiltration_capacity": VariableMetaData(8, 0.0, 1000.0, float),
"downward_resistance": VariableMetaData(8, -9999.0, 999999.0, float),
"upward_resistance": VariableMetaData(8, -9999.0, 999999.0, float),
"bottom_resistance": VariableMetaData(8, -9999.0, 999999.0, float),
"extra_storage_coefficient": VariableMetaData(8, 0.01, 1.0, float),
}
_with_subunit = ("infiltration_capacity",)
_without_subunit = (
"downward_resistance",
"upward_resistance",
"bottom_resistance",
"extra_storage_coefficient",
)
_to_fill = ()
_regrid_method = InfiltrationRegridMethod()
[docs]
def __init__(
self,
infiltration_capacity: xr.DataArray,
downward_resistance: xr.DataArray,
upward_resistance: xr.DataArray,
bottom_resistance: xr.DataArray,
extra_storage_coefficient: xr.DataArray,
):
super().__init__()
self.dataset["infiltration_capacity"] = infiltration_capacity
self.dataset["downward_resistance"] = downward_resistance
self.dataset["upward_resistance"] = upward_resistance
self.dataset["bottom_resistance"] = bottom_resistance
self.dataset["extra_storage_coefficient"] = extra_storage_coefficient
self._pkgcheck()