Skip to content

Commit

Permalink
Fixes for isel
Browse files Browse the repository at this point in the history
  • Loading branch information
dschwoerer committed Feb 5, 2025
1 parent 123c79d commit 04d36f9
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions xemc3/core/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ def iter_zones(self):
yield self.data
else:
for i in range(len(self.data.zone)):
yield self.isel(zone=i)
yield self.isel(zone=i, drop=True)

def iter_plates(self, *, symmetry=False, segments=1):
"""
Expand Down Expand Up @@ -503,16 +503,23 @@ def isel(
else:
vi = int(v)
fac = v - vi
ds_ = (ds.isel({k: vi}) * xr.DataArray([1 - fac, fac], dims=dk)).sum(
dim=dk, skipna=False
)
dsa = xr.Dataset({c: ds[c] for c in ds if dk in ds[c].dims})
if len(list(dsa)):
ds_ = (
dsa.isel({k: vi}) * xr.DataArray([1 - fac, fac], dims=dk)
).sum(dim=dk, skipna=False)
else:
ds_ = dsa
for co in ds:
if dk not in ds[co].dims:
ds_[co] = ds[co].isel({k: vi}, missing_dims="ignore")
for co in ds.coords:
if dk in ds.coords[co].dims:
ds_[co] = (
ds[co].isel({k: vi}) * xr.DataArray([1 - fac, fac], dims=dk)
).sum(dim=dk)
else:
ds_[co] = ds[co]
ds_[co] = ds[co].isel({k: vi}, missing_dims="ignore")
ds = ds_
xas = {}
for k in ds.dims:
Expand Down

0 comments on commit 04d36f9

Please sign in to comment.