CORDEX-CMIP6 cmor tables #679
Replies: 14 comments 8 replies
-
Ok, i now see that this behaviour is activated by the presence of the |
Beta Was this translation helpful? Give feedback.
-
Just one hint for myself here: If i have derived attributes in the CV, e.g., Is it correct that i have to specifiy derived required attributes in the dataset table (although theoretically they could be added automatically since they are overwritten anyway...)? |
Beta Was this translation helpful? Give feedback.
-
@larsbuntemeyer you're almost there, if you wanted to see some of the As you noted this does NOT include the |
Beta Was this translation helpful? Give feedback.
-
Thanks @durack1 for that swift reply! I appreciate it! I guess, there is no way to configure |
Beta Was this translation helpful? Give feedback.
-
Yes, i updated to the latest version, now this makes the input file really slim and convenient, very nice!! |
Beta Was this translation helpful? Give feedback.
-
@larsbuntemeyer it makes sense to me that we migrate this "issue" into a "discussion" as there is no obvious issue or bug that this thread identifies, rather it's about CMOR usage (and potential expansion/features) |
Beta Was this translation helpful? Give feedback.
-
I agree! |
Beta Was this translation helpful? Give feedback.
-
@larsbuntemeyer regarding PrePARE usage, good question. We have been thinking about retooling this for validation across projects (input4MIPs, obs4MIPs, ..) in addition to expanding this to validate some file contents, rather than just metadata. We haven't expanded much past the thought at this stage - are you interested in retooling this for CORDEX? |
Beta Was this translation helpful? Give feedback.
-
I think, of course, having PrePARE being useful for different projects would be useful. However, I would be interested in being able to run a QA workflow before submitting datasets to ESGF. There was something like qa-dkrz that was particularly useful also for CORDEX but this is now deprecated in favour of the cfchecker. Anyway, with cmor3, i guess much of the checks are already run during cmorization and running cfchecker on top gives me some assurance. Having that said, it would be of course quite nice to have some checks that also can validate more than just metadata, e.g., in CORDEX that would be quite useful to ensure consistent grids within regional domains or ensuring consistent units across source_ids. Having a tool that utilizes actual cmor tables for qa would also detect datasets that have been "messing aroung" with the tables. However, i guess, this also depends on which qa tools are run during ESGF publication. |
Beta Was this translation helpful? Give feedback.
-
I have one more issue regardin controlled vocabulary. For example, for CORDEX we use a required attribute like {
"CORDEX_domain": {
"EUR-11": "Europe high-res.",
"EUR-44": "Europe"
}
} However, it seems that i can still choose any value in my input file for the "CORDEX_domain" attribute while the cmorizer does not complain or warn. There is a different behaviour, e.g., for |
Beta Was this translation helpful? Give feedback.
-
Ok, it seems to work if i put those allowed values into a list, e.g.,: "CORDEX_domain": [
"EUR-11",
"EUR-44"
], Can i still define derived attributes like this? For example, i would like to define "domain_name" that depends on the "CORDEX_domain":{
"EUR-11": {
"CORDEX_domain": "EUR-11",
"domain_name": "Europe"
}
}, This will automaticall fill derived required attributes, e.g., |
Beta Was this translation helpful? Give feedback.
-
Regarding the example immediately above, does each |
Beta Was this translation helpful? Give feedback.
-
(The following was written without realizing that you are already attempting to define such a CV. Sorry about that.) This, then, is analogous to the pairs of global attributes defined for CMIP6: (experiment_id, experiment), (source_id, source), (institution_id, institution), (sub_experiment_id, sub_experiment). As you probably know, these are defined by reference controlled vocabularies (CV's) stored in json files (e.g., for institution). Then, when the user supplies institution_id to CMOR, I think CMOR has already accessed the institution_id json file and can check whether institution_id is valid and what value of "institution" should be written. (The user doesn't have to provide CMOR with institution; only institution_id.) |
Beta Was this translation helpful? Give feedback.
-
Apologies for being slow on response here. Just to attempt to peel the onion and provide some context, and description, we MANAGE the controlled vocabularies (CVs) for CMIP6 in the WCRP-CMIP/CMIP6_CVs, but importantly, for CMOR, these are reformatted into the PCMDI/cmip6-cmor-tables/Tables/CMIP6_CV.json file which CMOR then uses for validation. I presume this was obvious? We do similar things with input4MIPs_CV.json and obs4MIPs_CV.json. Regarding defining a CV for CMOR to check, unlike the python json library, CMOR is C and so the format of what is being provided in the *_CV.json file is far less nimble than standard python formatting. @mauzey1 can you point us to the CMOR code that manages this CV validation? Including the CV read/load etc? |
Beta Was this translation helpful? Give feedback.
-
Hey everybody,
i have some issues since i am working on CMOR tables for downscaling of CMIP6 datasets. I try to understand some of the attribute dependencies and i have some preliminary tables here and a rendered example. For theses tests i have basically adapted the
CMIP6_CV
table and modified them. This all works fine, however, in CORDEX we don't require anyparent_*
orsub_*
attributes and i tried to remove them completely from the CV and the dataset table. But somehow i can't get it to work, since i always get something like:So the cmorizer looks for that attribute although it is not defined or required either in the dataset table nor in the CV table. Is there some special attributes for CMOR3 that are required? I suspect so when i have a look at the source code, e.g., here
cmor/Src/cmor_CV.c
Line 821 in c805fe0
At the same time, i wonder how this works, e.g., with the input4MIps or obs4MIPs tables since they don't define, e.g., the
sub_experiment
attributes...Maybe i get something totally wrong, i am not sure...
Beta Was this translation helpful? Give feedback.
All reactions