imod.prepare.assign_wells#
- imod.prepare.assign_wells(wells: DataFrame, top: DataArray | UgridDataArray, bottom: DataArray | UgridDataArray, k: DataArray | UgridDataArray | None = None, minimum_thickness: float | None = 0.0, minimum_k: float | None = 0.0, validate: bool = True) DataFrame[source]#
Distribute well pumping rate according to filter length when
k=None, or to transmissivity of the sediments surrounding the filter. Minimum thickness and minimum k should be set to avoid placing wells in clay layers. Pumping rates are adjusted using a correction factor \(F\) based on the mismatch between the depth of the well screen center \(F_c\) and the cell center \(Z_c\), equal to iMOD5’s correction factor:\[F = 1 - \frac{|Zc - Fc|}{0.5 * D}\]where D is the thickness of the layer.
This factor is multiplied with the transmissivity (k-value * well filter thickness) to weigh how rates should be distributed over the layers.
Wells where well screen_top equals screen_bottom are assigned to the layer they are located in, without any subdivision. Wells located outside of the grid are removed. To try to automatically fix well filter misplacements, see the
imod.prepare.cleanup_wel()function.- Parameters:
wells (pandas.DataFrame) – Should contain columns x, y, id, top, bottom, rate.
top (xarray.DataArray or xugrid.UgridDataArray) – Top of the model layers.
bottom (xarray.DataArray or xugrid.UgridDataArray) – Bottom of the model layers.
k (xarray.DataArray or xugrid.UgridDataArray, optional) – Horizontal conductivity of the model layers.
minimum_thickness (float, optional, default: 0.0) – Minimum thickness, cells with thicknesses smaller than this value will be dropped.
minimum_k (float, optional, default: 0.0) – Minimum horizontal conductivity, cells with horizontal conductivities smaller than this value will be dropped.
validate (bool) – raise an excpetion if one of the wells is not in the domain
- Returns:
placed_wells – Wells with rate subdivided per layer. Contains the original columns of
wells, as well as layer, overlap, transmissivity.- Return type:
pd.DataFrame