Add pycmor to CMORization tools#39
Conversation
pycmor (py-cmor) is a Python package developed at AWI that provides a declarative, plugin-based pipeline for converting ESM output to CMOR-compliant NetCDF for CMIP6 and CMIP7 submission. Adds a new "CMORization tools" section to highlight Python wrappers around CMOR.
|
This is a good suggestion. I think we should encourage others to provide tools to help in preparing model output, but before advertising them, I think we should consider whether they:
It would also be helpful to clearly state how they have been tested:
And also what specific advantages do the tools offer relative to, say, the CMOR library. Finally, as I understand it, pycmor reproduces the some/all? capabilities of CMOR3. Could you say why pycmor is easier to use? Are there any disadvantages you know of? |
|
Hi Karl, Thanks for the quick and thoughtful response — we appreciate you engaging with this constructively rather than just waving it through or shutting it down. The bar you've laid out (correctness on CMIP7 output, ability to track the moving data request/tables/CVs, ongoing support, open licensing, QC evidence, adoption breadth, and an honest comparison to CMOR) is exactly the right one for anything we'd want WCRP to point modelling centres at. So in that spirit, here's where things actually stand, rather than how we'd like them to sound:
Given that, we don't think this is the right time to ask WCRP to list pycmor as a recommended CMORization tool. We'd like to withdraw this PR for now and come back once we can back a listing with broader validation and a real support commitment, rather than ask you to vouch for something that's still proving itself. Thanks again for pushing on this — it's a useful gut-check. |
|
If we're going down the path of listing packages, may as well be comprehensive. I collated a bunch of CMOR wrappers in Table D1 (see here), and collated a couple more post-submission, including PyCMOR - once this paper is updated, can refer to the complete list |
|
Thanks for the pointer to the comprehensive table — that's a great reference for a future, broader listing effort. Closing this for now per the above; we'll revisit listing pycmor once it has stronger validation and a real support commitment behind it. |
|
To be fair, not all the software/tools in the paper/table have broad support for users not in their community banked in, but these are all efforts that build on the CMOR core functionality, or replicate it, in the case of XIOS for IPSL/CNRM modelling configurations, so happy to include pymor plus others, if they exist |
|
Hi all, @siligam I would encourage you to put in a PR to WCRP-CMIP/CMIP7-guidance to link to information on py-cmor -- we'll just need to ensure there is appropriate information about the level of support. |
|
Hi @matthew-mizielinski and all. We'll discuss this internally and open the PR. I agree the important part is to be clear about the status and level of support. As the level of support and completeness of the tool changes in time we will have to update also the CMIP7-guidance. |
Summary
Adds a new CMORization tools section to
docs/cmor_and_mip_tables.mdlisting pycmor, a Python package developed at the Alfred Wegener Institute (AWI) that provides a high-level, declarative pipeline for converting Earth system model output into CMOR-compliant NetCDF for CMIP6 and CMIP7 submission.Why this section: The page currently covers the CMOR library itself and MIP tables, but there is no listing of community tools built on top of CMOR. A "CMORization tools" section makes it easier for modelling centres to discover Python-level wrappers that reduce the friction of using CMOR directly.
About pycmor:
pip install py-cmor)Happy to add other CMORization tools to this section if others are known to the community.