E3SM-Project / e3sm_diags

E3SM Diagnostics package
https://e3sm-project.github.io/e3sm_diags
BSD 3-Clause "New" or "Revised" License
42 stars 32 forks source link

[Feature]: Support for p_levs instead of hyam and hybm - re EAMxx remapped files #801

Open AaronDonahue opened 8 months ago

AaronDonahue commented 8 months ago

Is your feature request related to a problem?

EAMxx introduced a new capability which allows the user to remap output onto a static pressure level vertical coordinate. This capability does not use the hyam and hybm hybrid coordinate system because we do not need to build the pressure from the surface pressure, since pressure levels are static in the data. E3SM Diags assumes that hyam and hybm will be in the source data and as a result is unable to produce any pressure based diagnostics for this remapped data.

Describe the solution you'd like

An option to use p_levs (which is the fixed set of pressure levels in the data) rather than build on the fly from hyam and hybm would be great. The solution could also be extended to use the p_mid and p_int variables to determine the pressure levels of data rather than rely on hyam and hybm.

Describe alternatives you've considered

So far I haven't tried alternative approaches, although I may try "hacking" an hyam and hybm with a hacked PS to ensure that e3sm-diags always builds the appropriate pressure levels for the data.

Additional context

No response

chengzhuzhang commented 7 months ago

@AaronDonahue thanks for filing this issue! I just got back from vacation and am catching up. Actually e3sm_diags doesn't request the vertical coordinate to be hybrid, it also supports pressure levels, such as CMIP datasets and those reanalysis datasets. I'm wondering if the program can't recognize specs of the p_lev coordinate that EAMxx data has. Could you share the input data and I can probably figure out the code change needed for supporting the file.