POD development: how to add a new variable #189
Replies: 3 comments 8 replies
-
|
Thanks Dani. I was wondering the same thing. @tsjackson-noaa - do we have documentation on this specific task? |
Beta Was this translation helpful? Give feedback.
-
|
I am also facing this same problem now that @wrongkindofdoctor's static variable fix (#185) gets us past the static field issue in @chiaweh2's tropical sea level POD: |
Beta Was this translation helpful? Give feedback.
-
|
Hi @bitterbark;
The request for a variable on a pressure level is still made in a varlist entry in the POD's settings file, using the scalar_coordinates attribute. This use of the scalar_coordinates attribute to denote array slices is in keeping with the CF conventions. This is what is done in the EOF_500hPa POD: we request
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
What is the recommended path for developers who need to use a new variable?
I see the directory data/ has the historic fieldlist_*.jsonc and also a bunch of tables. It seems that adding to
fieldlist_NCAR is noticed by the framework. Do we need to also add to the tables? Is it our responsibility to add to other models fieldlists?
Is there pressure level extraction? If so, how to access it?
In the POD I'm implementing, I need geopotential height at 500mb. There is
already a zg = geopotential_height, defined in fieldlist_NCAR.jsonc
as follows:
"Z3": {
"standard_name": "geopotential_height",
"units": "m",
// note: 4d name is 'Z3' but Z500 = height at 500 mb, etc.
"scalar_coord_templates": {"plev": "Z{value}"},
"ndim": 4
},
It looks like the scalar_coord_templates should recognize an inputdata/model
netcdf file named Z500, and it looks like this was used in the EOF pod.
Emulating its settings.jsonc results in errors (it is depricated, right?)
In the pod's settings.jsonc file, if we have non-standard dimensions in the file, how do we describe them in the dimensions specifications?
My specific error
When I just asked for varlist "zg", "standard_name" : "geopotential_height", "dimensions": ["time", "lat", "lon"]
I get the error
WARNING: Deactivating <Update with current development efforts #2.blocking_neale:zg> due to translation failure ("Queried standard name 'geopotential_height' with an unexpected set of axes frozenset({'X', 'T', 'Y'}) not in convention 'NCAR'.").
I don't understand what the frozenset axes are or why they don't correspond to the dimensions I specify.
Since it did't work with the (3d) zg = "standard_name" : "geopotential_height", I made a new variable:
"zg500": "standard_name" : "geopotential_height_500mb",
It seems to get farther:
Querying <Z500 (=geopotential_height_500mb)>
No data found for <Z500 (=geopotential_height_500mb)>.
Request for <#2.blocking_neale:zg500 (=Z500) @ 1day> failed; finding alternate vars.
No alternates available for <#2.blocking_neale:zg500>.
WARNING: Execution of POD blocking_neale couldn't be completed:
The file in question is named inputdata/model/blocking_cam5/day/blocking_cam5.Z500.day.nc
float Z500(time, lat, lon) ;
Z500:units = "m" ;
Z500:long_name = "Geopotential Z at 500 mbar pressure surface" ;
Z500:cell_methods = "time: mean
I'm attaching the following files, let me know if you want to look at something else!
input_dani.jsonc.txt
settings.jsonc.txt
out.txt
This will go on my list of improved documentation for new developers based on my experiences.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions