Skip to content

Commit 15e61c8

Browse files
authored
update uv env, hack structured grid indices into converter (#184)
temp solution for writing structured cell ID to input files. long term solution will be a custom xarray index
1 parent 4709fa1 commit 15e61c8

File tree

4 files changed

+5617
-4195
lines changed

4 files changed

+5617
-4195
lines changed

flopy4/mf6/converter.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,32 @@ def unstructure_component(value: Component) -> dict[str, Any]:
151151
dim in field_value.dims for dim in ["nlay", "nrow", "ncol", "nnodes"]
152152
)
153153
if has_spatial_dims:
154+
# terrible hack to convert flat nodes dimension to 3d structured dims.
155+
# long term solution for this is to use a custom xarray index. filters
156+
# should then have access to all dimensions needed.
157+
dims_ = set(field_value.dims).copy()
158+
dims_.remove("nper")
159+
if dims_ == {"nnodes"}:
160+
parent = value.parent # type: ignore
161+
field_value = xr.DataArray(
162+
field_value.data.reshape(
163+
(
164+
field_value.sizes["nper"],
165+
parent.dims["nlay"],
166+
parent.dims["ncol"],
167+
parent.dims["nrow"],
168+
)
169+
),
170+
dims=("nper", "nlay", "ncol", "nrow"),
171+
coords={
172+
"nper": field_value.coords["nper"],
173+
"nlay": range(parent.dims["nlay"]),
174+
"ncol": range(parent.dims["ncol"]),
175+
"nrow": range(parent.dims["nrow"]),
176+
},
177+
name=field_value.name,
178+
)
179+
154180
period_data[field_name] = {
155181
kper: field_value.isel(nper=kper)
156182
for kper in range(field_value.sizes["nper"])

0 commit comments

Comments
 (0)