Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cmorizer for HALOE #1581

Merged
merged 8 commits into from Mar 16, 2020
Merged

Cmorizer for HALOE #1581

merged 8 commits into from Mar 16, 2020

Conversation

mattiarighi
Copy link
Contributor

@mattiarighi mattiarighi commented Mar 11, 2020

Before you start, read CONTRIBUTING.md and the guide for diagnostic developers.

Please discuss your idea with the development team before getting started, to avoid disappointment later. The way to do this is to open a new issue on GitHub. If you are planning to modify an existing functionality, please discuss it with the original author(s) by tagging them in the issue.


Tasks

  • Create an issue to discuss what you are going to do, if you haven't done so already (and add the link at the bottom)
  • Give this pull request a descriptive title that can be used as a one line summary in a changelog
  • Make sure your code is composed of functions of no more than 50 lines and uses meaningful names for variables
  • Circle/CI tests pass. Status can be seen below your pull request. If the tests are failing, click the link to find out why.
  • Preferably Codacy code quality checks pass, however a few remaining hard to solve Codacy issues are still acceptable. Status can be seen below your pull request. If there is an error, click the link to find out why. If you suspect Codacy may be wrong, please ask by commenting.
  • Please use yamllint to check that your YAML files do not contain mistakes
  • (Only if really necessary) Add any additional dependencies needed for the diagnostic script to setup.py, esmvaltool/install/R/r_requirements.txt or esmvaltool/install/Julia/julia_requirements.txt (depending on the language of your script) and also to meta.yaml for conda dependencies (includes Python and others, but not R/Julia)
  • If new dependencies are introduced, check that the license is compatible with Apache2.0

New recipe/diagnostic

  • Add documentation for the recipe to the doc/sphinx/source/recipes folder and add a new entry to index.rst
  • Add provenance information

Modified recipe/diagnostic

  • Update documentation for the recipe to the doc/sphinx/source/recipes folder
  • Update provenance information if needed
  • Assign the author(s) of the affected recipe(s) as reviewer(s)

New data reformatting script

  • Test the CMORized data using recipes/example/recipe_check_obs.yml, to make sure the CMOR checks pass without errors
  • Add the new dataset to the table in the documentation
  • Tag @mattiarighi in this pull request, so that the new dataset can be added to the OBS data pool at DKRZ and synchronized with CEDA-Jasmin

Modified data reformatting script

  • Test the CMORized data using recipes/example/recipe_check_obs.yml, to make sure the CMOR checks pass without errors
  • Tag @mattiarighi in this pull request, so that the updated dataset can be added to the OBS data pool at DKRZ and synchronized with CEDA-Jasmin

If you need help with any of the tasks above, please do not hesitate to ask by commenting in the issue or pull request.


Requires ESMValGroup/ESMValCore#567

Copy link
Contributor

@hb326 hb326 left a comment

Looks good to me. How difficult would it be to add the other variables? Would that just be an extension of the code?

hb326
hb326 approved these changes Mar 11, 2020
@mattiarighi
Copy link
Contributor Author

mattiarighi commented Mar 12, 2020

Just extend the arrays VAR and NAME accordingly.

@hb326
Copy link
Contributor

hb326 commented Mar 12, 2020

Just extend the arrays VAR and NAME accordingly.

Thanks!! You are the best!

@mattiarighi
Copy link
Contributor Author

mattiarighi commented Mar 12, 2020

I think a new release of ESMValCore is required for the tests to pass, due to the new custom table introduced in ESMValGroup/ESMValCore#567.

@mattiarighi mattiarighi requested review from hb326 and axel-lauer Mar 13, 2020
if (VAR(vv).eq."hus") then
xx = xx * 18.015 / 28.97 ; [mol/mol] --> [kg/kg]
xx = xx / (1. + xx)
end if
Copy link
Contributor Author

@mattiarighi mattiarighi Mar 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@axel-lauer @hb326
Can you please cross-check the unit conversion?
See here for example.

Copy link
Contributor

@axel-lauer axel-lauer Mar 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks correct. E.g. for CMIP6, it is explicitely in the CMOR tables that hus is given in kg (H2O) per kg (moist air):
"comment": "Specific humidity is the mass fraction of water vapor in (moist) air."
so the conversion of the HALOE data from m3/m3 to kg(H2O)/kg(moist air) as done here is correct.

Copy link
Contributor Author

@mattiarighi mattiarighi Mar 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Please approve so I can merge.

Copy link
Contributor

@axel-lauer axel-lauer left a comment

Looks all fine. Double-checked conversion of variable ‚hus’, looks correct.

@mattiarighi mattiarighi merged commit 959318d into master Mar 16, 2020
4 checks passed
@mattiarighi mattiarighi deleted the cmorizer_haloe branch Mar 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants