From 1a1688c574a6de0cd4cb5796030bd2d0a9316e0a Mon Sep 17 00:00:00 2001 From: tomvothecoder Date: Thu, 7 Nov 2024 13:40:06 -0800 Subject: [PATCH] Remove `_add_cf_attrs_to_z_axes` - Bug is fixed in xcdat v0.7.3 --- .../863-z-bounds-fix/run_script.py | 22 ++++++++++++ e3sm_diags/driver/utils/dataset_xr.py | 34 ------------------- 2 files changed, 22 insertions(+), 34 deletions(-) create mode 100644 auxiliary_tools/cdat_regression_testing/863-z-bounds-fix/run_script.py diff --git a/auxiliary_tools/cdat_regression_testing/863-z-bounds-fix/run_script.py b/auxiliary_tools/cdat_regression_testing/863-z-bounds-fix/run_script.py new file mode 100644 index 000000000..7ca32ced9 --- /dev/null +++ b/auxiliary_tools/cdat_regression_testing/863-z-bounds-fix/run_script.py @@ -0,0 +1,22 @@ +import os +from e3sm_diags.parameter.core_parameter import CoreParameter +from e3sm_diags.run import runner + +param = CoreParameter() + +# param.reference_data_path = '/global/cfs/cdirs/e3sm/diagnostics/observations/Atm/climatology' +# param.test_data_path = '/global/cfs/cdirs/e3sm/zhang40/e3sm_diags_for_EAMxx/data/Cess' +param.reference_data_path = ( + "/global/cfs/cdirs/e3sm/diagnostics/observations/Atm/climatology" +) +param.test_data_path = "/global/cfs/cdirs/e3sm/chengzhu/eamxx/post/data/rgr" +param.test_name = "eamxx_decadal" +param.seasons = ["ANN"] +# param.save_netcdf = True + +prefix = "/global/cfs/cdirs/e3sm/www/cdat-migration-fy24" +param.results_dir = os.path.join(prefix, "889-z-axis-bnds") + +runner.sets_to_run = ["zonal_mean_2d"] + +runner.run_diags([param]) diff --git a/e3sm_diags/driver/utils/dataset_xr.py b/e3sm_diags/driver/utils/dataset_xr.py index 8c9defbf9..8b7706bf0 100644 --- a/e3sm_diags/driver/utils/dataset_xr.py +++ b/e3sm_diags/driver/utils/dataset_xr.py @@ -419,11 +419,6 @@ def _get_climo_dataset(self, season: str) -> xr.Dataset: filepath = self._get_climo_filepath(season) ds = self._open_climo_dataset(filepath) - # Add CF attributes to Z axes if they are missing. - # NOTE: This is a temporary workaround for xCDAT. - # Refer to https://github.com/xCDAT/xcdat/pull/708 - ds = self._add_cf_attrs_to_z_axes(ds) - if self.var in self.derived_vars_map: ds = self._get_dataset_with_derived_climo_var(ds) elif self.var in ds.data_vars.keys(): @@ -439,35 +434,6 @@ def _get_climo_dataset(self, season: str) -> xr.Dataset: return ds - def _add_cf_attrs_to_z_axes(self, ds: xr.Dataset) -> xr.Dataset: - """Add CF attributes to the Z axis of the dataset if the Z axis exists. - - This method is a temporary solution to enable xCDAT to properly - retrieve bounds for Z axes that do not have CF attributes, which - is required for downstream regridding operations. - - Parameters - ---------- - ds : xr.Dataset - The dataset. - - Returns - ------- - xr.Dataset - The dataset with CF attributes added to the Z axes. - """ - try: - dim = xc.get_dim_keys(ds, axis="Z") - except KeyError: - pass - else: - axis_attr = ds[dim].attrs.get("axis") - - if axis_attr is None: - ds[dim].attrs["axis"] = "Z" - - return ds - def _open_climo_dataset(self, filepath: str) -> xr.Dataset: """Open a climatology dataset.