imod.mf6.UnsaturatedZoneFlow#

class imod.mf6.UnsaturatedZoneFlow(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, observations=None, water_mover=None, timeseries=None)[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.

  • 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.

__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, observations=None, water_mover=None, timeseries=None)[source]#

Methods

__init__(surface_depression_depth, kv_sat, ...)

add_periodic_auxiliary_variable()

assign_dims(arg)

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_auxiliary_variable_names()

get_options(d[, not_options])

isel()

period_data()

period_paths(directory, pkgname, ...)

remove_nans_from_dataset()

render(directory, pkgname, globaltimes, binary)

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

sel()

to_sparse(arrdict, layer)

Convert from dense arrays to list based input, since the perioddata does not require cellids but iuzno, we hgave to override

write(directory, pkgname, globaltimes, binary)

writes the blockfile and binary data

write_binary_griddata(outpath, da, dtype)

write_blockfile(directory, pkgname, ...)

write_datafile(outpath, ds, binary)

Writes a modflow6 binary data file

write_netcdf(directory, pkgname[, ...])

Write to netcdf.

write_packagedata(directory, pkgname, binary)

write_perioddata(directory, pkgname, binary)

write_text_griddata(outpath, da, dtype)