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

Where to find the correct frequency for ERA5 hourly variables? #1884

Open
SarahAlidoost opened this issue Oct 23, 2020 · 16 comments
Open

Where to find the correct frequency for ERA5 hourly variables? #1884

SarahAlidoost opened this issue Oct 23, 2020 · 16 comments

Comments

@SarahAlidoost
Copy link
Contributor

The default drs of native6 contains the parameter {frequency}. The drs is used for ERA5 data in recipe_era5.yml.
Where to find the correct frequency for hourly variables in the recipe?

@Peter9192
Copy link
Contributor

Related to: ESMValGroup/ESMValCore#645 where this was first introduced.

@Peter9192
Copy link
Contributor

I think the DRS was updated in #645, but the recipe was not updated then. So the recipe still contains the old DRS settings (using ERA5_freq and ERA5_name.

@SarahAlidoost
Copy link
Contributor Author

Related to: ESMValGroup/ESMValCore#645 where this was first introduced.

@Peter9192 thank you for the link. Let me explain the issue better.

The default drs for native6 is: 'Tier{tier}/{dataset}/{latestversion}/{frequency}/{short_name}'. The {frequency} can be defined as one of the frequencies in cmip6_CV.

Also, I saw a comment about drs of era5 by @bouweandela here. However, esmvaltool does not accept this drs for the variables in the recipe_era5.yml; actually, all hourly variables should be in 1hrPt, whereas pr in 1hr and orog in fx. This does not make sense. Also, according to cmip6 tables, the variable rsdt has frequency 1hrCM. But esmvaltool expect it in 1hrPt. We can check this by running recipe_check_obs.yml.

@SarahAlidoost
Copy link
Contributor Author

I think the DRS was updated in #645, but the recipe was not updated then. So the recipe still contains the old DRS settings (using ERA5_freq and ERA5_name.

Agree that recipe_era5.yml needs several fixes. I made another issue.

@Peter9192
Copy link
Contributor

Okay, so if I understand it correctly: if you want to store the ERA5 data according to the default DRS, it is very unclear which values to use for the frequency tag. Right?

@bouweandela
Copy link
Member

The ESMValCore determines the frequency of a variable by looking it up in the CMOR table, based on the project, mip table, and variable name provided in the recipe. However, if this does not give the correct frequency, it can be overridden by specifying the frequency in the recipe.

@SarahAlidoost
Copy link
Contributor Author

Okay, so if I understand it correctly: if you want to store the ERA5 data according to the default DRS, it is very unclear which values to use for the frequency tag. Right?

Right.

@bouweandela
Copy link
Member

all hourly variables should be in 1hrPt, whereas pr in 1hr

I think that would only be the case for variables that are sampled at specific points in time, not for accumulated ones like precipication and radiation, these are accumulated values over the past hour in ERA5 and we convert them to a flux by dividing by the time, so these are averaged over the hour so they should probably have frequency 1hr (without Pt).

@SarahAlidoost
Copy link
Contributor Author

The ESMValCore determines the frequency of a variable by looking it up in the CMOR table, based on the project, mip table, and variable name provided in the recipe. However, if this does not give the correct frequency, it can be overridden by specifying the frequency in the recipe.

Thanks. So, we need to add the frequency to the dataset section in the recipe for each diagnostic, e.g. for hourly:

additional_datasets:
    - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, frequency: 1hr, start_year: 1990, end_year: 1991}

Is it right?

@bouweandela
Copy link
Member

bouweandela commented Oct 28, 2020

Only if what is looked up from the CMOR table does not provide the correct frequency, but I think this is likely, because there are very few hourly variables in CMIP6, so then it will try to look it up in another mip table, but still try to keep the frequency from the mip and things may go wrong.

@SarahAlidoost
Copy link
Contributor Author

all hourly variables should be in 1hrPt, whereas pr in 1hr

I think that would only be the case for variables that are sampled at specific points in time, not for accumulated ones like precipication and radiation, these are accumulated values over the past hour in ERA5 and we convert them to a flux by dividing by the time, so these are averaged over the hour so they should probably have frequency 1hr (without Pt).

I agree. However, esmvaltool does not accept them in 1hr by default. When I run recipe_check_obs.yml., it says that all variables should be in 1hrPt except the variable pr.

@bouweandela
Copy link
Member

You might need to specify the frequency in that recipe too.

@bouweandela
Copy link
Member

It might look more intuitive to specify the frequency in the variable section in the recipe, but with the dataset should work fine too.

@Peter9192
Copy link
Contributor

Peter9192 commented Oct 29, 2020

all hourly variables should be in 1hrPt, whereas pr in 1hr

Just a note to avoid confusion: when you say 'should be', I think you mean 'ESMValTool seems to expect this, based on the error messages produced by recipe_check_obs', right? Whereas I would use 'should be' to state what I think ESMValTool should do, based on my own reasoning, regardless of what ESMValTool actually does...

I agree that specifying it in the recipe would be the best solution. But then we still need to figure out what 'should be' the right frequency, based on the meaning of 1hrPt etc.

@bouweandela
Copy link
Member

I think you mean 'ESMValTool seems to expect this, based on the error messages produced by recipe_check_obs', right?

No

Whereas I would use 'should be' to state what I think ESMValTool should do, based on my own reasoning, regardless of what ESMValTool actually does...

Yes, me too, but you need to tell ESMValTool what the correct frequency is, because it cannot magically know this.

@Peter9192
Copy link
Contributor

I think you mean 'ESMValTool seems to expect this, based on the error messages produced by recipe_check_obs', right?

No

I was quoting @SarahAlidoost... trying to make sure we're all on the same page ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants