imod.mf6.UnsaturatedZoneFlow#

class imod.mf6.UnsaturatedZoneFlow(*_, **__)[source]#

Unsaturated Zone Flow (UZF) package.

TODO: Support timeseries file? Observations? Water Mover?

Parameters
  • surface_depression_depth (array of floats (xr.DataArray)) – is the surface depression depth of the UZF cell.

  • kv_sat (array of floats (xr.DataArray)) – is the vertical saturated hydraulic conductivity of the UZF cell. NOTE: the UZF package determines the location of inactive cells where kv_sat is np.nan

  • theta_res (array of floats (xr.DataArray)) – is the residual (irreducible) water content of the UZF cell.

  • theta_sat (array of floats (xr.DataArray)) – is the saturated water content of the UZF cell.

  • theta_init (array of floats (xr.DataArray)) – is the initial water content of the UZF cell.

  • epsilon (array of floats (xr.DataArray)) – is the epsilon exponent of the UZF cell.

  • infiltration_rate (array of floats (xr.DataArray)) – defines the applied infiltration rate of the UZF cell (LT -1).

  • et_pot (array of floats (xr.DataArray, optional)) – defines the potential evapotranspiration rate of the UZF cell and specified GWF cell. Evapotranspiration is first removed from the unsaturated zone and any remaining potential evapotranspiration is applied to the saturated zone. If IVERTCON is greater than zero then residual potential evapotranspiration not satisfied in the UZF cell is applied to the underlying UZF and GWF cells.

  • extinction_depth (array of floats (xr.DataArray, optional)) – defines the evapotranspiration extinction depth of the UZF cell. If IVERTCON is greater than zero and EXTDP extends below the GWF cell bottom then remaining potential evapotranspiration is applied to the underlying UZF and GWF cells. EXTDP is always specified, but is only used if SIMULATE ET is specified in the OPTIONS block.

  • extinction_theta (array of floats (xr.DataArray, optional)) – defines the evapotranspiration extinction water content of the UZF cell. If specified, ET in the unsaturated zone will be simulated either as a function of the specified PET rate while the water content (THETA) is greater than the ET extinction water content

  • air_entry_potential (array of floats (xr.DataArray, optional)) – defines the air entry potential (head) of the UZF cell. If specified, ET will be simulated using a capillary pressure based formulation. Capillary pressure is calculated using the Brooks-Corey retention function (“air_entry”)

  • root_potential (array of floats (xr.DataArray, optional)) – defines the root potential (head) of the UZF cell. If specified, ET will be simulated using a capillary pressure based formulation. Capillary pressure is calculated using the Brooks-Corey retention function (“air_entry”

  • root_activity (array of floats (xr.DataArray, optional)) – defines the root activity function of the UZF cell. ROOTACT is the length of roots in a given volume of soil divided by that volume. Values range from 0 to about 3 cm-2, depending on the plant community and its stage of development. If specified, ET will be simulated using a capillary pressure based formulation. Capillary pressure is calculated using the Brooks-Corey retention function (“air_entry”

  • groundwater_ET_function (({"linear", "square"}, optional)) – keyword specifying that groundwater evapotranspiration will be simulated using either the original ET formulation of MODFLOW-2005 (“linear”). Or by assuming a constant ET rate for groundwater levels between land surface (TOP) and land surface minus the ET extinction depth (TOP-EXTDP) (“square”). In the latter case, groundwater ET is smoothly reduced from the PET rate to zero over a nominal interval at TOP-EXTDP.

  • simulate_seepage (({True, False}, optional)) – keyword specifying that groundwater discharge (GWSEEP) to land surface will be simulated. Groundwater discharge is nonzero when groundwater head is greater than land surface.

  • print_input (({True, False}, optional)) – keyword to indicate that the list of UZF information will be written to the listing file immediately after it is read. Default is False.

  • print_flows (({True, False}, optional)) – keyword to indicate that the list of UZF flow rates will be printed to the listing file for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Control option and “PRINT FLOWS” is specified, then flow rates are printed for the last time step of each stress period. Default is False.

  • save_flows (({True, False}, optional)) – keyword to indicate that UZF flow terms will be written to the file specified with “BUDGET FILEOUT” in Output Control. Default is False.

  • budget_fileout (({"str"}, optional)) – path to output cbc-file for UZF budgets

  • budgetcsv_fileout (({"str"}, optional)) – path to output csv-file for summed budgets

  • observations ([Not yet supported.]) – Default is None.

  • water_mover ([Not yet supported.]) – Default is None.

  • timeseries ([Not yet supported.]) – Default is None. TODO: We could allow the user to either use xarray DataArrays to specify BCS or use a pd.DataFrame and use the MF6 timeseries files to read input. The latter could save memory for laterally large-scale models, through efficient use of the UZF cell identifiers.

  • validate ({True, False}) – Flag to indicate whether the package should be validated upon initialization. This raises a ValidationError if package input is provided in the wrong manner. Defaults to True.

__init__(surface_depression_depth, kv_sat, theta_res, theta_sat, theta_init, epsilon, infiltration_rate, et_pot=None, extinction_depth=None, extinction_theta=None, air_entry_potential=None, root_potential=None, root_activity=None, ntrailwaves=7, nwavesets=40, groundwater_ET_function=None, simulate_groundwater_seepage=False, print_input=False, print_flows=False, save_flows=False, budget_fileout=None, budgetcsv_fileout=None, observations=None, water_mover=None, timeseries=None, validate: bool = True)[source]#

Methods

__init__(surface_depression_depth, kv_sat, ...)

clip_box([time_min, time_max, layer_min, ...])

Clip a package by a bounding box (time, layer, y, x).

copy()

fill_stress_perioddata()

Modflow6 requires something to be filled in the stress perioddata, even though the data is not used in the current configuration.

from_file(path, **kwargs)

Loads an imod mf6 package from a file (currently only netcdf and zarr are supported).

get_non_grid_data(grid_names)

This function copies the attributes of a dataset that are scalars, such as options.

get_period_varnames()

is_clipping_supported()

is_empty()

Returns True if the package is empty- for example if it contains only no-data values.

is_grid_agnostic_package()

is_regridding_supported()

is_splitting_supported()

isel()

mask(mask)

Mask values outside of domain.

regrid_like(target_grid, regrid_context[, ...])

Creates a package of the same type as this package, based on another discretization.

render(directory, pkgname, globaltimes, binary)

Render fills in the template only, doesn't write binary data

sel()

set_repeat_stress(times)

Set repeat stresses: re-use data of earlier periods.

to_netcdf(*args, **kwargs)

Write dataset contents to a netCDF file.

write(pkgname, globaltimes, write_context)

writes the blockfile and binary data

write_binary_griddata(outpath, da, dtype)

write_blockfile(pkgname, globaltimes, ...)

write_packagedata(directory, pkgname, binary)

write_text_griddata(outpath, da, dtype)

Attributes

auxiliary_data_fields

dataset