Skip to content

Commit 0d64e77

Browse files
authored
Merge pull request #38 from JamesMcClung/pr/t-is-coord
Add t to coords
2 parents 4dcb578 + eb2a1b3 commit 0d64e77

3 files changed

Lines changed: 12 additions & 10 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ repos:
8989
# - id: cmake-format
9090

9191
- repo: https://github.com/abravalheri/validate-pyproject
92-
rev: "v0.23"
92+
rev: "v0.25"
9393
hooks:
9494
- id: validate-pyproject
9595
additional_dependencies: ["validate-pyproject-schema-store[all]"]

src/pscpy/psc.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def __init__(
3737
self.x = self._get_coord(0)
3838
self.y = self._get_coord(1)
3939
self.z = self._get_coord(2)
40+
self.t = float(ds.attrs["time"])
4041

4142
def _get_coord(self, coord_idx: int) -> NDArray[Any]:
4243
return np.linspace(
@@ -68,25 +69,25 @@ def decode_psc(
6869
length: ArrayLike | None = None,
6970
corner: ArrayLike | None = None,
7071
) -> xr.Dataset:
71-
da = ds[next(iter(ds))] # first dataset
72-
if da.dims[0] == "dim_0_1":
72+
dims = list(ds.dims)
73+
if "dim_0_1" in dims:
7374
# for compatibility, if dimensions weren't saved as attribute in the .bp file,
7475
# fix them up here
7576
ds = ds.rename_dims(
7677
{
77-
da.dims[0]: "step",
78-
# dims[1] is the "component" dimension, which gets removed later
79-
da.dims[2]: "z",
80-
da.dims[3]: "y",
81-
da.dims[4]: "x",
78+
dims[0]: "step",
79+
dims[1]: "component",
80+
dims[2]: "z",
81+
dims[3]: "y",
82+
dims[4]: "x",
8283
}
8384
)
8485
ds = ds.squeeze("step")
8586

8687
for var_name in ds:
8788
components = list(iter_components(var_name, species_names))
8889
for component_idx, component in enumerate(components):
89-
ds = ds.assign({component: ds[var_name][component_idx, :, :, :]})
90+
ds = ds.assign({component: ds[var_name].isel(component=component_idx)})
9091
if var_name not in components:
9192
ds = ds.drop_vars([var_name])
9293

@@ -95,6 +96,7 @@ def decode_psc(
9596
"x": ("x", run_info.x),
9697
"y": ("y", run_info.y),
9798
"z": ("z", run_info.z),
99+
"t": run_info.t,
98100
}
99101
ds = ds.assign_coords(coords)
100102

tests/test_xarray_adios2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def ds_pfd_moments_decoded(ds_pfd_moments_raw) -> xr.Dataset:
9898

9999
def test_open_dataset(ds_pfd_decoded):
100100
assert "jx_ec" in ds_pfd_decoded
101-
assert ds_pfd_decoded.coords.keys() == set({"x", "y", "z"})
101+
assert ds_pfd_decoded.coords.keys() == set({"x", "y", "z", "t"})
102102
assert ds_pfd_decoded.jx_ec.sizes == dict(x=1, y=128, z=512) # noqa: C408
103103
assert np.allclose(
104104
ds_pfd_decoded.jx_ec.z.data, np.linspace(-25.6, 25.6, 512, endpoint=False).data

0 commit comments

Comments
 (0)