Skip to content
Snippets Groups Projects
Commit 17f9c2ea authored by Siddhant Tibrewal's avatar Siddhant Tibrewal
Browse files

reconsolidating zmetadata after pulling metadata for fields via yac

parent 98b57fe5
No related branches found
No related tags found
No related merge requests found
Pipeline #102220 waiting for manual action
......@@ -23,6 +23,7 @@ def get_time_axis(v):
else:
return None
def get_var_parent_group(v):
var_group = get_var_group(v)
parent_var_path = var_group.attrs["hiopy::parent"]
......
......@@ -36,18 +36,14 @@ def add_coordinates(
lat_list, lon_list = zip(*coordinates)
lon = dataset.create_array(
name=coord_names[0], dtype=np.float32, shape=(len(coordinates),)
)
lon = dataset.create_array(name=coord_names[0], dtype=np.float32, shape=(len(coordinates),))
lon[:] = np.array(lon_list)
lon.attrs["_ARRAY_DIMENSIONS"] = [coord_names[0]]
lon.attrs["long_name"] = "longitude"
lon.attrs["units"] = "degree"
lon.attrs["standard_name"] = "grid_longitude"
lat = dataset.create_array(
name=coord_names[1], dtype=np.float32, shape=(len(coordinates),)
)
lat = dataset.create_array(name=coord_names[1], dtype=np.float32, shape=(len(coordinates),))
lat[:] = np.array(lat_list)
lat.attrs["_ARRAY_DIMENSIONS"] = [coord_names[1]]
lat.attrs["long_name"] = "latitude"
......
......@@ -21,7 +21,9 @@ def check_interpolation(source_var, target_var):
def check_metadata(var):
assert "hiopy::copy_metadata" not in var.attrs
assert (
"hiopy::copy_metadata" not in var.attrs
), f"Attributes of {var.name} {var.attrs.asdict()} is not cleaned"
def _collect_groups(dataset, parent=None):
......
......@@ -134,7 +134,8 @@ def main():
- np.datetime64(var_group["time"].attrs["units"][len("seconds since ") :])
) / np.timedelta64(1, "s") + dt
t0_idx = np.searchsorted(var_group["time"], t0)
assert var_group["time"][t0_idx] == t0, f"start_datetime {t0} not found in time axis at index {t0_idx} which has value {var_group['time'][t0_idx]}"
assert var_group["time"][t0_idx] == t0, f"start_datetime {t0} not found in time axis \
at index {t0_idx} which has value {var_group['time'][t0_idx]}"
# see YAC_REDUCTION_TIME_NONE etc. (TODO: pass constants through coyote)
time_methods2yac = {"point": 0, "sum": 1, "mean": 2, "min": 3, "max": 4}
......@@ -203,13 +204,16 @@ def main():
if "hiopy::copy_metadata" in v.attrs:
comp, grid, field = get_source_triple(v)
md_str = get_field_metadata(comp, grid, field)
print(md_str)
metadata = json.loads(md_str)
print(metadata)
logging.debug(f"Found metadata for {field}: {metadata}")
for key, value in metadata["cf"].items():
v.attrs[key] = value
del v.attrs["hiopy::copy_metadata"] # copy only once
# re-consolidate the newly updated metadata
for ds in args.datasets:
zarr.consolidate_metadata(ds.store)
run()
for dh in data_handlers:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment