Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX: read_arm_mmcr fails when using a read-only input file #888

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions act/io/arm.py
Original file line number Diff line number Diff line change
Expand Up @@ -841,12 +841,12 @@ def read_arm_mmcr(filenames):
# read it in with xarray
multi_ds = []
for f in filenames:
nc = Dataset(f, 'a')
# Change heights name to range to read appropriately to xarray
if 'heights' in nc.dimensions:
nc.renameDimension('heights', 'range')
nc = Dataset(f, 'r')
if nc is not None:
zssherman marked this conversation as resolved.
Show resolved Hide resolved
ds = xr.open_dataset(xr.backends.NetCDF4DataStore(nc))
# Change heights name to range to read appropriately to xarray
if 'heights' in ds.dims:
ds = ds.rename_dims({"heights": "range"})
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are using heights later on for some calculations, this might break

Copy link
Author

@isilber isilber Dec 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zssherman Well, it doesn't, and I've tested it. Note that ds also has the 'heights' dim name changed prior to this PR.
As it stands, ARM currently holds only the b1 MMCR files, which have that dimension. The issue was with read-only files. Other than that, everything remained the same.
You can try the few lines of code in the issue I opened and see that it works.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah i was curious on why we are checking for nans later on etc for height and if that would break if we had range, but I see we check for range as well. Thanks for the clarification.

multi_ds.append(ds)
# Concatenate datasets together
if len(multi_ds) > 1:
Expand Down
Loading