Comments (15)
@durack1 yes I far as I rememember it is builtin CMOR, but maybe via the tables, I need to double check
from cmor.
yes see: https://github.com/PCMDI/cmip5-cmor-tables/blob/master/Tables/CMIP5_Amon#L503-L520
from cmor.
As below:
From: Karl Taylor
Date: Wednesday, December 9, 2015 at 11:47 AM
To: "martin**@stfc.ac.uk"
Cc: "Durack , Paul J.", "Doutriaux, Charles", "Nadeau, Denis"
Subject: Re: CF errors in CMIP5
Dear Martin and all,
Regarding:
I've just scanned a sample of CMIP5 files, 5 random files from every CMOR variable,
with the CF Checker. This turns up a few errors from the data providers, but many
which appear to come from CMOR. Out of 4435 files checked, 1327 are non-compliant.
The commonest error, in 936 files, is "ERROR (4.3.2): formula_terms attribute only
allowed on coordinate variables" which is triggered by having a formula_terms
attribute on a bounds variable -- which the checker does not accept.
Is the use of formula_terms on bounds variables something which is built into CMOR?
Could it be switched off or blocked, or is there some justification for keeping it and
proposing an amendment to the convention?
I think this is indeed an error in the CF checker, *not* CMOR. I reviewed the CF
standards document, and this is the only explicit statement about what formula_terms
is associated with:
"A new attribute, formula_terms , is used to associate terms in the definitions with
variables in a netCDF file."
Note that it doesn't say that formula_terms can *only* be attached to variables that
are "coordinates variables". Certainly formula_terms attached to the vertical
coordinate bounds are just as essential as having them available for the coordinates
themselves because without those terms we can't convert the bounds to something
physical (e.g., pressure or height). If we accept that the terms are essential, then
they need to appear in CMIP files. If we agree that CF doesn't forbid this
(and I don't think it does), then we need to modify the CF checker so that it won't
raise an error. If we think CF does forbid it (or might be interpreted that way), then
we need to file a ticket to the convention site with clarifying wording (which I would
consider to be a "defect", not a modification of the standard, so would expect no
objections to be raised).
In any case I don't think we should change the way the formula_terms appear in
CMIP files.
Best regards,
Karl
from cmor.
I think the CF checker is following the conformance document statement that:
"The formula_terms attribute is only allowed on a coordinate variable which has a standard_name listed in Appendix C".
Given the consistency between the conformance document and the checker, I hadn't looked at the standards document. But the above statement is slightly ambiguous -- your analysis of the standards document suggests it should be something like "Coordinate variables can only carry a formula_terms attributes if they also have a standard_name which is listed in Appendix C", rather than the alternative interpretation which the CF Checker is enforcing: "The formula_terms attribute is only allowed on variables which are coordinate variables having a standard_name which is listed in Appendix C".
The convention states that the bounds variables is considered as part of the variable meta data and it is not necessary to provide it with "attributes such as long_name and units". Are you suggesting that there is a need for a separate statement of the formula_terms? Are there cases when the formula_terms of the bounds are different from those of the coordinate variable it is associated with?
from cmor.
Hi Martin,
I hadn't read the conformance document, but I trust your analysis and think we will need to make some change(s) (in the conformance document at least and maybe a clarification also in the conventions document).
For dimensionless coordinates where formula_terms are needed, the formula will be the same for both the coordinates and their bounds, but because the bounds don't coincide (in the vertical dimension) with the coordinates themselves, different values must be assigned to the terms. This means that the formula_terms attached to the bounds will point to different variables (e.g., defined on half-levels) compared with the variables associated with the coordinates themselves (e.g., defined on full levels). So the formula will be the same, but the term variables (coefficient values) will invariably be different.
Does this make sense?
I think use of formula_terms should be allowed (and only allowed) when a variable is stored with a standard_name listed in Appendix C. The variable could be a coordinates variable or bounds on a coordinates variable, or just a regular variable in the file (after all you might want to store coordinate information in a file even if no variable is a function of that coordinate). I think we need to modify the conformance document along the lines you suggest; here's an option: "The formula_terms attribute can only be attached to a variable that has a standard_name listed in Appendix C." In the CF conventions themselves, we could add a sentence to the discussion of formula_terms that makes it clear that they can be attached to any type of variable as long as it has a standard_name listed in Appendix C.
Unless there are objections, we should transfer some of this discussion now to a new CF conventions "ticket". What do you think?
cheers,
Karl
from cmor.
Hi Karl,
Thanks .. I understand the requirement for formula_terms on the bounds now (and associated additional variables).
I agree that a transfer to a CF ticket would be good,
regards,
Martin
From: taylor13 [[email protected]]
Sent: 11 December 2015 17:05
To: PCMDI/cmor
Cc: Juckes, Martin (STFC,RAL,RALSP)
Subject: Re: [cmor] Generation of non CF-compliant files (invalid formula_terms attribute on bounds variable) (#47)
Hi Martin,
I hadn't read the conformance document, but I trust your analysis and think we will need to make some change(s) (in the conformance document at least and maybe a clarification also in the conventions document).
For dimensionless coordinates where formula_terms are needed, the formula will be the same for both the coordinates and their bounds, but because the bounds don't coincide (in the vertical dimension) with the coordinates themselves, different values must be assigned to the terms. This means that the formula_terms attached to the bounds will point to different variables (e.g., defined on half-levels) compared with the variables associated with the coordinates themselves (e.g., defined on full levels). So the formula will be the same, but the term variables (coefficient values) will invariably be different.
Does this make sense?
I think use of formula_terms should be allowed (and only allowed) when a variable is stored with a standard_name listed in Appendix C. The variable could be a coordinates variable or bounds on a coordinates variable, or just a regular variable in the file (after all you might want to store coordinate information in a file even if no variable is a function of that coordinate). I think we need to modify the conformance document along the lines you suggest; here's an option: "The formula_terms attribute can only be attached to a variable that has a standard_name listed in Appendix C." In the CF conventions themselves, we could add a sentence to the discussion of formula_terms that makes it clear that they can be attached to any type of variable as long as it has a standard_name listed in Appendix C.
Unless there are objections, we should transfer some of this discussion now to a new CF conventions "ticket". What do you think?
cheers,
Karl
�
Reply to this email directly or view it on GitHubhttps://github.com//issues/47#issuecomment-163991759.
from cmor.
I copied all the formula terms from the CMIP5 tables. I created axes from the CMIP5 tables and then create missing ones from dreq.xml.
from cmor.
@martinjuckes @taylor13 @doutriaux1 @durack1 Do we have a CF ticket for this? Should we change the way we handle formula_terms in CMOR? Note that ESGF will use cfchecker and CMIP6_Validator before publishing, so I would like to make sure that we are following the CF-1 convention to avoid confusion.
from cmor.
@dnadeau4 just for reference the current version of CF is 1.6
, however 1.7
is due for release fairly soon..
from cmor.
This issue is being actively worked on the CF trac system. Expect we will be in compliance with version 1.7 of CF
from cmor.
@dnadeau4 should this be moved to the 3.2.4 milestone?
from cmor.
@taylor13 Can you check on this with CF 1.7?
from cmor.
Yes, version 1.7 is about to be released, and our files will be compliant with it. (It may be a few months at least before the CF checker is updated.)
from cmor.
I will set the milestone to 3.2.6
and when CF 1.7
is out, we can close the issue.
from cmor.
CF 1.7 convention is now out.
from cmor.
Related Issues (20)
- Exposing latest netcdf 4.9.x library functionality: quantize, zstandard HOT 13
- Remove unused attributes when processing CMIP6Plus datasets HOT 14
- Exposing latest netcdf 4.9.x library functionality: quantize, zstandard HOT 48
- unclear warning... HOT 5
- bounds required on singleton lon and lat? HOT 5
- avoid attributes of bounds of auxilliary coordinates (`vertices_latitudes` / `vertices_longitude`) HOT 5
- Calibrating CMOR3 & 4 forward development plans HOT 7
- CMOR 3.8.0 Release HOT 4
- Update README.md to remove v3.7 reference
- default `realm = "REALM"` is always written although not required by CV HOT 2
- order in `required_global_attributes` matters HOT 1
- input time type as INT HOT 3
- CircleCI current image deprecated HOT 1
- Numpy 2.0 compatibility issue HOT 2
- File output size and chunking HOT 10
- Message Logging generates duplicated output lines
- DESTDIR support HOT 2
- Failure invoking set_deflate HOT 1
- user defined grid mapping
- Add CITATION.cff file HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmor.