imod.mf6.Modflow6Simulation.clip_box#

Modflow6Simulation.clip_box(time_min: datetime | datetime64 | str | None = None, time_max: datetime | datetime64 | str | None = None, layer_min: int | None = None, layer_max: int | None = None, x_min: float | None = None, x_max: float | None = None, y_min: float | None = None, y_max: float | None = None, states_for_boundary: dict[str, DataArray | UgridDataArray] | None = None) Modflow6Simulation[source]#

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

Parameters:
  • time_min (optional, np.datetime64) – Start time to select. Data will be forward filled to this date. If time_min is before the start time of the dataset, data is backfilled.

  • time_max (optional) – End time to select.

  • layer_min (optional, int) – Minimum layer to select.

  • layer_max (optional, int) – Maximum layer to select.

  • x_min (optional, float) – Minimum x-coordinate to select.

  • x_max (optional, float) – Maximum x-coordinate to select.

  • y_min (optional, float) – Minimum y-coordinate to select.

  • y_max (optional, float) – Maximum y-coordinate to select.

  • states_for_boundary (optional, Dict[str, Union[xr.DataArray, xu.UgridDataArray]]) – A dictionary with model names as keys and grids with states that are used to put as boundary values. imod.mf6.GroundwaterFlowModel will get a imod.mf6.ConstantHead, imod.mf6.GroundwaterTransportModel will get a imod.mf6.ConstantConcentration package.

Returns:

clipped

Return type:

Simulation

Examples

Slicing intervals may be half-bounded, by providing None:

To select 500.0 <= x <= 1000.0:

>>> mf6_sim.clip_box(x_min=500.0, x_max=1000.0)

To select x <= 1000.0:

>>> mf6_sim.clip_box(x_max=1000.0)``

To select x >= 500.0:

>>> mf6_sim.clip_box(x_min=500.0)

To select a time interval, you can use datetime64:

>>> mf6_sim.clip_box(time_min=np.datetime64("2020-01-01"), time_max=np.datetime64("2020-12-31"))

To clip an area and set a boundary condition at the clipped boundary:

>>> states_for_boundary = {"GWF6_model_name": heads}
>>> clipped_sim = mf6_sim.clip_box(
...     x_min=500.0, x_max=1000.0, y_min=500.0, y_max=1000.0,
...     states_for_boundary=states_for_boundary
... )