-
Notifications
You must be signed in to change notification settings - Fork 34
Description
What happened?
rename() is not properly renaming original variable names to target derived variable keys. This bug has not been causing any issues in e3sm_diags and we don't write out files to netCDF (parameter.save_to_netcdf=False by default). This is a low priority issue and can be addressed when desired.
Technical Info
-
rename()-- notice how it just returns whatever is passed to it (new_name)
e3sm_diags/e3sm_diags/derivations/acme.py
Lines 19 to 21 in 43f5f74
def rename(new_name): """Given the new name, just return it.""" return new_name -
Example
rename()reference in derived vars dictionary -- the intended behavior is to rename "rsdt" to "SOLIN"
e3sm_diags/e3sm_diags/derivations/acme.py
Lines 674 to 676 in 43f5f74
"SOLIN": OrderedDict( [ (("rsdt",), rename), -
Call to
rename()-- notice that a cdms2.TransientVariable is being passed torename()here.rename()will just return that object without doing anything.
e3sm_diags/e3sm_diags/driver/utils/dataset.py
Lines 381 to 386 in 43f5f74
# Get the corresponding function. # Ex: The func in {('PRECC', 'PRECL'): func}. func = self._get_func(vars_to_func_dict) # Call the function with the variables. derived_var = func(*variables)
What did you expect to happen? Are there are possible answers you came across?
rename() should update the .id of the cdms2.TransientVariable to the target key
Example:
def rename(var: cdms2.TransientVariable, target_key: str) -> cdms2.TransientVariable:
var.id = target_key
return varMinimal Complete Verifiable Example (MVCE)
No response
Relevant log output
No response
Anything else we need to know?
No response
Environment
main branch and all previous versions of e3sm_diags that used rename()