From 06fc583fae20735214a731fa656955c99a570eb2 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Thu, 7 Nov 2019 14:51:09 +0100 Subject: [PATCH 01/21] ERA5 CMORization by recipe --- esmvaltool/recipes/cmorizers/recipe_era5.yml | 91 ++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 esmvaltool/recipes/cmorizers/recipe_era5.yml diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml new file mode 100644 index 0000000000..42ce6f6621 --- /dev/null +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -0,0 +1,91 @@ +# ESMValTool +# recipe_era5.yml +--- +documentation: + description: CMORize ERA5 data + + authors: + - andela_bouwe + + references: + - acknow_project + + projects: + - ewatercycle + +datasets: + - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1990, end_year: 1990} + +preprocessors: + daily_mean: + daily_statistics: + operator: mean + daily_sum: + daily_statistics: + operator: sum + daily_min: + daily_statistics: + operator: min + daily_max: + daily_statistics: + operator: max + + +diagnostics: + + hourly: + description: CMORize hourly ERA5 data + scripts: null + variables: + pr: + mip: E1hr + uas: + mip: E1hr + vas: + mip: E1hr + tas: + mip: E1hr + tasmin: + mip: E1hr + tasmax: + mip: E1hr + + daily: + description: Create daily ERA5 data + scripts: null + variables: + pr: + mip: E1hr + preprocessor: daily_sum + uas: + mip: E1hr + preprocessor: daily_mean + vas: + mip: E1hr + preprocessor: daily_mean + tas: + mip: E1hr + preprocessor: daily_mean + tasmin: + mip: E1hr + preprocessor: daily_min + tasmax: + mip: E1hr + preprocessor: daily_max + + monthly: + description: CMORize monthly ERA5 data + scripts: null + variables: + pr: + mip: Amon + uas: + mip: Amon + vas: + mip: Amon + tas: + mip: Amon + tasmin: + mip: Amon + tasmax: + mip: Amon From 65f4d05be71fbf557c7544a9af0789a8a8fa8517 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Wed, 8 Jan 2020 13:19:07 +0100 Subject: [PATCH 02/21] remove sum operator --- esmvaltool/recipes/cmorizers/recipe_era5.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 42ce6f6621..b9f1c95a19 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -20,9 +20,6 @@ preprocessors: daily_mean: daily_statistics: operator: mean - daily_sum: - daily_statistics: - operator: sum daily_min: daily_statistics: operator: min @@ -56,7 +53,7 @@ diagnostics: variables: pr: mip: E1hr - preprocessor: daily_sum + preprocessor: daily_mean uas: mip: E1hr preprocessor: daily_mean From 908cc85b36ca000fd29fb5ad6a99e8054a1286e0 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Wed, 22 Jan 2020 09:45:55 +0100 Subject: [PATCH 03/21] "Add documentation" --- doc/sphinx/source/esmvaldiag/observations.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/sphinx/source/esmvaldiag/observations.rst b/doc/sphinx/source/esmvaldiag/observations.rst index fc9612d5c9..6b1ee7a750 100644 --- a/doc/sphinx/source/esmvaldiag/observations.rst +++ b/doc/sphinx/source/esmvaldiag/observations.rst @@ -18,7 +18,15 @@ data set for the use in ESMValTool. | `6. Naming convention of the observational data files`_ | `7. Test the cmorized dataset`_ - +.. note:: + **CMORization as a fix.** As of early 2020, we've started implementing cmorization as + *fixes*. As compared to the workflow described below, this has the advantage that + the user does not need to store a duplicate (CMORized) copy of the data. Instead, the + CMORization is performed 'on the fly' when running a recipe. **ERA5** is the first dataset + for which this 'CMORization on the fly' is supported. For more information about fixes, + see: :ref:`fixing data ` + +` 1. Check if your variable is CMOR standard ========================================== From 4cec24e94f5671dd295c84d28a7e1eab50204577 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Wed, 22 Jan 2020 17:33:19 +0100 Subject: [PATCH 04/21] update era5 cmorizer recipe --- esmvaltool/recipes/cmorizers/recipe_era5.yml | 201 ++++++++++++++++++- 1 file changed, 191 insertions(+), 10 deletions(-) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index b9f1c95a19..fb095b694c 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -6,6 +6,7 @@ documentation: authors: - andela_bouwe + - kalverla_peter references: - acknow_project @@ -27,48 +28,222 @@ preprocessors: daily_statistics: operator: max - diagnostics: - hourly: description: CMORize hourly ERA5 data scripts: null variables: - pr: - mip: E1hr + orog: + mip: fx + era5_name: orography + era5_freq: hourly uas: mip: E1hr + era5_name: 10m_u_component_of_wind + era5_freq: hourly vas: mip: E1hr + era5_name: 10m_v_component_of_wind + era5_freq: hourly + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature + era5_freq: hourly tas: mip: E1hr - tasmin: + era5_name: 2m_temperature + era5_freq: hourly + evspsbl: mip: E1hr + era5_name: evaporation + era5_freq: hourly tasmax: mip: E1hr + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: hourly + psl: + mip: E1hr + era5_name: mean_sea_level_pressure + era5_freq: hourly + rls: + mip: E1hr + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: hourly + tasmin: + mip: E1hr + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + evspsblpot: + mip: E1hr + era5_name: potential_evaporation + era5_freq: hourly + ptype: + mip: E1hr + era5_name: precipitation_type + era5_freq: hourly + mrro: + mip: E1hr + era5_name: runoff + era5_freq: hourly + ts: + mip: E1hr + era5_name: skin_temperature + era5_freq: hourly + prsn: + mip: E1hr + era5_name: snowfall + era5_freq: hourly + rss: + mip: E1hr + era5_name: surface_net_solar_radiation + era5_freq: hourly + ps: + mip: E1hr + era5_name: surface_pressure + era5_freq: hourly + rsds: + mip: E1hr + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + rlds: + mip: E1hr + era5_name: surface_thermal_radiation_downwards + era5_freq: hourly + tsn: + mip: E1hr + era5_name: temperature_of_snow_layer + era5_freq: hourly + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation + era5_freq: hourly + clt: + mip: E1hr + era5_name: total_cloud_cover + era5_freq: hourly + pr: + mip: E1hr + era5_name: total_precipitation + era5_freq: hourly daily: description: Create daily ERA5 data scripts: null variables: - pr: - mip: E1hr - preprocessor: daily_mean + orog: + mip: fx + era5_name: orography + era5_freq: hourly uas: mip: E1hr + era5_name: 10m_u_component_of_wind + era5_freq: hourly preprocessor: daily_mean vas: mip: E1hr + era5_name: 10m_v_component_of_wind + era5_freq: hourly + preprocessor: daily_mean + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature + era5_freq: hourly preprocessor: daily_mean tas: mip: E1hr + era5_name: 2m_temperature + era5_freq: hourly preprocessor: daily_mean - tasmin: + evspsbl: mip: E1hr - preprocessor: daily_min + era5_name: evaporation + era5_freq: hourly + preprocessor: daily_mean tasmax: mip: E1hr + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: hourly preprocessor: daily_max + psl: + mip: E1hr + era5_name: mean_sea_level_pressure + era5_freq: hourly + preprocessor: daily_mean + rls: + mip: E1hr + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: hourly + preprocessor: daily_mean + tasmin: + mip: E1hr + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + preprocessor: daily_min + evspsblpot: + mip: E1hr + era5_name: potential_evaporation + era5_freq: hourly + preprocessor: daily_mean + ptype: + mip: E1hr + era5_name: precipitation_type + era5_freq: hourly + preprocessor: daily_mean # what to do? Mode? + mrro: + mip: E1hr + era5_name: runoff + era5_freq: hourly + preprocessor: daily_mean + ts: + mip: E1hr + era5_name: skin_temperature + era5_freq: hourly + preprocessor: daily_mean + prsn: + mip: E1hr + era5_name: snowfall + era5_freq: hourly + preprocessor: daily_mean + rss: + mip: E1hr + era5_name: surface_net_solar_radiation + era5_freq: hourly + preprocessor: daily_mean + ps: + mip: E1hr + era5_name: surface_pressure + era5_freq: hourly + preprocessor: daily_mean + rsds: + mip: E1hr + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + rlds: + mip: E1hr + era5_name: surface_thermal_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + tsn: + mip: E1hr + era5_name: temperature_of_snow_layer + era5_freq: hourly + preprocessor: daily_mean + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation + era5_freq: hourly + preprocessor: daily_mean + clt: + mip: E1hr + era5_name: total_cloud_cover + era5_freq: hourly + preprocessor: daily_mean + pr: + mip: E1hr + era5_name: total_precipitation + era5_freq: hourly + preprocessor: daily_mean monthly: description: CMORize monthly ERA5 data @@ -86,3 +261,9 @@ diagnostics: mip: Amon tasmax: mip: Amon + + + + + + From 2101f5adaf2738a35334170a76bc27be4877e58a Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Wed, 29 Jan 2020 11:32:30 +0100 Subject: [PATCH 05/21] Fix documentation build --- doc/sphinx/source/esmvaldiag/observations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sphinx/source/esmvaldiag/observations.rst b/doc/sphinx/source/esmvaldiag/observations.rst index 1265efe28e..a829519ff3 100644 --- a/doc/sphinx/source/esmvaldiag/observations.rst +++ b/doc/sphinx/source/esmvaldiag/observations.rst @@ -26,7 +26,7 @@ data set for the use in ESMValTool. for which this 'CMORization on the fly' is supported. For more information about fixes, see: :ref:`fixing data ` -` + 1. Check if your variable is CMOR standard ========================================== From 3d9b118fcc9c390334604d0b0b011bbf490c47c9 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Wed, 29 Jan 2020 11:47:36 +0100 Subject: [PATCH 06/21] Sort variables alphabetically and extend monthly diagnostic --- esmvaltool/recipes/cmorizers/recipe_era5.yml | 281 ++++++++++++------- 1 file changed, 180 insertions(+), 101 deletions(-) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index fb095b694c..5a0e8e46e0 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -33,155 +33,145 @@ diagnostics: description: CMORize hourly ERA5 data scripts: null variables: - orog: - mip: fx - era5_name: orography - era5_freq: hourly - uas: + clt: mip: E1hr - era5_name: 10m_u_component_of_wind + era5_name: total_cloud_cover era5_freq: hourly - vas: + evspsbl: mip: E1hr - era5_name: 10m_v_component_of_wind + era5_name: evaporation era5_freq: hourly - tdps: + evspsblpot: mip: E1hr - era5_name: 2m_dewpoint_temperature + era5_name: potential_evaporation era5_freq: hourly - tas: + mrro: mip: E1hr - era5_name: 2m_temperature + era5_name: runoff era5_freq: hourly - evspsbl: + orog: + mip: fx + era5_name: orography + era5_freq: hourly + pr: mip: E1hr - era5_name: evaporation + era5_name: total_precipitation era5_freq: hourly - tasmax: + prsn: mip: E1hr - era5_name: maximum_2m_temperature_since_previous_post_processing + era5_name: snowfall era5_freq: hourly psl: mip: E1hr era5_name: mean_sea_level_pressure era5_freq: hourly - rls: - mip: E1hr - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: hourly - tasmin: - mip: E1hr - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: hourly - evspsblpot: + ps: mip: E1hr - era5_name: potential_evaporation + era5_name: surface_pressure era5_freq: hourly ptype: mip: E1hr era5_name: precipitation_type era5_freq: hourly - mrro: + rlds: mip: E1hr - era5_name: runoff + era5_name: surface_thermal_radiation_downwards era5_freq: hourly - ts: + rls: mip: E1hr - era5_name: skin_temperature + era5_name: mean_surface_net_long_wave_radiation_flux era5_freq: hourly - prsn: + rsds: mip: E1hr - era5_name: snowfall + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation era5_freq: hourly rss: mip: E1hr era5_name: surface_net_solar_radiation era5_freq: hourly - ps: + tas: mip: E1hr - era5_name: surface_pressure + era5_name: 2m_temperature era5_freq: hourly - rsds: + tasmax: mip: E1hr - era5_name: surface_solar_radiation_downwards + era5_name: maximum_2m_temperature_since_previous_post_processing era5_freq: hourly - rlds: + tasmin: mip: E1hr - era5_name: surface_thermal_radiation_downwards + era5_name: minimum_2m_temperature_since_previous_post_processing era5_freq: hourly - tsn: + tdps: mip: E1hr - era5_name: temperature_of_snow_layer + era5_name: 2m_dewpoint_temperature era5_freq: hourly - rsdt: + ts: mip: E1hr - era5_name: toa_incident_solar_radiation + era5_name: skin_temperature era5_freq: hourly - clt: + tsn: mip: E1hr - era5_name: total_cloud_cover + era5_name: temperature_of_snow_layer era5_freq: hourly - pr: + uas: mip: E1hr - era5_name: total_precipitation + era5_name: 10m_u_component_of_wind + era5_freq: hourly + vas: + mip: E1hr + era5_name: 10m_v_component_of_wind era5_freq: hourly daily: description: Create daily ERA5 data scripts: null variables: - orog: - mip: fx - era5_name: orography - era5_freq: hourly - uas: - mip: E1hr - era5_name: 10m_u_component_of_wind - era5_freq: hourly - preprocessor: daily_mean - vas: + clt: mip: E1hr - era5_name: 10m_v_component_of_wind + era5_name: total_cloud_cover era5_freq: hourly preprocessor: daily_mean - tdps: + evspsbl: mip: E1hr - era5_name: 2m_dewpoint_temperature + era5_name: evaporation era5_freq: hourly preprocessor: daily_mean - tas: + evspsblpot: mip: E1hr - era5_name: 2m_temperature + era5_name: potential_evaporation era5_freq: hourly preprocessor: daily_mean - evspsbl: + mrro: mip: E1hr - era5_name: evaporation + era5_name: runoff era5_freq: hourly preprocessor: daily_mean - tasmax: - mip: E1hr - era5_name: maximum_2m_temperature_since_previous_post_processing + orog: + mip: fx + era5_name: orography era5_freq: hourly - preprocessor: daily_max - psl: + pr: mip: E1hr - era5_name: mean_sea_level_pressure + era5_name: total_precipitation era5_freq: hourly preprocessor: daily_mean - rls: + prsn: mip: E1hr - era5_name: mean_surface_net_long_wave_radiation_flux + era5_name: snowfall era5_freq: hourly preprocessor: daily_mean - tasmin: + ps: mip: E1hr - era5_name: minimum_2m_temperature_since_previous_post_processing + era5_name: surface_pressure era5_freq: hourly - preprocessor: daily_min - evspsblpot: + preprocessor: daily_mean + psl: mip: E1hr - era5_name: potential_evaporation + era5_name: mean_sea_level_pressure era5_freq: hourly preprocessor: daily_mean ptype: @@ -189,19 +179,24 @@ diagnostics: era5_name: precipitation_type era5_freq: hourly preprocessor: daily_mean # what to do? Mode? - mrro: + rlds: mip: E1hr - era5_name: runoff + era5_name: surface_thermal_radiation_downwards era5_freq: hourly preprocessor: daily_mean - ts: + rls: mip: E1hr - era5_name: skin_temperature + era5_name: mean_surface_net_long_wave_radiation_flux era5_freq: hourly preprocessor: daily_mean - prsn: + rsds: mip: E1hr - era5_name: snowfall + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation era5_freq: hourly preprocessor: daily_mean rss: @@ -209,39 +204,44 @@ diagnostics: era5_name: surface_net_solar_radiation era5_freq: hourly preprocessor: daily_mean - ps: + tas: mip: E1hr - era5_name: surface_pressure + era5_name: 2m_temperature era5_freq: hourly preprocessor: daily_mean - rsds: + tasmax: mip: E1hr - era5_name: surface_solar_radiation_downwards + era5_name: maximum_2m_temperature_since_previous_post_processing era5_freq: hourly - preprocessor: daily_mean - rlds: + preprocessor: daily_max + tasmin: mip: E1hr - era5_name: surface_thermal_radiation_downwards + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + preprocessor: daily_min + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature era5_freq: hourly preprocessor: daily_mean - tsn: + ts: mip: E1hr - era5_name: temperature_of_snow_layer + era5_name: skin_temperature era5_freq: hourly preprocessor: daily_mean - rsdt: + tsn: mip: E1hr - era5_name: toa_incident_solar_radiation + era5_name: temperature_of_snow_layer era5_freq: hourly preprocessor: daily_mean - clt: + uas: mip: E1hr - era5_name: total_cloud_cover + era5_name: 10m_u_component_of_wind era5_freq: hourly preprocessor: daily_mean - pr: + vas: mip: E1hr - era5_name: total_precipitation + era5_name: 10m_v_component_of_wind era5_freq: hourly preprocessor: daily_mean @@ -249,19 +249,98 @@ diagnostics: description: CMORize monthly ERA5 data scripts: null variables: + clt: + mip: Amon + era5_name: total_cloud_cover + era5_freq: monthly + evspsbl: + mip: Amon + era5_name: evaporation + era5_freq: monthly + evspsblpot: + mip: Amon + era5_name: potential_evaporation + era5_freq: monthly + mrro: + mip: Amon + era5_name: runoff + era5_freq: monthly + orog: + mip: Amon + era5_name: orography + era5_freq: monthly pr: mip: Amon - uas: + era5_name: total_precipitation + era5_freq: monthly + prsn: mip: Amon - vas: + era5_name: snowfall + era5_freq: monthly + psl: + mip: Amon + era5_name: mean_sea_level_pressure + era5_freq: monthly + ps: + mip: Amon + era5_name: surface_pressure + era5_freq: monthly + ptype: + mip: Amon + era5_name: precipitation_type + era5_freq: monthly + rlds: + mip: Amon + era5_name: surface_thermal_radiation_downwards + era5_freq: monthly + rls: + mip: Amon + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: monthly + rsds: + mip: Amon + era5_name: surface_solar_radiation_downwards + era5_freq: monthly + rsdt: + mip: Amon + era5_name: toa_incident_solar_radiation + era5_freq: monthly + rss: mip: Amon + era5_name: surface_net_solar_radiation + era5_freq: monthly tas: mip: Amon + era5_name: 2m_temperature + era5_freq: monthly + tasmax: + mip: Amon + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: monthly tasmin: mip: Amon - tasmax: + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: monthly + tdps: mip: Amon - + era5_name: 2m_dewpoint_temperature + era5_freq: monthly + ts: + mip: Amon + era5_name: skin_temperature + era5_freq: monthly + tsn: + mip: Amon + era5_name: temperature_of_snow_layer + era5_freq: monthly + uas: + mip: Amon + era5_name: 10m_u_component_of_wind + era5_freq: monthly + vas: + mip: Amon + era5_name: 10m_v_component_of_wind + era5_freq: monthly From 6fdda20bc1ade954b2e576888d0ccfff5e43bbfc Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Fri, 31 Jan 2020 12:00:49 +0100 Subject: [PATCH 07/21] Add renaming diagnostic --- esmvaltool/diag_scripts/cmorizers/era5.py | 23 + esmvaltool/recipes/cmorizers/recipe_era5.yml | 603 ++++--- .../recipes/examples/recipe_check_obs.yml | 1484 ++++++++--------- 3 files changed, 1065 insertions(+), 1045 deletions(-) create mode 100644 esmvaltool/diag_scripts/cmorizers/era5.py diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py new file mode 100644 index 0000000000..f5c06aa76d --- /dev/null +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -0,0 +1,23 @@ +"""native6 diagnostic.""" + +import os +import shutil + +from esmvaltool.diag_scripts.shared import (run_diagnostic, + get_diagnostic_filename) + + +def main(cfg): + """Rename preprocessed native6 file.""" + fixed_files = cfg['input_data'] + for file in fixed_files: + basename, _ext = os.path.splitext(os.path.basename(file)) + basename = basename.replace('native', 'OBS') + outfile = get_diagnostic_filename(basename, cfg) + shutil.move(file, outfile) + + +if __name__ == '__main__': + + with run_diagnostic() as config: + main(config) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 5a0e8e46e0..4a9e336b2e 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -31,316 +31,313 @@ preprocessors: diagnostics: hourly: description: CMORize hourly ERA5 data - scripts: null + scripts: + script: + script: cmorizers/era5.py variables: - clt: - mip: E1hr - era5_name: total_cloud_cover - era5_freq: hourly - evspsbl: - mip: E1hr - era5_name: evaporation - era5_freq: hourly - evspsblpot: - mip: E1hr - era5_name: potential_evaporation - era5_freq: hourly - mrro: - mip: E1hr - era5_name: runoff - era5_freq: hourly - orog: - mip: fx - era5_name: orography - era5_freq: hourly +# clt: +# mip: E1hr +# era5_name: total_cloud_cover +# era5_freq: hourly +# evspsbl: +# mip: E1hr +# era5_name: evaporation +# era5_freq: hourly +# evspsblpot: +# mip: E1hr +# era5_name: potential_evaporation +# era5_freq: hourly +# mrro: +# mip: E1hr +# era5_name: runoff +# era5_freq: hourly +# orog: +# mip: fx +# era5_name: orography +# era5_freq: hourly pr: mip: E1hr era5_name: total_precipitation era5_freq: hourly - prsn: - mip: E1hr - era5_name: snowfall - era5_freq: hourly - psl: - mip: E1hr - era5_name: mean_sea_level_pressure - era5_freq: hourly - ps: - mip: E1hr - era5_name: surface_pressure - era5_freq: hourly - ptype: - mip: E1hr - era5_name: precipitation_type - era5_freq: hourly - rlds: - mip: E1hr - era5_name: surface_thermal_radiation_downwards - era5_freq: hourly - rls: - mip: E1hr - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: hourly - rsds: - mip: E1hr - era5_name: surface_solar_radiation_downwards - era5_freq: hourly - rsdt: - mip: E1hr - era5_name: toa_incident_solar_radiation - era5_freq: hourly - rss: - mip: E1hr - era5_name: surface_net_solar_radiation - era5_freq: hourly - tas: - mip: E1hr - era5_name: 2m_temperature - era5_freq: hourly - tasmax: - mip: E1hr - era5_name: maximum_2m_temperature_since_previous_post_processing - era5_freq: hourly - tasmin: - mip: E1hr - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: hourly - tdps: - mip: E1hr - era5_name: 2m_dewpoint_temperature - era5_freq: hourly - ts: - mip: E1hr - era5_name: skin_temperature - era5_freq: hourly - tsn: - mip: E1hr - era5_name: temperature_of_snow_layer - era5_freq: hourly - uas: - mip: E1hr - era5_name: 10m_u_component_of_wind - era5_freq: hourly - vas: - mip: E1hr - era5_name: 10m_v_component_of_wind - era5_freq: hourly +# prsn: +# mip: E1hr +# era5_name: snowfall +# era5_freq: hourly +# psl: +# mip: E1hr +# era5_name: mean_sea_level_pressure +# era5_freq: hourly +# ps: +# mip: E1hr +# era5_name: surface_pressure +# era5_freq: hourly +# ptype: +# mip: E1hr +# era5_name: precipitation_type +# era5_freq: hourly +# rlds: +# mip: E1hr +# era5_name: surface_thermal_radiation_downwards +# era5_freq: hourly +# rls: +# mip: E1hr +# era5_name: mean_surface_net_long_wave_radiation_flux +# era5_freq: hourly +# rsds: +# mip: E1hr +# era5_name: surface_solar_radiation_downwards +# era5_freq: hourly +# rsdt: +# mip: E1hr +# era5_name: toa_incident_solar_radiation +# era5_freq: hourly +# rss: +# mip: E1hr +# era5_name: surface_net_solar_radiation +# era5_freq: hourly +# tas: +# mip: E1hr +# era5_name: 2m_temperature +# era5_freq: hourly +# tasmax: +# mip: E1hr +# era5_name: maximum_2m_temperature_since_previous_post_processing +# era5_freq: hourly +# tasmin: +# mip: E1hr +# era5_name: minimum_2m_temperature_since_previous_post_processing +# era5_freq: hourly +# tdps: +# mip: E1hr +# era5_name: 2m_dewpoint_temperature +# era5_freq: hourly +# ts: +# mip: E1hr +# era5_name: skin_temperature +# era5_freq: hourly +# tsn: +# mip: E1hr +# era5_name: temperature_of_snow_layer +# era5_freq: hourly +# uas: +# mip: E1hr +# era5_name: 10m_u_component_of_wind +# era5_freq: hourly +# vas: +# mip: E1hr +# era5_name: 10m_v_component_of_wind +# era5_freq: hourly - daily: - description: Create daily ERA5 data - scripts: null - variables: - clt: - mip: E1hr - era5_name: total_cloud_cover - era5_freq: hourly - preprocessor: daily_mean - evspsbl: - mip: E1hr - era5_name: evaporation - era5_freq: hourly - preprocessor: daily_mean - evspsblpot: - mip: E1hr - era5_name: potential_evaporation - era5_freq: hourly - preprocessor: daily_mean - mrro: - mip: E1hr - era5_name: runoff - era5_freq: hourly - preprocessor: daily_mean - orog: - mip: fx - era5_name: orography - era5_freq: hourly - pr: - mip: E1hr - era5_name: total_precipitation - era5_freq: hourly - preprocessor: daily_mean - prsn: - mip: E1hr - era5_name: snowfall - era5_freq: hourly - preprocessor: daily_mean - ps: - mip: E1hr - era5_name: surface_pressure - era5_freq: hourly - preprocessor: daily_mean - psl: - mip: E1hr - era5_name: mean_sea_level_pressure - era5_freq: hourly - preprocessor: daily_mean - ptype: - mip: E1hr - era5_name: precipitation_type - era5_freq: hourly - preprocessor: daily_mean # what to do? Mode? - rlds: - mip: E1hr - era5_name: surface_thermal_radiation_downwards - era5_freq: hourly - preprocessor: daily_mean - rls: - mip: E1hr - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: hourly - preprocessor: daily_mean - rsds: - mip: E1hr - era5_name: surface_solar_radiation_downwards - era5_freq: hourly - preprocessor: daily_mean - rsdt: - mip: E1hr - era5_name: toa_incident_solar_radiation - era5_freq: hourly - preprocessor: daily_mean - rss: - mip: E1hr - era5_name: surface_net_solar_radiation - era5_freq: hourly - preprocessor: daily_mean - tas: - mip: E1hr - era5_name: 2m_temperature - era5_freq: hourly - preprocessor: daily_mean - tasmax: - mip: E1hr - era5_name: maximum_2m_temperature_since_previous_post_processing - era5_freq: hourly - preprocessor: daily_max - tasmin: - mip: E1hr - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: hourly - preprocessor: daily_min - tdps: - mip: E1hr - era5_name: 2m_dewpoint_temperature - era5_freq: hourly - preprocessor: daily_mean - ts: - mip: E1hr - era5_name: skin_temperature - era5_freq: hourly - preprocessor: daily_mean - tsn: - mip: E1hr - era5_name: temperature_of_snow_layer - era5_freq: hourly - preprocessor: daily_mean - uas: - mip: E1hr - era5_name: 10m_u_component_of_wind - era5_freq: hourly - preprocessor: daily_mean - vas: - mip: E1hr - era5_name: 10m_v_component_of_wind - era5_freq: hourly - preprocessor: daily_mean +# daily: +# description: Create daily ERA5 data +# scripts: cmorizers/era5.py +# variables: +# clt: +# mip: E1hr +# era5_name: total_cloud_cover +# era5_freq: hourly +# preprocessor: daily_mean +# evspsbl: +# mip: E1hr +# era5_name: evaporation +# era5_freq: hourly +# preprocessor: daily_mean +# evspsblpot: +# mip: E1hr +# era5_name: potential_evaporation +# era5_freq: hourly +# preprocessor: daily_mean +# mrro: +# mip: E1hr +# era5_name: runoff +# era5_freq: hourly +# preprocessor: daily_mean +# orog: +# mip: fx +# era5_name: orography +# era5_freq: hourly +# pr: +# mip: E1hr +# era5_name: total_precipitation +# era5_freq: hourly +# preprocessor: daily_mean +# prsn: +# mip: E1hr +# era5_name: snowfall +# era5_freq: hourly +# preprocessor: daily_mean +# ps: +# mip: E1hr +# era5_name: surface_pressure +# era5_freq: hourly +# preprocessor: daily_mean +# psl: +# mip: E1hr +# era5_name: mean_sea_level_pressure +# era5_freq: hourly +# preprocessor: daily_mean +# rlds: +# mip: E1hr +# era5_name: surface_thermal_radiation_downwards +# era5_freq: hourly +# preprocessor: daily_mean +# rls: +# mip: E1hr +# era5_name: mean_surface_net_long_wave_radiation_flux +# era5_freq: hourly +# preprocessor: daily_mean +# rsds: +# mip: E1hr +# era5_name: surface_solar_radiation_downwards +# era5_freq: hourly +# preprocessor: daily_mean +# rsdt: +# mip: E1hr +# era5_name: toa_incident_solar_radiation +# era5_freq: hourly +# preprocessor: daily_mean +# rss: +# mip: E1hr +# era5_name: surface_net_solar_radiation +# era5_freq: hourly +# preprocessor: daily_mean +# tas: +# mip: E1hr +# era5_name: 2m_temperature +# era5_freq: hourly +# preprocessor: daily_mean +# tasmax: +# mip: E1hr +# era5_name: maximum_2m_temperature_since_previous_post_processing +# era5_freq: hourly +# preprocessor: daily_max +# tasmin: +# mip: E1hr +# era5_name: minimum_2m_temperature_since_previous_post_processing +# era5_freq: hourly +# preprocessor: daily_min +# tdps: +# mip: E1hr +# era5_name: 2m_dewpoint_temperature +# era5_freq: hourly +# preprocessor: daily_mean +# ts: +# mip: E1hr +# era5_name: skin_temperature +# era5_freq: hourly +# preprocessor: daily_mean +# tsn: +# mip: E1hr +# era5_name: temperature_of_snow_layer +# era5_freq: hourly +# preprocessor: daily_mean +# uas: +# mip: E1hr +# era5_name: 10m_u_component_of_wind +# era5_freq: hourly +# preprocessor: daily_mean +# vas: +# mip: E1hr +# era5_name: 10m_v_component_of_wind +# era5_freq: hourly +# preprocessor: daily_mean - monthly: - description: CMORize monthly ERA5 data - scripts: null - variables: - clt: - mip: Amon - era5_name: total_cloud_cover - era5_freq: monthly - evspsbl: - mip: Amon - era5_name: evaporation - era5_freq: monthly - evspsblpot: - mip: Amon - era5_name: potential_evaporation - era5_freq: monthly - mrro: - mip: Amon - era5_name: runoff - era5_freq: monthly - orog: - mip: Amon - era5_name: orography - era5_freq: monthly - pr: - mip: Amon - era5_name: total_precipitation - era5_freq: monthly - prsn: - mip: Amon - era5_name: snowfall - era5_freq: monthly - psl: - mip: Amon - era5_name: mean_sea_level_pressure - era5_freq: monthly - ps: - mip: Amon - era5_name: surface_pressure - era5_freq: monthly - ptype: - mip: Amon - era5_name: precipitation_type - era5_freq: monthly - rlds: - mip: Amon - era5_name: surface_thermal_radiation_downwards - era5_freq: monthly - rls: - mip: Amon - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: monthly - rsds: - mip: Amon - era5_name: surface_solar_radiation_downwards - era5_freq: monthly - rsdt: - mip: Amon - era5_name: toa_incident_solar_radiation - era5_freq: monthly - rss: - mip: Amon - era5_name: surface_net_solar_radiation - era5_freq: monthly - tas: - mip: Amon - era5_name: 2m_temperature - era5_freq: monthly - tasmax: - mip: Amon - era5_name: maximum_2m_temperature_since_previous_post_processing - era5_freq: monthly - tasmin: - mip: Amon - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: monthly - tdps: - mip: Amon - era5_name: 2m_dewpoint_temperature - era5_freq: monthly - ts: - mip: Amon - era5_name: skin_temperature - era5_freq: monthly - tsn: - mip: Amon - era5_name: temperature_of_snow_layer - era5_freq: monthly - uas: - mip: Amon - era5_name: 10m_u_component_of_wind - era5_freq: monthly - vas: - mip: Amon - era5_name: 10m_v_component_of_wind - era5_freq: monthly +# monthly: +# description: CMORize monthly ERA5 data +# scripts: cmorizers/era5.py +# variables: +# clt: +# mip: Amon +# era5_name: total_cloud_cover +# era5_freq: monthly +# evspsbl: +# mip: Amon +# era5_name: evaporation +# era5_freq: monthly +# evspsblpot: +# mip: Amon +# era5_name: potential_evaporation +# era5_freq: monthly +# mrro: +# mip: Amon +# era5_name: runoff +# era5_freq: monthly +# orog: +# mip: Amon +# era5_name: orography +# era5_freq: monthly +# pr: +# mip: Amon +# era5_name: total_precipitation +# era5_freq: monthly +# prsn: +# mip: Amon +# era5_name: snowfall +# era5_freq: monthly +# psl: +# mip: Amon +# era5_name: mean_sea_level_pressure +# era5_freq: monthly +# ps: +# mip: Amon +# era5_name: surface_pressure +# era5_freq: monthly +# ptype: +# mip: Amon +# era5_name: precipitation_type +# era5_freq: monthly +# rlds: +# mip: Amon +# era5_name: surface_thermal_radiation_downwards +# era5_freq: monthly +# rls: +# mip: Amon +# era5_name: mean_surface_net_long_wave_radiation_flux +# era5_freq: monthly +# rsds: +# mip: Amon +# era5_name: surface_solar_radiation_downwards +# era5_freq: monthly +# rsdt: +# mip: Amon +# era5_name: toa_incident_solar_radiation +# era5_freq: monthly +# rss: +# mip: Amon +# era5_name: surface_net_solar_radiation +# era5_freq: monthly +# tas: +# mip: Amon +# era5_name: 2m_temperature +# era5_freq: monthly +# tasmax: +# mip: Amon +# era5_name: maximum_2m_temperature_since_previous_post_processing +# era5_freq: monthly +# tasmin: +# mip: Amon +# era5_name: minimum_2m_temperature_since_previous_post_processing +# era5_freq: monthly +# tdps: +# mip: Amon +# era5_name: 2m_dewpoint_temperature +# era5_freq: monthly +# ts: +# mip: Amon +# era5_name: skin_temperature +# era5_freq: monthly +# tsn: +# mip: Amon +# era5_name: temperature_of_snow_layer +# era5_freq: monthly +# uas: +# mip: Amon +# era5_name: 10m_u_component_of_wind +# era5_freq: monthly +# vas: +# mip: Amon +# era5_name: 10m_v_component_of_wind +# era5_freq: monthly diff --git a/esmvaltool/recipes/examples/recipe_check_obs.yml b/esmvaltool/recipes/examples/recipe_check_obs.yml index 1668421bdd..10845ecbcf 100644 --- a/esmvaltool/recipes/examples/recipe_check_obs.yml +++ b/esmvaltool/recipes/examples/recipe_check_obs.yml @@ -13,621 +13,621 @@ diagnostics: ### TIER 2 ################################################################## - CERES-EBAF: - description: CERES-EBAF check - variables: - rlut: - rlutcs: - rsut: - rsutcs: - additional_datasets: - - {dataset: CERES-EBAF, project: OBS, mip: Amon, tier: 2, - type: sat, version: Ed4.0, start_year: 2001, end_year: 2018} - scripts: null - - - CRU: - description: CRU check - variables: - tas: - pr: - additional_datasets: - - {dataset: CRU, project: OBS, mip: Amon, tier: 2, - type: reanaly, version: TS4.02, start_year: 1901, end_year: 2017} - scripts: null - - - Duveiller2018: - description: Duveiller2018 check - variables: - albDiffiTr13: - additional_datasets: - - {dataset: Duveiller2018, project: OBS, mip: Amon, tier: 2, - type: clim, version: v2018, start_year: 2010, end_year: 2010} - scripts: null - - - Eppley-VGPM-MODIS: - description: Eppley-VGPM-MODIS check - variables: - intpp: - additional_datasets: - - {dataset: Eppley-VGPM-MODIS, project: OBS, mip: Omon, tier: 2, - type: sat, version: R2018, start_year: 2003, end_year: 2018} - scripts: null - - - ESACCI-AEROSOL: - description: ESACCI-AEROSOL check - variables: - abs550aer: - od550aer: - od550aerStderr: - od550lt1aer: - od870aer: - od870aerStderr: - additional_datasets: - - {dataset: ESACCI-AEROSOL, project: OBS, mip: aero, tier: 2, - type: sat, version: SU-v4.21, start_year: 1997, end_year: 2011} - scripts: null - - - ESACCI-CLOUD: - description: ESACCI-CLOUD check - variables: - clivi: - clt: - cltStderr: - clwvi: - additional_datasets: - - {dataset: ESACCI-CLOUD, project: OBS, mip: Amon, tier: 2, - type: sat, version: AVHRR-fv3.0, start_year: 1982, end_year: 2016} - scripts: null - - - ESACCI-FIRE: - description: ESACCI-FIRE check - variables: - burntArea: - additional_datasets: - - {dataset: ESACCI-FIRE, project: OBS, mip: Lmon, tier: 2, - type: sat, version: L4-BA-MERIS-fv4.1, - start_year: 2005, end_year: 2011} - scripts: null - - - ESACCI-LANDCOVER: - description: ESACCI-LANDCOVER check - variables: - baresoilFrac: - cropFrac: - grassFrac: - shrubFrac: - treeFrac: - additional_datasets: - - {dataset: ESACCI-LANDCOVER, project: OBS, mip: Lmon, tier: 2, - type: sat, version: L4-LCCS-Map-300m-P5Y-aggregated-0.500000Deg, - start_year: 1998, end_year: 2012} - scripts: null - - - ESACCI-OC: - description: ESACCI-OC check - variables: - chl: - additional_datasets: - - {dataset: ESACCI-OC, project: OBS, mip: Omon, tier: 2, - type: sat, version: fv3.1, start_year: 1997, end_year: 2016} - scripts: null - - - ESACCI-OZONE: - description: ESACCI-OZONE check - variables: - toz: - additional_datasets: - - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - type: sat, version: L3, start_year: 1997, end_year: 2010} - tozStderr: - additional_datasets: - - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - type: sat, version: L3, start_year: 1997, end_year: 2010} - tro3prof: - additional_datasets: - - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - type: sat, version: L3, start_year: 2007, end_year: 2008} - tro3profStderr: - additional_datasets: - - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - type: sat, version: L3, start_year: 2007, end_year: 2008} - scripts: null - - - ESACCI-SOILMOISTURE: - description: ESACCI-SOILMOISTURE check - variables: - dos: - dosStderr: - sm: - smStderr: - additional_datasets: - - {dataset: ESACCI-SOILMOISTURE, project: OBS, mip: Lmon, tier: 2, - type: sat, version: L3S-SSMV-COMBINED-v4.2, - start_year: 2005, end_year: 2011} - scripts: null - - - ESACCI-SST: - description: ESACCI-SST check - variables: - ts: - tsStderr: - additional_datasets: - - {dataset: ESACCI-SST, project: OBS, mip: Amon, tier: 2, - type: sat, version: L4-GHRSST-SSTdepth-OSTIA-GLOB, - start_year: 1992, end_year: 2010} - scripts: null - - - GCP: - description: GCP check - variables: - nbp: - mip: Lmon - fgco2: - mip: Omon - additional_datasets: - - {dataset: GCP, project: OBS, frequency: yr, tier: 2, - type: reanaly, version: 2018, start_year: 1959, end_year: 2017} - scripts: null - - - GHCN: - description: GHCN check - variables: - pr: - additional_datasets: - - {dataset: GHCN, project: OBS, mip: Amon, tier: 2, - type: ground, version: 1, start_year: 1900, end_year: 2014} - scripts: null - - - HadCRUT3: - description: HadCRUT3 check - variables: - tasa: - additional_datasets: - - {dataset: HadCRUT3, project: OBS, mip: Amon, tier: 2, - type: ground, version: 1, start_year: 1850, end_year: 2013} - scripts: null - - - HadCRUT4: - description: HadCRUT4 check - variables: - tas: - tasa: - additional_datasets: - - {dataset: HadCRUT4, project: OBS, mip: Amon, tier: 2, - type: ground, version: 1, start_year: 1850, end_year: 2018} - scripts: null - - - HadISST: - description: HadISST check - variables: - ts: - mip: Amon - tos: - mip: Omon - sic: - mip: OImon - additional_datasets: - - {dataset: HadISST, project: OBS, tier: 2, - type: reanaly, version: 1, start_year: 1870, end_year: 2017} - scripts: null - - - Landschuetzer2016: - description: Landschuetzer2016 check - variables: - dpco2: - fgco2: - spco2: - additional_datasets: - - {dataset: Landschuetzer2016, project: OBS, mip: Omon, tier: 2, - type: clim, version: v2016, start_year: 1982, end_year: 2015} - scripts: null - - - NCEP: - description: NCEP check - variables: - hur: - mip: Amon - hus: - mip: Amon - pr_month: - short_name: pr - mip: Amon - pr_day: - short_name: pr - mip: day - rlut: - mip: day - ta: - mip: Amon - tas: - mip: Amon - ua_month: - short_name: ua - mip: Amon - ua_day: - short_name: ua - mip: day - va_month: - short_name: va - mip: Amon - va_day: - short_name: va - mip: day - wap: - mip: Amon - zg: - mip: Amon - additional_datasets: - - {dataset: NCEP, project: OBS, tier: 2, - type: reanaly, version: 1, start_year: 1948, end_year: 2018} - scripts: null - - - NSIDC-0116: - description: NSIDC-0116 check - variables: - areacello: - mip: fx - usi: - mip: day - vsi: - mip: day - additional_datasets: - - {dataset: NSIDC-0116-nh, project: OBS, tier: 3, - type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} - - {dataset: NSIDC-0116-sh, project: OBS, tier: 3, - type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} - scripts: null - - - PATMOS-x: - description: PATMOS-x check - variables: - clt: - additional_datasets: - - {dataset: PATMOS-x, project: OBS, mip: Amon, tier: 2, - type: sat, version: NOAA, start_year: 1982, end_year: 2016} - scripts: null - - - PHC: - description: PHC check - variables: - so: - thetao: - additional_datasets: - - {dataset: PHC, project: OBS6, frequency: yr, mip: Omon, tier: 2, - type: clim, version: 3, start_year: 1950, end_year: 1950} - scripts: null - - - PIOMAS: - description: PIOMAS - variables: - sithick: - mip: day - areacello: - mip: fx - additional_datasets: - - {dataset: PIOMAS, project: OBS, tier: 2, - type: reanaly, version: 2.1, start_year: 1979, end_year: 2018} - scripts: null - - - WOA: - description: WOA check - variables: - so: - mip: Omon - thetao: - mip: Omon - no3: - mip: Oyr - o2: - mip: Oyr - po4: - mip: Oyr - si: - mip: Oyr - additional_datasets: - - {dataset: WOA, project: OBS, tier: 2, - type: clim, version: 2013v2, start_year: 2000, end_year: 2000} - scripts: null + # CERES-EBAF: + # description: CERES-EBAF check + # variables: + # rlut: + # rlutcs: + # rsut: + # rsutcs: + # additional_datasets: + # - {dataset: CERES-EBAF, project: OBS, mip: Amon, tier: 2, + # type: sat, version: Ed4.0, start_year: 2001, end_year: 2018} + # scripts: null + + + # CRU: + # description: CRU check + # variables: + # tas: + # pr: + # additional_datasets: + # - {dataset: CRU, project: OBS, mip: Amon, tier: 2, + # type: reanaly, version: TS4.02, start_year: 1901, end_year: 2017} + # scripts: null + + + # Duveiller2018: + # description: Duveiller2018 check + # variables: + # albDiffiTr13: + # additional_datasets: + # - {dataset: Duveiller2018, project: OBS, mip: Amon, tier: 2, + # type: clim, version: v2018, start_year: 2010, end_year: 2010} + # scripts: null + + + # Eppley-VGPM-MODIS: + # description: Eppley-VGPM-MODIS check + # variables: + # intpp: + # additional_datasets: + # - {dataset: Eppley-VGPM-MODIS, project: OBS, mip: Omon, tier: 2, + # type: sat, version: R2018, start_year: 2003, end_year: 2018} + # scripts: null + + + # ESACCI-AEROSOL: + # description: ESACCI-AEROSOL check + # variables: + # abs550aer: + # od550aer: + # od550aerStderr: + # od550lt1aer: + # od870aer: + # od870aerStderr: + # additional_datasets: + # - {dataset: ESACCI-AEROSOL, project: OBS, mip: aero, tier: 2, + # type: sat, version: SU-v4.21, start_year: 1997, end_year: 2011} + # scripts: null + + + # ESACCI-CLOUD: + # description: ESACCI-CLOUD check + # variables: + # clivi: + # clt: + # cltStderr: + # clwvi: + # additional_datasets: + # - {dataset: ESACCI-CLOUD, project: OBS, mip: Amon, tier: 2, + # type: sat, version: AVHRR-fv3.0, start_year: 1982, end_year: 2016} + # scripts: null + + + # ESACCI-FIRE: + # description: ESACCI-FIRE check + # variables: + # burntArea: + # additional_datasets: + # - {dataset: ESACCI-FIRE, project: OBS, mip: Lmon, tier: 2, + # type: sat, version: L4-BA-MERIS-fv4.1, + # start_year: 2005, end_year: 2011} + # scripts: null + + + # ESACCI-LANDCOVER: + # description: ESACCI-LANDCOVER check + # variables: + # baresoilFrac: + # cropFrac: + # grassFrac: + # shrubFrac: + # treeFrac: + # additional_datasets: + # - {dataset: ESACCI-LANDCOVER, project: OBS, mip: Lmon, tier: 2, + # type: sat, version: L4-LCCS-Map-300m-P5Y-aggregated-0.500000Deg, + # start_year: 1998, end_year: 2012} + # scripts: null + + + # ESACCI-OC: + # description: ESACCI-OC check + # variables: + # chl: + # additional_datasets: + # - {dataset: ESACCI-OC, project: OBS, mip: Omon, tier: 2, + # type: sat, version: fv3.1, start_year: 1997, end_year: 2016} + # scripts: null + + + # ESACCI-OZONE: + # description: ESACCI-OZONE check + # variables: + # toz: + # additional_datasets: + # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + # type: sat, version: L3, start_year: 1997, end_year: 2010} + # tozStderr: + # additional_datasets: + # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + # type: sat, version: L3, start_year: 1997, end_year: 2010} + # tro3prof: + # additional_datasets: + # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + # type: sat, version: L3, start_year: 2007, end_year: 2008} + # tro3profStderr: + # additional_datasets: + # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + # type: sat, version: L3, start_year: 2007, end_year: 2008} + # scripts: null + + + # ESACCI-SOILMOISTURE: + # description: ESACCI-SOILMOISTURE check + # variables: + # dos: + # dosStderr: + # sm: + # smStderr: + # additional_datasets: + # - {dataset: ESACCI-SOILMOISTURE, project: OBS, mip: Lmon, tier: 2, + # type: sat, version: L3S-SSMV-COMBINED-v4.2, + # start_year: 2005, end_year: 2011} + # scripts: null + + + # ESACCI-SST: + # description: ESACCI-SST check + # variables: + # ts: + # tsStderr: + # additional_datasets: + # - {dataset: ESACCI-SST, project: OBS, mip: Amon, tier: 2, + # type: sat, version: L4-GHRSST-SSTdepth-OSTIA-GLOB, + # start_year: 1992, end_year: 2010} + # scripts: null + + + # GCP: + # description: GCP check + # variables: + # nbp: + # mip: Lmon + # fgco2: + # mip: Omon + # additional_datasets: + # - {dataset: GCP, project: OBS, frequency: yr, tier: 2, + # type: reanaly, version: 2018, start_year: 1959, end_year: 2017} + # scripts: null + + + # GHCN: + # description: GHCN check + # variables: + # pr: + # additional_datasets: + # - {dataset: GHCN, project: OBS, mip: Amon, tier: 2, + # type: ground, version: 1, start_year: 1900, end_year: 2014} + # scripts: null + + + # HadCRUT3: + # description: HadCRUT3 check + # variables: + # tasa: + # additional_datasets: + # - {dataset: HadCRUT3, project: OBS, mip: Amon, tier: 2, + # type: ground, version: 1, start_year: 1850, end_year: 2013} + # scripts: null + + + # HadCRUT4: + # description: HadCRUT4 check + # variables: + # tas: + # tasa: + # additional_datasets: + # - {dataset: HadCRUT4, project: OBS, mip: Amon, tier: 2, + # type: ground, version: 1, start_year: 1850, end_year: 2018} + # scripts: null + + + # HadISST: + # description: HadISST check + # variables: + # ts: + # mip: Amon + # tos: + # mip: Omon + # sic: + # mip: OImon + # additional_datasets: + # - {dataset: HadISST, project: OBS, tier: 2, + # type: reanaly, version: 1, start_year: 1870, end_year: 2017} + # scripts: null + + + # Landschuetzer2016: + # description: Landschuetzer2016 check + # variables: + # dpco2: + # fgco2: + # spco2: + # additional_datasets: + # - {dataset: Landschuetzer2016, project: OBS, mip: Omon, tier: 2, + # type: clim, version: v2016, start_year: 1982, end_year: 2015} + # scripts: null + + + # NCEP: + # description: NCEP check + # variables: + # hur: + # mip: Amon + # hus: + # mip: Amon + # pr_month: + # short_name: pr + # mip: Amon + # pr_day: + # short_name: pr + # mip: day + # rlut: + # mip: day + # ta: + # mip: Amon + # tas: + # mip: Amon + # ua_month: + # short_name: ua + # mip: Amon + # ua_day: + # short_name: ua + # mip: day + # va_month: + # short_name: va + # mip: Amon + # va_day: + # short_name: va + # mip: day + # wap: + # mip: Amon + # zg: + # mip: Amon + # additional_datasets: + # - {dataset: NCEP, project: OBS, tier: 2, + # type: reanaly, version: 1, start_year: 1948, end_year: 2018} + # scripts: null + + + # NSIDC-0116: + # description: NSIDC-0116 check + # variables: + # areacello: + # mip: fx + # usi: + # mip: day + # vsi: + # mip: day + # additional_datasets: + # - {dataset: NSIDC-0116-nh, project: OBS, tier: 3, + # type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} + # - {dataset: NSIDC-0116-sh, project: OBS, tier: 3, + # type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} + # scripts: null + + + # PATMOS-x: + # description: PATMOS-x check + # variables: + # clt: + # additional_datasets: + # - {dataset: PATMOS-x, project: OBS, mip: Amon, tier: 2, + # type: sat, version: NOAA, start_year: 1982, end_year: 2016} + # scripts: null + + + # PHC: + # description: PHC check + # variables: + # so: + # thetao: + # additional_datasets: + # - {dataset: PHC, project: OBS6, frequency: yr, mip: Omon, tier: 2, + # type: clim, version: 3, start_year: 1950, end_year: 1950} + # scripts: null + + + # PIOMAS: + # description: PIOMAS + # variables: + # sithick: + # mip: day + # areacello: + # mip: fx + # additional_datasets: + # - {dataset: PIOMAS, project: OBS, tier: 2, + # type: reanaly, version: 2.1, start_year: 1979, end_year: 2018} + # scripts: null + + + # WOA: + # description: WOA check + # variables: + # so: + # mip: Omon + # thetao: + # mip: Omon + # no3: + # mip: Oyr + # o2: + # mip: Oyr + # po4: + # mip: Oyr + # si: + # mip: Oyr + # additional_datasets: + # - {dataset: WOA, project: OBS, tier: 2, + # type: clim, version: 2013v2, start_year: 2000, end_year: 2000} + # scripts: null ### TIER 3 ################################################################## - AURA-TES: - description: AURA-TES check - variables: - tro3: - additional_datasets: - - {dataset: AURA-TES, project: OBS, mip: Amon, tier: 3, - type: sat, version: 1, start_year: 2005, end_year: 2011} - scripts: null - - - CDS-SATELLITE-LAI-FAPAR: - description: CDS-SATELLITE-LAI-FAPAR check - variables: - fapar: - lai: - additional_datasets: - - {dataset: CDS-SATELLITE-LAI-FAPAR, project: OBS, mip: Lmon, tier: 3, - type: sat, version: V1, start_year: 1999, end_year: 2013} - scripts: null - - - CDS-SATELLITE-SOIL-MOISTURE: - description: CDS-SATELLITE-SOIL-MOISTURE check - variables: - sm: - smStderr: - additional_datasets: - - {dataset: CDS-SATELLITE-SOIL-MOISTURE, project: OBS, mip: day, tier: 3, - type: sat, version: COMBINED-TCDR-v201812.0.0, - start_year: 1979, end_year: 2018} - scripts: null - - - CDS-UERRA: - description: CDS-UERRA check - variables: - sm: - additional_datasets: - - {dataset: CDS-UERRA, project: OBS6, mip: E6hr, frequency: 6hr, tier: 3, - type: reanaly, version: UERRA-HARMONIE, - start_year: 1979, end_year: 2018} - scripts: null - - - CDS-XCH4: - description: CDS-XCH4 check - variables: - xch4: - additional_datasets: - - {dataset: CDS-XCH4, project: OBS, mip: Amon, tier: 3, - type: sat, version: L3, start_year: 2003, end_year: 2016} - scripts: null - - - CDS-XCO2: - description: CDS-XCO2 check - variables: - xco2: - additional_datasets: - - {dataset: CDS-XCO2, project: OBS, mip: Amon, tier: 3, - type: sat, version: L3, start_year: 2003, end_year: 2016} - scripts: null - - - CERES_mon: - description: CERES-SYN1deg check - variables: - rlds_month: - short_name: rlds - mip: Amon - rlds_3hr: - short_name: rlds - mip: 3hr - rldscs_month: - short_name: rldscs - mip: Amon - rldscs_3hr: - short_name: rldscs - mip: 3hr - rlus_month: - short_name: rlus - mip: Amon - rlus_3hr: - short_name: rlus - mip: 3hr - rluscs: - mip: 3hr - rlut_month: - short_name: rlut - mip: Amon - rlut_3hr: - short_name: rlut - mip: 3hr - rlutcs_month: - short_name: rlutcs - mip: Amon - rlutcs_3hr: - short_name: rlutcs - mip: 3hr - rsds_month: - short_name: rsds - mip: Amon - rsds_3hr: - short_name: rsds - mip: 3hr - rsdscs: - mip: 3hr - rsdt: - mip: Amon - rsus_month: - short_name: rsus - mip: Amon - rsus_3hr: - short_name: rsus - mip: 3hr - rsuscs: - mip: 3hr - rsut_month: - short_name: rsut - mip: Amon - rsut_3hr: - short_name: rsut - mip: 3hr - rsutcs_month: - short_name: rsutcs - mip: Amon - rsutcs_3hr: - short_name: rsutcs - mip: 3hr - additional_datasets: - - {dataset: CERES-SYN1deg, project: OBS, tier: 3, - type: sat, version: Ed3A, start_year: 2001, end_year: 2016} - scripts: null - - - ERA-Interim: - description: ERA-Interim check - variables: - clivi: - mip: Amon - clt_day: - short_name: clt - mip: day - clt_month: - short_name: clt - mip: Amon - clwvi: - mip: Amon - evspsbl_day: - short_name: evspsbl - mip: Eday - evspsbl_month: - short_name: evspsbl - mip: Amon - hfds: - mip: Omon - hur: - mip: Amon - hus: - mip: Amon - orog: - mip: fx - pr_day: - short_name: pr - mip: day - pr_month: - short_name: pr - mip: Amon - prsn_day: - short_name: prsn - mip: day - prsn_month: - short_name: prsn - mip: Amon - prw: - mip: Amon - ps_day: - short_name: ps - mip: CFday - ps_month: - short_name: ps - mip: Amon - psl_day: - short_name: psl - mip: day - psl_month: - short_name: psl - mip: Amon - rlds_day: - short_name: rlds - mip: day - rsds_day: - short_name: rsds - mip: day - rsds_month: - short_name: rsds - mip: Amon - rsdt_day: - short_name: rsdt - mip: CFday - rsdt_month: - short_name: rsdt - mip: Amon - rss_day: - short_name: rss - mip: day - rss_month: - short_name: rss - mip: Emon - sftlf: - mip: fx - ta: - mip: Amon - tas_day: - short_name: tas - mip: day - tas_month: - short_name: tas - mip: Amon - tasmax: - mip: day - tasmin: - mip: day - tauu: - mip: Amon - tauv: - mip: Amon - tdps_day: - short_name: tdps - mip: Eday - tdps_month: - short_name: tdps - mip: Emon - tos: - mip: Omon - ts_day: - short_name: ts - mip: Eday - ts_month: - short_name: ts - mip: Amon - tsn_month: - mip: LImon - tsn_day: - mip: Eday - ua: - mip: Amon - uas_day: - short_name: uas - mip: day - uas_month: - short_name: uas - mip: Amon - va: - mip: Amon - vas_day: - short_name: vas - mip: day - vas_month: - short_name: vas - mip: Amon - wap: - mip: Amon - zg_day: - short_name: zg - mip: day - zg_month: - short_name: zg - mip: Amon - additional_datasets: - - {dataset: ERA-Interim, project: OBS6, tier: 3, - type: reanaly, version: 1, start_year: 1979, end_year: 2018} - scripts: null + # AURA-TES: + # description: AURA-TES check + # variables: + # tro3: + # additional_datasets: + # - {dataset: AURA-TES, project: OBS, mip: Amon, tier: 3, + # type: sat, version: 1, start_year: 2005, end_year: 2011} + # scripts: null + + + # CDS-SATELLITE-LAI-FAPAR: + # description: CDS-SATELLITE-LAI-FAPAR check + # variables: + # fapar: + # lai: + # additional_datasets: + # - {dataset: CDS-SATELLITE-LAI-FAPAR, project: OBS, mip: Lmon, tier: 3, + # type: sat, version: V1, start_year: 1999, end_year: 2013} + # scripts: null + + + # CDS-SATELLITE-SOIL-MOISTURE: + # description: CDS-SATELLITE-SOIL-MOISTURE check + # variables: + # sm: + # smStderr: + # additional_datasets: + # - {dataset: CDS-SATELLITE-SOIL-MOISTURE, project: OBS, mip: day, tier: 3, + # type: sat, version: COMBINED-TCDR-v201812.0.0, + # start_year: 1979, end_year: 2018} + # scripts: null + + + # CDS-UERRA: + # description: CDS-UERRA check + # variables: + # sm: + # additional_datasets: + # - {dataset: CDS-UERRA, project: OBS6, mip: E6hr, frequency: 6hr, tier: 3, + # type: reanaly, version: UERRA-HARMONIE, + # start_year: 1979, end_year: 2018} + # scripts: null + + + # CDS-XCH4: + # description: CDS-XCH4 check + # variables: + # xch4: + # additional_datasets: + # - {dataset: CDS-XCH4, project: OBS, mip: Amon, tier: 3, + # type: sat, version: L3, start_year: 2003, end_year: 2016} + # scripts: null + + + # CDS-XCO2: + # description: CDS-XCO2 check + # variables: + # xco2: + # additional_datasets: + # - {dataset: CDS-XCO2, project: OBS, mip: Amon, tier: 3, + # type: sat, version: L3, start_year: 2003, end_year: 2016} + # scripts: null + + + # CERES_mon: + # description: CERES-SYN1deg check + # variables: + # rlds_month: + # short_name: rlds + # mip: Amon + # rlds_3hr: + # short_name: rlds + # mip: 3hr + # rldscs_month: + # short_name: rldscs + # mip: Amon + # rldscs_3hr: + # short_name: rldscs + # mip: 3hr + # rlus_month: + # short_name: rlus + # mip: Amon + # rlus_3hr: + # short_name: rlus + # mip: 3hr + # rluscs: + # mip: 3hr + # rlut_month: + # short_name: rlut + # mip: Amon + # rlut_3hr: + # short_name: rlut + # mip: 3hr + # rlutcs_month: + # short_name: rlutcs + # mip: Amon + # rlutcs_3hr: + # short_name: rlutcs + # mip: 3hr + # rsds_month: + # short_name: rsds + # mip: Amon + # rsds_3hr: + # short_name: rsds + # mip: 3hr + # rsdscs: + # mip: 3hr + # rsdt: + # mip: Amon + # rsus_month: + # short_name: rsus + # mip: Amon + # rsus_3hr: + # short_name: rsus + # mip: 3hr + # rsuscs: + # mip: 3hr + # rsut_month: + # short_name: rsut + # mip: Amon + # rsut_3hr: + # short_name: rsut + # mip: 3hr + # rsutcs_month: + # short_name: rsutcs + # mip: Amon + # rsutcs_3hr: + # short_name: rsutcs + # mip: 3hr + # additional_datasets: + # - {dataset: CERES-SYN1deg, project: OBS, tier: 3, + # type: sat, version: Ed3A, start_year: 2001, end_year: 2016} + # scripts: null + + + # ERA-Interim: + # description: ERA-Interim check + # variables: + # clivi: + # mip: Amon + # clt_day: + # short_name: clt + # mip: day + # clt_month: + # short_name: clt + # mip: Amon + # clwvi: + # mip: Amon + # evspsbl_day: + # short_name: evspsbl + # mip: Eday + # evspsbl_month: + # short_name: evspsbl + # mip: Amon + # hfds: + # mip: Omon + # hur: + # mip: Amon + # hus: + # mip: Amon + # orog: + # mip: fx + # pr_day: + # short_name: pr + # mip: day + # pr_month: + # short_name: pr + # mip: Amon + # prsn_day: + # short_name: prsn + # mip: day + # prsn_month: + # short_name: prsn + # mip: Amon + # prw: + # mip: Amon + # ps_day: + # short_name: ps + # mip: CFday + # ps_month: + # short_name: ps + # mip: Amon + # psl_day: + # short_name: psl + # mip: day + # psl_month: + # short_name: psl + # mip: Amon + # rlds_day: + # short_name: rlds + # mip: day + # rsds_day: + # short_name: rsds + # mip: day + # rsds_month: + # short_name: rsds + # mip: Amon + # rsdt_day: + # short_name: rsdt + # mip: CFday + # rsdt_month: + # short_name: rsdt + # mip: Amon + # rss_day: + # short_name: rss + # mip: day + # rss_month: + # short_name: rss + # mip: Emon + # sftlf: + # mip: fx + # ta: + # mip: Amon + # tas_day: + # short_name: tas + # mip: day + # tas_month: + # short_name: tas + # mip: Amon + # tasmax: + # mip: day + # tasmin: + # mip: day + # tauu: + # mip: Amon + # tauv: + # mip: Amon + # tdps_day: + # short_name: tdps + # mip: Eday + # tdps_month: + # short_name: tdps + # mip: Emon + # tos: + # mip: Omon + # ts_day: + # short_name: ts + # mip: Eday + # ts_month: + # short_name: ts + # mip: Amon + # tsn_month: + # mip: LImon + # tsn_day: + # mip: Eday + # ua: + # mip: Amon + # uas_day: + # short_name: uas + # mip: day + # uas_month: + # short_name: uas + # mip: Amon + # va: + # mip: Amon + # vas_day: + # short_name: vas + # mip: day + # vas_month: + # short_name: vas + # mip: Amon + # wap: + # mip: Amon + # zg_day: + # short_name: zg + # mip: day + # zg_month: + # short_name: zg + # mip: Amon + # additional_datasets: + # - {dataset: ERA-Interim, project: OBS6, tier: 3, + # type: reanaly, version: 1, start_year: 1979, end_year: 2018} + # scripts: null ERA5: @@ -685,134 +685,134 @@ diagnostics: scripts: null - HWSD: - description: HWSD check - variables: - areacella: - mip: fx - cSoil: - mip: Lmon - sftlf: - mip: fx - additional_datasets: - - {dataset: HWSD, project: OBS, tier: 3, type: reanaly, version: 1.2, - start_year: 2000, end_year: 2000} - scripts: null - - - JMA-TRANSCOM: - description: JMA-TRANSCOM check - variables: - nbp: - mip: Lmon - fgco2: - mip: Omon - additional_datasets: - - {dataset: JMA-TRANSCOM, project: OBS, tier: 3, type: reanaly, - version: 2018, start_year: 1985, end_year: 2016} - scripts: null - - - FLUXCOM: - description: FLUXCOM check - variables: - gpp: - additional_datasets: - - {dataset: FLUXCOM, project: OBS, mip: Lmon, tier: 3, type: reanaly, - version: ANN-v1, start_year: 1980, end_year: 2013} - scripts: null - - - LAI3g: - description: LAI3g check - variables: - lai: - additional_datasets: - - {dataset: LAI3g, project: OBS, mip: Lmon, tier: 3, - type: reanaly, version: 1_regridded, start_year: 1981, end_year: 2018} - scripts: null - - - LandFlux-EVAL: - description: LandFlux-EVAL check - variables: - et: - etStderr: - additional_datasets: - - {dataset: LandFlux-EVAL, project: OBS, mip: Lmon, tier: 3, - type: reanaly, version: Oct13, start_year: 1989, end_year: 2005} - scripts: null - - - MERRA2: - description: MERRA2 check - variables: - sm: - additional_datasets: - - {dataset: MERRA2, project: OBS6, mip: Lmon, tier: 3, - type: reanaly, version: 5.12.4, start_year: 1980, end_year: 2018} - scripts: null - - - MTE: - description: MTE check - variables: - gpp: - gppStderr: - additional_datasets: - - {dataset: MTE, project: OBS, tier: 3, mip: Lmon, - type: reanaly, version: May12, start_year: 1982, end_year: 2011} - scripts: null - - - MODIS: - description: MODIS check - variables: - od550aer: - mip: aero - clivi: - mip: Amon - clwvi: - mip: Amon - clt: - mip: Amon - lwpStderr: - mip: Amon - iwpStderr: - mip: Amon - additional_datasets: - - {dataset: MODIS, project: OBS, tier: 3, - type: sat, version: MYD08-M3, start_year: 2003, end_year: 2018} - scripts: null - - - NDP: - description: NDP check - variables: - cVeg: - additional_datasets: - - {dataset: NDP, project: OBS, tier: 3, mip: Lmon, - type: reanaly, version: 017b, start_year: 2000, end_year: 2000} - scripts: null - - - NIWA-BS: - description: NIWA-BS check - variables: - toz: - tozStderr: - additional_datasets: - - {dataset: NIWA-BS, project: OBS, mip: Amon, tier: 3, - type: sat, version: v3.3, start_year: 1979, end_year: 2016} - scripts: null - - - UWisc: - description: UWisc check - variables: - lwp: - lwpStderr: - additional_datasets: - - {dataset: UWisc, project: OBS, mip: Amon, tier: 3, - type: sat, version: v2, start_year: 1988, end_year: 2007} - scripts: null + # HWSD: + # description: HWSD check + # variables: + # areacella: + # mip: fx + # cSoil: + # mip: Lmon + # sftlf: + # mip: fx + # additional_datasets: + # - {dataset: HWSD, project: OBS, tier: 3, type: reanaly, version: 1.2, + # start_year: 2000, end_year: 2000} + # scripts: null + + + # JMA-TRANSCOM: + # description: JMA-TRANSCOM check + # variables: + # nbp: + # mip: Lmon + # fgco2: + # mip: Omon + # additional_datasets: + # - {dataset: JMA-TRANSCOM, project: OBS, tier: 3, type: reanaly, + # version: 2018, start_year: 1985, end_year: 2016} + # scripts: null + + + # FLUXCOM: + # description: FLUXCOM check + # variables: + # gpp: + # additional_datasets: + # - {dataset: FLUXCOM, project: OBS, mip: Lmon, tier: 3, type: reanaly, + # version: ANN-v1, start_year: 1980, end_year: 2013} + # scripts: null + + + # LAI3g: + # description: LAI3g check + # variables: + # lai: + # additional_datasets: + # - {dataset: LAI3g, project: OBS, mip: Lmon, tier: 3, + # type: reanaly, version: 1_regridded, start_year: 1981, end_year: 2018} + # scripts: null + + + # LandFlux-EVAL: + # description: LandFlux-EVAL check + # variables: + # et: + # etStderr: + # additional_datasets: + # - {dataset: LandFlux-EVAL, project: OBS, mip: Lmon, tier: 3, + # type: reanaly, version: Oct13, start_year: 1989, end_year: 2005} + # scripts: null + + + # MERRA2: + # description: MERRA2 check + # variables: + # sm: + # additional_datasets: + # - {dataset: MERRA2, project: OBS6, mip: Lmon, tier: 3, + # type: reanaly, version: 5.12.4, start_year: 1980, end_year: 2018} + # scripts: null + + + # MTE: + # description: MTE check + # variables: + # gpp: + # gppStderr: + # additional_datasets: + # - {dataset: MTE, project: OBS, tier: 3, mip: Lmon, + # type: reanaly, version: May12, start_year: 1982, end_year: 2011} + # scripts: null + + + # MODIS: + # description: MODIS check + # variables: + # od550aer: + # mip: aero + # clivi: + # mip: Amon + # clwvi: + # mip: Amon + # clt: + # mip: Amon + # lwpStderr: + # mip: Amon + # iwpStderr: + # mip: Amon + # additional_datasets: + # - {dataset: MODIS, project: OBS, tier: 3, + # type: sat, version: MYD08-M3, start_year: 2003, end_year: 2018} + # scripts: null + + + # NDP: + # description: NDP check + # variables: + # cVeg: + # additional_datasets: + # - {dataset: NDP, project: OBS, tier: 3, mip: Lmon, + # type: reanaly, version: 017b, start_year: 2000, end_year: 2000} + # scripts: null + + + # NIWA-BS: + # description: NIWA-BS check + # variables: + # toz: + # tozStderr: + # additional_datasets: + # - {dataset: NIWA-BS, project: OBS, mip: Amon, tier: 3, + # type: sat, version: v3.3, start_year: 1979, end_year: 2016} + # scripts: null + + + # UWisc: + # description: UWisc check + # variables: + # lwp: + # lwpStderr: + # additional_datasets: + # - {dataset: UWisc, project: OBS, mip: Amon, tier: 3, + # type: sat, version: v2, start_year: 1988, end_year: 2007} + # scripts: null From 75bdb2a8626dc6cb9ad3e23919262fcf352b47ac Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Fri, 31 Jan 2020 14:57:31 +0100 Subject: [PATCH 08/21] Rename daily output and clean up recipe --- esmvaltool/diag_scripts/cmorizers/era5.py | 2 + esmvaltool/recipes/cmorizers/recipe_era5.yml | 604 +++++++++---------- 2 files changed, 303 insertions(+), 303 deletions(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index f5c06aa76d..ef60e3f99f 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -13,6 +13,8 @@ def main(cfg): for file in fixed_files: basename, _ext = os.path.splitext(os.path.basename(file)) basename = basename.replace('native', 'OBS') + if cfg['diagnostic'] == 'daily': + basename.replace('E1hr', 'Eday') outfile = get_diagnostic_filename(basename, cfg) shutil.move(file, outfile) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 4a9e336b2e..7b0310948e 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -35,311 +35,309 @@ diagnostics: script: script: cmorizers/era5.py variables: -# clt: -# mip: E1hr -# era5_name: total_cloud_cover -# era5_freq: hourly -# evspsbl: -# mip: E1hr -# era5_name: evaporation -# era5_freq: hourly -# evspsblpot: -# mip: E1hr -# era5_name: potential_evaporation -# era5_freq: hourly -# mrro: -# mip: E1hr -# era5_name: runoff -# era5_freq: hourly -# orog: -# mip: fx -# era5_name: orography -# era5_freq: hourly + clt: + mip: E1hr + era5_name: total_cloud_cover + era5_freq: hourly + evspsbl: + mip: E1hr + era5_name: evaporation + era5_freq: hourly + evspsblpot: + mip: E1hr + era5_name: potential_evaporation + era5_freq: hourly + mrro: + mip: E1hr + era5_name: runoff + era5_freq: hourly + orog: + mip: fx + era5_name: orography + era5_freq: hourly pr: mip: E1hr era5_name: total_precipitation era5_freq: hourly -# prsn: -# mip: E1hr -# era5_name: snowfall -# era5_freq: hourly -# psl: -# mip: E1hr -# era5_name: mean_sea_level_pressure -# era5_freq: hourly -# ps: -# mip: E1hr -# era5_name: surface_pressure -# era5_freq: hourly -# ptype: -# mip: E1hr -# era5_name: precipitation_type -# era5_freq: hourly -# rlds: -# mip: E1hr -# era5_name: surface_thermal_radiation_downwards -# era5_freq: hourly -# rls: -# mip: E1hr -# era5_name: mean_surface_net_long_wave_radiation_flux -# era5_freq: hourly -# rsds: -# mip: E1hr -# era5_name: surface_solar_radiation_downwards -# era5_freq: hourly -# rsdt: -# mip: E1hr -# era5_name: toa_incident_solar_radiation -# era5_freq: hourly -# rss: -# mip: E1hr -# era5_name: surface_net_solar_radiation -# era5_freq: hourly -# tas: -# mip: E1hr -# era5_name: 2m_temperature -# era5_freq: hourly -# tasmax: -# mip: E1hr -# era5_name: maximum_2m_temperature_since_previous_post_processing -# era5_freq: hourly -# tasmin: -# mip: E1hr -# era5_name: minimum_2m_temperature_since_previous_post_processing -# era5_freq: hourly -# tdps: -# mip: E1hr -# era5_name: 2m_dewpoint_temperature -# era5_freq: hourly -# ts: -# mip: E1hr -# era5_name: skin_temperature -# era5_freq: hourly -# tsn: -# mip: E1hr -# era5_name: temperature_of_snow_layer -# era5_freq: hourly -# uas: -# mip: E1hr -# era5_name: 10m_u_component_of_wind -# era5_freq: hourly -# vas: -# mip: E1hr -# era5_name: 10m_v_component_of_wind -# era5_freq: hourly - -# daily: -# description: Create daily ERA5 data -# scripts: cmorizers/era5.py -# variables: -# clt: -# mip: E1hr -# era5_name: total_cloud_cover -# era5_freq: hourly -# preprocessor: daily_mean -# evspsbl: -# mip: E1hr -# era5_name: evaporation -# era5_freq: hourly -# preprocessor: daily_mean -# evspsblpot: -# mip: E1hr -# era5_name: potential_evaporation -# era5_freq: hourly -# preprocessor: daily_mean -# mrro: -# mip: E1hr -# era5_name: runoff -# era5_freq: hourly -# preprocessor: daily_mean -# orog: -# mip: fx -# era5_name: orography -# era5_freq: hourly -# pr: -# mip: E1hr -# era5_name: total_precipitation -# era5_freq: hourly -# preprocessor: daily_mean -# prsn: -# mip: E1hr -# era5_name: snowfall -# era5_freq: hourly -# preprocessor: daily_mean -# ps: -# mip: E1hr -# era5_name: surface_pressure -# era5_freq: hourly -# preprocessor: daily_mean -# psl: -# mip: E1hr -# era5_name: mean_sea_level_pressure -# era5_freq: hourly -# preprocessor: daily_mean -# rlds: -# mip: E1hr -# era5_name: surface_thermal_radiation_downwards -# era5_freq: hourly -# preprocessor: daily_mean -# rls: -# mip: E1hr -# era5_name: mean_surface_net_long_wave_radiation_flux -# era5_freq: hourly -# preprocessor: daily_mean -# rsds: -# mip: E1hr -# era5_name: surface_solar_radiation_downwards -# era5_freq: hourly -# preprocessor: daily_mean -# rsdt: -# mip: E1hr -# era5_name: toa_incident_solar_radiation -# era5_freq: hourly -# preprocessor: daily_mean -# rss: -# mip: E1hr -# era5_name: surface_net_solar_radiation -# era5_freq: hourly -# preprocessor: daily_mean -# tas: -# mip: E1hr -# era5_name: 2m_temperature -# era5_freq: hourly -# preprocessor: daily_mean -# tasmax: -# mip: E1hr -# era5_name: maximum_2m_temperature_since_previous_post_processing -# era5_freq: hourly -# preprocessor: daily_max -# tasmin: -# mip: E1hr -# era5_name: minimum_2m_temperature_since_previous_post_processing -# era5_freq: hourly -# preprocessor: daily_min -# tdps: -# mip: E1hr -# era5_name: 2m_dewpoint_temperature -# era5_freq: hourly -# preprocessor: daily_mean -# ts: -# mip: E1hr -# era5_name: skin_temperature -# era5_freq: hourly -# preprocessor: daily_mean -# tsn: -# mip: E1hr -# era5_name: temperature_of_snow_layer -# era5_freq: hourly -# preprocessor: daily_mean -# uas: -# mip: E1hr -# era5_name: 10m_u_component_of_wind -# era5_freq: hourly -# preprocessor: daily_mean -# vas: -# mip: E1hr -# era5_name: 10m_v_component_of_wind -# era5_freq: hourly -# preprocessor: daily_mean - -# monthly: -# description: CMORize monthly ERA5 data -# scripts: cmorizers/era5.py -# variables: -# clt: -# mip: Amon -# era5_name: total_cloud_cover -# era5_freq: monthly -# evspsbl: -# mip: Amon -# era5_name: evaporation -# era5_freq: monthly -# evspsblpot: -# mip: Amon -# era5_name: potential_evaporation -# era5_freq: monthly -# mrro: -# mip: Amon -# era5_name: runoff -# era5_freq: monthly -# orog: -# mip: Amon -# era5_name: orography -# era5_freq: monthly -# pr: -# mip: Amon -# era5_name: total_precipitation -# era5_freq: monthly -# prsn: -# mip: Amon -# era5_name: snowfall -# era5_freq: monthly -# psl: -# mip: Amon -# era5_name: mean_sea_level_pressure -# era5_freq: monthly -# ps: -# mip: Amon -# era5_name: surface_pressure -# era5_freq: monthly -# ptype: -# mip: Amon -# era5_name: precipitation_type -# era5_freq: monthly -# rlds: -# mip: Amon -# era5_name: surface_thermal_radiation_downwards -# era5_freq: monthly -# rls: -# mip: Amon -# era5_name: mean_surface_net_long_wave_radiation_flux -# era5_freq: monthly -# rsds: -# mip: Amon -# era5_name: surface_solar_radiation_downwards -# era5_freq: monthly -# rsdt: -# mip: Amon -# era5_name: toa_incident_solar_radiation -# era5_freq: monthly -# rss: -# mip: Amon -# era5_name: surface_net_solar_radiation -# era5_freq: monthly -# tas: -# mip: Amon -# era5_name: 2m_temperature -# era5_freq: monthly -# tasmax: -# mip: Amon -# era5_name: maximum_2m_temperature_since_previous_post_processing -# era5_freq: monthly -# tasmin: -# mip: Amon -# era5_name: minimum_2m_temperature_since_previous_post_processing -# era5_freq: monthly -# tdps: -# mip: Amon -# era5_name: 2m_dewpoint_temperature -# era5_freq: monthly -# ts: -# mip: Amon -# era5_name: skin_temperature -# era5_freq: monthly -# tsn: -# mip: Amon -# era5_name: temperature_of_snow_layer -# era5_freq: monthly -# uas: -# mip: Amon -# era5_name: 10m_u_component_of_wind -# era5_freq: monthly -# vas: -# mip: Amon -# era5_name: 10m_v_component_of_wind -# era5_freq: monthly - - - - + prsn: + mip: E1hr + era5_name: snowfall + era5_freq: hourly + psl: + mip: E1hr + era5_name: mean_sea_level_pressure + era5_freq: hourly + ps: + mip: E1hr + era5_name: surface_pressure + era5_freq: hourly + ptype: + mip: E1hr + era5_name: precipitation_type + era5_freq: hourly + rlds: + mip: E1hr + era5_name: surface_thermal_radiation_downwards + era5_freq: hourly + rls: + mip: E1hr + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: hourly + rsds: + mip: E1hr + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation + era5_freq: hourly + rss: + mip: E1hr + era5_name: surface_net_solar_radiation + era5_freq: hourly + tas: + mip: E1hr + era5_name: 2m_temperature + era5_freq: hourly + tasmax: + mip: E1hr + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: hourly + tasmin: + mip: E1hr + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature + era5_freq: hourly + ts: + mip: E1hr + era5_name: skin_temperature + era5_freq: hourly + tsn: + mip: E1hr + era5_name: temperature_of_snow_layer + era5_freq: hourly + uas: + mip: E1hr + era5_name: 10m_u_component_of_wind + era5_freq: hourly + vas: + mip: E1hr + era5_name: 10m_v_component_of_wind + era5_freq: hourly + daily: + description: Create daily ERA5 data + scripts: + script: + script: cmorizers/era5.py + variables: + clt: + mip: E1hr + era5_name: total_cloud_cover + era5_freq: hourly + preprocessor: daily_mean + evspsbl: + mip: E1hr + era5_name: evaporation + era5_freq: hourly + preprocessor: daily_mean + evspsblpot: + mip: E1hr + era5_name: potential_evaporation + era5_freq: hourly + preprocessor: daily_mean + mrro: + mip: E1hr + era5_name: runoff + era5_freq: hourly + preprocessor: daily_mean + orog: + mip: fx + era5_name: orography + era5_freq: hourly + pr: + mip: E1hr + era5_name: total_precipitation + era5_freq: hourly + preprocessor: daily_mean + prsn: + mip: E1hr + era5_name: snowfall + era5_freq: hourly + preprocessor: daily_mean + ps: + mip: E1hr + era5_name: surface_pressure + era5_freq: hourly + preprocessor: daily_mean + psl: + mip: E1hr + era5_name: mean_sea_level_pressure + era5_freq: hourly + preprocessor: daily_mean + rlds: + mip: E1hr + era5_name: surface_thermal_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + rls: + mip: E1hr + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: hourly + preprocessor: daily_mean + rsds: + mip: E1hr + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation + era5_freq: hourly + preprocessor: daily_mean + rss: + mip: E1hr + era5_name: surface_net_solar_radiation + era5_freq: hourly + preprocessor: daily_mean + tas: + mip: E1hr + era5_name: 2m_temperature + era5_freq: hourly + preprocessor: daily_mean + tasmax: + mip: E1hr + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: hourly + preprocessor: daily_max + tasmin: + mip: E1hr + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + preprocessor: daily_min + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature + era5_freq: hourly + preprocessor: daily_mean + ts: + mip: E1hr + era5_name: skin_temperature + era5_freq: hourly + preprocessor: daily_mean + tsn: + mip: E1hr + era5_name: temperature_of_snow_layer + era5_freq: hourly + preprocessor: daily_mean + uas: + mip: E1hr + era5_name: 10m_u_component_of_wind + era5_freq: hourly + preprocessor: daily_mean + vas: + mip: E1hr + era5_name: 10m_v_component_of_wind + era5_freq: hourly + preprocessor: daily_mean + monthly: + description: CMORize monthly ERA5 data + scripts: + script: + script: cmorizers/era5.py + variables: + clt: + mip: Amon + era5_name: total_cloud_cover + era5_freq: monthly + evspsbl: + mip: Amon + era5_name: evaporation + era5_freq: monthly + evspsblpot: + mip: Amon + era5_name: potential_evaporation + era5_freq: monthly + mrro: + mip: Amon + era5_name: runoff + era5_freq: monthly + orog: + mip: Amon + era5_name: orography + era5_freq: monthly + pr: + mip: Amon + era5_name: total_precipitation + era5_freq: monthly + prsn: + mip: Amon + era5_name: snowfall + era5_freq: monthly + psl: + mip: Amon + era5_name: mean_sea_level_pressure + era5_freq: monthly + ps: + mip: Amon + era5_name: surface_pressure + era5_freq: monthly + ptype: + mip: Amon + era5_name: precipitation_type + era5_freq: monthly + rlds: + mip: Amon + era5_name: surface_thermal_radiation_downwards + era5_freq: monthly + rls: + mip: Amon + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: monthly + rsds: + mip: Amon + era5_name: surface_solar_radiation_downwards + era5_freq: monthly + rsdt: + mip: Amon + era5_name: toa_incident_solar_radiation + era5_freq: monthly + rss: + mip: Amon + era5_name: surface_net_solar_radiation + era5_freq: monthly + tas: + mip: Amon + era5_name: 2m_temperature + era5_freq: monthly + tasmax: + mip: Amon + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: monthly + tasmin: + mip: Amon + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: monthly + tdps: + mip: Amon + era5_name: 2m_dewpoint_temperature + era5_freq: monthly + ts: + mip: Amon + era5_name: skin_temperature + era5_freq: monthly + tsn: + mip: Amon + era5_name: temperature_of_snow_layer + era5_freq: monthly + uas: + mip: Amon + era5_name: 10m_u_component_of_wind + era5_freq: monthly + vas: + mip: Amon + era5_name: 10m_v_component_of_wind + era5_freq: monthly From c2a2a50f35545ad5eec3ad565efc9d6cd9df2797 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Tue, 4 Feb 2020 10:51:16 +0100 Subject: [PATCH 09/21] Restore recipe_check_obs --- .../recipes/examples/recipe_check_obs.yml | 1527 +++++++++-------- 1 file changed, 785 insertions(+), 742 deletions(-) diff --git a/esmvaltool/recipes/examples/recipe_check_obs.yml b/esmvaltool/recipes/examples/recipe_check_obs.yml index 10845ecbcf..ca7136cb1f 100644 --- a/esmvaltool/recipes/examples/recipe_check_obs.yml +++ b/esmvaltool/recipes/examples/recipe_check_obs.yml @@ -13,621 +13,653 @@ diagnostics: ### TIER 2 ################################################################## - # CERES-EBAF: - # description: CERES-EBAF check - # variables: - # rlut: - # rlutcs: - # rsut: - # rsutcs: - # additional_datasets: - # - {dataset: CERES-EBAF, project: OBS, mip: Amon, tier: 2, - # type: sat, version: Ed4.0, start_year: 2001, end_year: 2018} - # scripts: null - - - # CRU: - # description: CRU check - # variables: - # tas: - # pr: - # additional_datasets: - # - {dataset: CRU, project: OBS, mip: Amon, tier: 2, - # type: reanaly, version: TS4.02, start_year: 1901, end_year: 2017} - # scripts: null - - - # Duveiller2018: - # description: Duveiller2018 check - # variables: - # albDiffiTr13: - # additional_datasets: - # - {dataset: Duveiller2018, project: OBS, mip: Amon, tier: 2, - # type: clim, version: v2018, start_year: 2010, end_year: 2010} - # scripts: null - - - # Eppley-VGPM-MODIS: - # description: Eppley-VGPM-MODIS check - # variables: - # intpp: - # additional_datasets: - # - {dataset: Eppley-VGPM-MODIS, project: OBS, mip: Omon, tier: 2, - # type: sat, version: R2018, start_year: 2003, end_year: 2018} - # scripts: null - - - # ESACCI-AEROSOL: - # description: ESACCI-AEROSOL check - # variables: - # abs550aer: - # od550aer: - # od550aerStderr: - # od550lt1aer: - # od870aer: - # od870aerStderr: - # additional_datasets: - # - {dataset: ESACCI-AEROSOL, project: OBS, mip: aero, tier: 2, - # type: sat, version: SU-v4.21, start_year: 1997, end_year: 2011} - # scripts: null - - - # ESACCI-CLOUD: - # description: ESACCI-CLOUD check - # variables: - # clivi: - # clt: - # cltStderr: - # clwvi: - # additional_datasets: - # - {dataset: ESACCI-CLOUD, project: OBS, mip: Amon, tier: 2, - # type: sat, version: AVHRR-fv3.0, start_year: 1982, end_year: 2016} - # scripts: null - - - # ESACCI-FIRE: - # description: ESACCI-FIRE check - # variables: - # burntArea: - # additional_datasets: - # - {dataset: ESACCI-FIRE, project: OBS, mip: Lmon, tier: 2, - # type: sat, version: L4-BA-MERIS-fv4.1, - # start_year: 2005, end_year: 2011} - # scripts: null - - - # ESACCI-LANDCOVER: - # description: ESACCI-LANDCOVER check - # variables: - # baresoilFrac: - # cropFrac: - # grassFrac: - # shrubFrac: - # treeFrac: - # additional_datasets: - # - {dataset: ESACCI-LANDCOVER, project: OBS, mip: Lmon, tier: 2, - # type: sat, version: L4-LCCS-Map-300m-P5Y-aggregated-0.500000Deg, - # start_year: 1998, end_year: 2012} - # scripts: null - - - # ESACCI-OC: - # description: ESACCI-OC check - # variables: - # chl: - # additional_datasets: - # - {dataset: ESACCI-OC, project: OBS, mip: Omon, tier: 2, - # type: sat, version: fv3.1, start_year: 1997, end_year: 2016} - # scripts: null - - - # ESACCI-OZONE: - # description: ESACCI-OZONE check - # variables: - # toz: - # additional_datasets: - # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - # type: sat, version: L3, start_year: 1997, end_year: 2010} - # tozStderr: - # additional_datasets: - # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - # type: sat, version: L3, start_year: 1997, end_year: 2010} - # tro3prof: - # additional_datasets: - # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - # type: sat, version: L3, start_year: 2007, end_year: 2008} - # tro3profStderr: - # additional_datasets: - # - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, - # type: sat, version: L3, start_year: 2007, end_year: 2008} - # scripts: null - - - # ESACCI-SOILMOISTURE: - # description: ESACCI-SOILMOISTURE check - # variables: - # dos: - # dosStderr: - # sm: - # smStderr: - # additional_datasets: - # - {dataset: ESACCI-SOILMOISTURE, project: OBS, mip: Lmon, tier: 2, - # type: sat, version: L3S-SSMV-COMBINED-v4.2, - # start_year: 2005, end_year: 2011} - # scripts: null - - - # ESACCI-SST: - # description: ESACCI-SST check - # variables: - # ts: - # tsStderr: - # additional_datasets: - # - {dataset: ESACCI-SST, project: OBS, mip: Amon, tier: 2, - # type: sat, version: L4-GHRSST-SSTdepth-OSTIA-GLOB, - # start_year: 1992, end_year: 2010} - # scripts: null - - - # GCP: - # description: GCP check - # variables: - # nbp: - # mip: Lmon - # fgco2: - # mip: Omon - # additional_datasets: - # - {dataset: GCP, project: OBS, frequency: yr, tier: 2, - # type: reanaly, version: 2018, start_year: 1959, end_year: 2017} - # scripts: null - - - # GHCN: - # description: GHCN check - # variables: - # pr: - # additional_datasets: - # - {dataset: GHCN, project: OBS, mip: Amon, tier: 2, - # type: ground, version: 1, start_year: 1900, end_year: 2014} - # scripts: null - - - # HadCRUT3: - # description: HadCRUT3 check - # variables: - # tasa: - # additional_datasets: - # - {dataset: HadCRUT3, project: OBS, mip: Amon, tier: 2, - # type: ground, version: 1, start_year: 1850, end_year: 2013} - # scripts: null - - - # HadCRUT4: - # description: HadCRUT4 check - # variables: - # tas: - # tasa: - # additional_datasets: - # - {dataset: HadCRUT4, project: OBS, mip: Amon, tier: 2, - # type: ground, version: 1, start_year: 1850, end_year: 2018} - # scripts: null - - - # HadISST: - # description: HadISST check - # variables: - # ts: - # mip: Amon - # tos: - # mip: Omon - # sic: - # mip: OImon - # additional_datasets: - # - {dataset: HadISST, project: OBS, tier: 2, - # type: reanaly, version: 1, start_year: 1870, end_year: 2017} - # scripts: null - - - # Landschuetzer2016: - # description: Landschuetzer2016 check - # variables: - # dpco2: - # fgco2: - # spco2: - # additional_datasets: - # - {dataset: Landschuetzer2016, project: OBS, mip: Omon, tier: 2, - # type: clim, version: v2016, start_year: 1982, end_year: 2015} - # scripts: null - - - # NCEP: - # description: NCEP check - # variables: - # hur: - # mip: Amon - # hus: - # mip: Amon - # pr_month: - # short_name: pr - # mip: Amon - # pr_day: - # short_name: pr - # mip: day - # rlut: - # mip: day - # ta: - # mip: Amon - # tas: - # mip: Amon - # ua_month: - # short_name: ua - # mip: Amon - # ua_day: - # short_name: ua - # mip: day - # va_month: - # short_name: va - # mip: Amon - # va_day: - # short_name: va - # mip: day - # wap: - # mip: Amon - # zg: - # mip: Amon - # additional_datasets: - # - {dataset: NCEP, project: OBS, tier: 2, - # type: reanaly, version: 1, start_year: 1948, end_year: 2018} - # scripts: null - - - # NSIDC-0116: - # description: NSIDC-0116 check - # variables: - # areacello: - # mip: fx - # usi: - # mip: day - # vsi: - # mip: day - # additional_datasets: - # - {dataset: NSIDC-0116-nh, project: OBS, tier: 3, - # type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} - # - {dataset: NSIDC-0116-sh, project: OBS, tier: 3, - # type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} - # scripts: null - - - # PATMOS-x: - # description: PATMOS-x check - # variables: - # clt: - # additional_datasets: - # - {dataset: PATMOS-x, project: OBS, mip: Amon, tier: 2, - # type: sat, version: NOAA, start_year: 1982, end_year: 2016} - # scripts: null - - - # PHC: - # description: PHC check - # variables: - # so: - # thetao: - # additional_datasets: - # - {dataset: PHC, project: OBS6, frequency: yr, mip: Omon, tier: 2, - # type: clim, version: 3, start_year: 1950, end_year: 1950} - # scripts: null - - - # PIOMAS: - # description: PIOMAS - # variables: - # sithick: - # mip: day - # areacello: - # mip: fx - # additional_datasets: - # - {dataset: PIOMAS, project: OBS, tier: 2, - # type: reanaly, version: 2.1, start_year: 1979, end_year: 2018} - # scripts: null - - - # WOA: - # description: WOA check - # variables: - # so: - # mip: Omon - # thetao: - # mip: Omon - # no3: - # mip: Oyr - # o2: - # mip: Oyr - # po4: - # mip: Oyr - # si: - # mip: Oyr - # additional_datasets: - # - {dataset: WOA, project: OBS, tier: 2, - # type: clim, version: 2013v2, start_year: 2000, end_year: 2000} - # scripts: null + CERES-EBAF: + description: CERES-EBAF check + variables: + rlut: + rlutcs: + rsut: + rsutcs: + additional_datasets: + - {dataset: CERES-EBAF, project: OBS, mip: Amon, tier: 2, + type: sat, version: Ed4.0, start_year: 2001, end_year: 2018} + scripts: null + + + CRU: + description: CRU check + variables: + tas: + pr: + additional_datasets: + - {dataset: CRU, project: OBS, mip: Amon, tier: 2, + type: reanaly, version: TS4.02, start_year: 1901, end_year: 2017} + scripts: null + + + Duveiller2018: + description: Duveiller2018 check + variables: + albDiffiTr13: + additional_datasets: + - {dataset: Duveiller2018, project: OBS, mip: Amon, tier: 2, + type: clim, version: v2018, start_year: 2010, end_year: 2010} + scripts: null + + + Eppley-VGPM-MODIS: + description: Eppley-VGPM-MODIS check + variables: + intpp: + additional_datasets: + - {dataset: Eppley-VGPM-MODIS, project: OBS, mip: Omon, tier: 2, + type: sat, version: R2018, start_year: 2003, end_year: 2018} + scripts: null + + + ESACCI-AEROSOL: + description: ESACCI-AEROSOL check + variables: + abs550aer: + od550aer: + od550aerStderr: + od550lt1aer: + od870aer: + od870aerStderr: + additional_datasets: + - {dataset: ESACCI-AEROSOL, project: OBS, mip: aero, tier: 2, + type: sat, version: SU-v4.21, start_year: 1997, end_year: 2011} + scripts: null + + + ESACCI-CLOUD: + description: ESACCI-CLOUD check + variables: + clivi: + clt: + cltStderr: + clwvi: + additional_datasets: + - {dataset: ESACCI-CLOUD, project: OBS, mip: Amon, tier: 2, + type: sat, version: AVHRR-fv3.0, start_year: 1982, end_year: 2016} + scripts: null + + + ESACCI-FIRE: + description: ESACCI-FIRE check + variables: + burntArea: + additional_datasets: + - {dataset: ESACCI-FIRE, project: OBS, mip: Lmon, tier: 2, + type: sat, version: L4-BA-MERIS-fv4.1, + start_year: 2005, end_year: 2011} + scripts: null + + + ESACCI-LANDCOVER: + description: ESACCI-LANDCOVER check + variables: + baresoilFrac: + cropFrac: + grassFrac: + shrubFrac: + treeFrac: + additional_datasets: + - {dataset: ESACCI-LANDCOVER, project: OBS, mip: Lmon, tier: 2, + type: sat, version: L4-LCCS-Map-300m-P5Y-aggregated-0.500000Deg, + start_year: 1998, end_year: 2012} + scripts: null + + + ESACCI-OC: + description: ESACCI-OC check + variables: + chl: + additional_datasets: + - {dataset: ESACCI-OC, project: OBS, mip: Omon, tier: 2, + type: sat, version: fv3.1, start_year: 1997, end_year: 2016} + scripts: null + + + ESACCI-OZONE: + description: ESACCI-OZONE check + variables: + toz: + additional_datasets: + - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + type: sat, version: L3, start_year: 1997, end_year: 2010} + tozStderr: + additional_datasets: + - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + type: sat, version: L3, start_year: 1997, end_year: 2010} + tro3prof: + additional_datasets: + - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + type: sat, version: L3, start_year: 2007, end_year: 2008} + tro3profStderr: + additional_datasets: + - {dataset: ESACCI-OZONE, project: OBS, mip: Amon, tier: 2, + type: sat, version: L3, start_year: 2007, end_year: 2008} + scripts: null + + + ESACCI-SOILMOISTURE: + description: ESACCI-SOILMOISTURE check + variables: + dos: + dosStderr: + sm: + smStderr: + additional_datasets: + - {dataset: ESACCI-SOILMOISTURE, project: OBS, mip: Lmon, tier: 2, + type: sat, version: L3S-SSMV-COMBINED-v4.2, + start_year: 2005, end_year: 2011} + scripts: null + + + ESACCI-SST: + description: ESACCI-SST check + variables: + ts: + tsStderr: + additional_datasets: + - {dataset: ESACCI-SST, project: OBS, mip: Amon, tier: 2, + type: sat, version: L4-GHRSST-SSTdepth-OSTIA-GLOB, + start_year: 1992, end_year: 2010} + scripts: null + + + GCP: + description: GCP check + variables: + nbp: + mip: Lmon + fgco2: + mip: Omon + additional_datasets: + - {dataset: GCP, project: OBS, frequency: yr, tier: 2, + type: reanaly, version: 2018, start_year: 1959, end_year: 2017} + scripts: null + + + GHCN: + description: GHCN check + variables: + pr: + additional_datasets: + - {dataset: GHCN, project: OBS, mip: Amon, tier: 2, + type: ground, version: 1, start_year: 1900, end_year: 2014} + scripts: null + + + HadCRUT3: + description: HadCRUT3 check + variables: + tasa: + additional_datasets: + - {dataset: HadCRUT3, project: OBS, mip: Amon, tier: 2, + type: ground, version: 1, start_year: 1850, end_year: 2013} + scripts: null + + + HadCRUT4: + description: HadCRUT4 check + variables: + tas: + tasa: + additional_datasets: + - {dataset: HadCRUT4, project: OBS, mip: Amon, tier: 2, + type: ground, version: 1, start_year: 1850, end_year: 2018} + scripts: null + + + HadISST: + description: HadISST check + variables: + ts: + mip: Amon + tos: + mip: Omon + sic: + mip: OImon + additional_datasets: + - {dataset: HadISST, project: OBS, tier: 2, + type: reanaly, version: 1, start_year: 1870, end_year: 2017} + scripts: null + + + Landschuetzer2016: + description: Landschuetzer2016 check + variables: + dpco2: + fgco2: + spco2: + additional_datasets: + - {dataset: Landschuetzer2016, project: OBS, mip: Omon, tier: 2, + type: clim, version: v2016, start_year: 1982, end_year: 2015} + scripts: null + + + NCEP: + description: NCEP check + variables: + hur: + mip: Amon + hus: + mip: Amon + pr_month: + short_name: pr + mip: Amon + pr_day: + short_name: pr + mip: day + rlut: + mip: day + ta: + mip: Amon + tas: + mip: Amon + ua_month: + short_name: ua + mip: Amon + ua_day: + short_name: ua + mip: day + va_month: + short_name: va + mip: Amon + va_day: + short_name: va + mip: day + wap: + mip: Amon + zg: + mip: Amon + additional_datasets: + - {dataset: NCEP, project: OBS, tier: 2, + type: reanaly, version: 1, start_year: 1948, end_year: 2018} + scripts: null + + + OSI-450: + description: OSI-450 check + variables: + sic_day: + short_name: sic + mip: day + sic_month: + short_name: sic + mip: OImon + areacello: + mip: fx + additional_datasets: + - {dataset: OSI-450-nh, project: OBS, tier: 2, + type: reanaly, version: v2, start_year: 1979, end_year: 2015} + - {dataset: OSI-450-sh, project: OBS, tier: 2, + type: reanaly, version: v2, start_year: 1979, end_year: 2015} + scripts: null + + + NSIDC-0116: + description: NSIDC-0116 check + variables: + areacello: + mip: fx + usi: + mip: day + vsi: + mip: day + additional_datasets: + - {dataset: NSIDC-0116-nh, project: OBS, tier: 3, + type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} + - {dataset: NSIDC-0116-sh, project: OBS, tier: 3, + type: reanaly, version: "4.1", start_year: 1978, end_year: 2018} + scripts: null + + + PATMOS-x: + description: PATMOS-x check + variables: + clt: + additional_datasets: + - {dataset: PATMOS-x, project: OBS, mip: Amon, tier: 2, + type: sat, version: NOAA, start_year: 1982, end_year: 2016} + scripts: null + + + PHC: + description: PHC check + variables: + so: + thetao: + additional_datasets: + - {dataset: PHC, project: OBS6, frequency: yr, mip: Omon, tier: 2, + type: clim, version: 3, start_year: 1950, end_year: 1950} + scripts: null + + + PIOMAS: + description: PIOMAS + variables: + sithick: + mip: day + areacello: + mip: fx + additional_datasets: + - {dataset: PIOMAS, project: OBS, tier: 2, + type: reanaly, version: 2.1, start_year: 1979, end_year: 2018} + scripts: null + + + WOA: + description: WOA check + variables: + so: + mip: Omon + thetao: + mip: Omon + no3: + mip: Oyr + o2: + mip: Oyr + po4: + mip: Oyr + si: + mip: Oyr + additional_datasets: + - {dataset: WOA, project: OBS, tier: 2, + type: clim, version: 2013v2, start_year: 2000, end_year: 2000} + scripts: null ### TIER 3 ################################################################## - # AURA-TES: - # description: AURA-TES check - # variables: - # tro3: - # additional_datasets: - # - {dataset: AURA-TES, project: OBS, mip: Amon, tier: 3, - # type: sat, version: 1, start_year: 2005, end_year: 2011} - # scripts: null - - - # CDS-SATELLITE-LAI-FAPAR: - # description: CDS-SATELLITE-LAI-FAPAR check - # variables: - # fapar: - # lai: - # additional_datasets: - # - {dataset: CDS-SATELLITE-LAI-FAPAR, project: OBS, mip: Lmon, tier: 3, - # type: sat, version: V1, start_year: 1999, end_year: 2013} - # scripts: null - - - # CDS-SATELLITE-SOIL-MOISTURE: - # description: CDS-SATELLITE-SOIL-MOISTURE check - # variables: - # sm: - # smStderr: - # additional_datasets: - # - {dataset: CDS-SATELLITE-SOIL-MOISTURE, project: OBS, mip: day, tier: 3, - # type: sat, version: COMBINED-TCDR-v201812.0.0, - # start_year: 1979, end_year: 2018} - # scripts: null - - - # CDS-UERRA: - # description: CDS-UERRA check - # variables: - # sm: - # additional_datasets: - # - {dataset: CDS-UERRA, project: OBS6, mip: E6hr, frequency: 6hr, tier: 3, - # type: reanaly, version: UERRA-HARMONIE, - # start_year: 1979, end_year: 2018} - # scripts: null - - - # CDS-XCH4: - # description: CDS-XCH4 check - # variables: - # xch4: - # additional_datasets: - # - {dataset: CDS-XCH4, project: OBS, mip: Amon, tier: 3, - # type: sat, version: L3, start_year: 2003, end_year: 2016} - # scripts: null - - - # CDS-XCO2: - # description: CDS-XCO2 check - # variables: - # xco2: - # additional_datasets: - # - {dataset: CDS-XCO2, project: OBS, mip: Amon, tier: 3, - # type: sat, version: L3, start_year: 2003, end_year: 2016} - # scripts: null - - - # CERES_mon: - # description: CERES-SYN1deg check - # variables: - # rlds_month: - # short_name: rlds - # mip: Amon - # rlds_3hr: - # short_name: rlds - # mip: 3hr - # rldscs_month: - # short_name: rldscs - # mip: Amon - # rldscs_3hr: - # short_name: rldscs - # mip: 3hr - # rlus_month: - # short_name: rlus - # mip: Amon - # rlus_3hr: - # short_name: rlus - # mip: 3hr - # rluscs: - # mip: 3hr - # rlut_month: - # short_name: rlut - # mip: Amon - # rlut_3hr: - # short_name: rlut - # mip: 3hr - # rlutcs_month: - # short_name: rlutcs - # mip: Amon - # rlutcs_3hr: - # short_name: rlutcs - # mip: 3hr - # rsds_month: - # short_name: rsds - # mip: Amon - # rsds_3hr: - # short_name: rsds - # mip: 3hr - # rsdscs: - # mip: 3hr - # rsdt: - # mip: Amon - # rsus_month: - # short_name: rsus - # mip: Amon - # rsus_3hr: - # short_name: rsus - # mip: 3hr - # rsuscs: - # mip: 3hr - # rsut_month: - # short_name: rsut - # mip: Amon - # rsut_3hr: - # short_name: rsut - # mip: 3hr - # rsutcs_month: - # short_name: rsutcs - # mip: Amon - # rsutcs_3hr: - # short_name: rsutcs - # mip: 3hr - # additional_datasets: - # - {dataset: CERES-SYN1deg, project: OBS, tier: 3, - # type: sat, version: Ed3A, start_year: 2001, end_year: 2016} - # scripts: null - - - # ERA-Interim: - # description: ERA-Interim check - # variables: - # clivi: - # mip: Amon - # clt_day: - # short_name: clt - # mip: day - # clt_month: - # short_name: clt - # mip: Amon - # clwvi: - # mip: Amon - # evspsbl_day: - # short_name: evspsbl - # mip: Eday - # evspsbl_month: - # short_name: evspsbl - # mip: Amon - # hfds: - # mip: Omon - # hur: - # mip: Amon - # hus: - # mip: Amon - # orog: - # mip: fx - # pr_day: - # short_name: pr - # mip: day - # pr_month: - # short_name: pr - # mip: Amon - # prsn_day: - # short_name: prsn - # mip: day - # prsn_month: - # short_name: prsn - # mip: Amon - # prw: - # mip: Amon - # ps_day: - # short_name: ps - # mip: CFday - # ps_month: - # short_name: ps - # mip: Amon - # psl_day: - # short_name: psl - # mip: day - # psl_month: - # short_name: psl - # mip: Amon - # rlds_day: - # short_name: rlds - # mip: day - # rsds_day: - # short_name: rsds - # mip: day - # rsds_month: - # short_name: rsds - # mip: Amon - # rsdt_day: - # short_name: rsdt - # mip: CFday - # rsdt_month: - # short_name: rsdt - # mip: Amon - # rss_day: - # short_name: rss - # mip: day - # rss_month: - # short_name: rss - # mip: Emon - # sftlf: - # mip: fx - # ta: - # mip: Amon - # tas_day: - # short_name: tas - # mip: day - # tas_month: - # short_name: tas - # mip: Amon - # tasmax: - # mip: day - # tasmin: - # mip: day - # tauu: - # mip: Amon - # tauv: - # mip: Amon - # tdps_day: - # short_name: tdps - # mip: Eday - # tdps_month: - # short_name: tdps - # mip: Emon - # tos: - # mip: Omon - # ts_day: - # short_name: ts - # mip: Eday - # ts_month: - # short_name: ts - # mip: Amon - # tsn_month: - # mip: LImon - # tsn_day: - # mip: Eday - # ua: - # mip: Amon - # uas_day: - # short_name: uas - # mip: day - # uas_month: - # short_name: uas - # mip: Amon - # va: - # mip: Amon - # vas_day: - # short_name: vas - # mip: day - # vas_month: - # short_name: vas - # mip: Amon - # wap: - # mip: Amon - # zg_day: - # short_name: zg - # mip: day - # zg_month: - # short_name: zg - # mip: Amon - # additional_datasets: - # - {dataset: ERA-Interim, project: OBS6, tier: 3, - # type: reanaly, version: 1, start_year: 1979, end_year: 2018} - # scripts: null + AURA-TES: + description: AURA-TES check + variables: + tro3: + additional_datasets: + - {dataset: AURA-TES, project: OBS, mip: Amon, tier: 3, + type: sat, version: 1, start_year: 2005, end_year: 2011} + scripts: null + + + CDS-SATELLITE-LAI-FAPAR: + description: CDS-SATELLITE-LAI-FAPAR check + variables: + fapar: + lai: + additional_datasets: + - {dataset: CDS-SATELLITE-LAI-FAPAR, project: OBS, mip: Lmon, tier: 3, + type: sat, version: V1, start_year: 1999, end_year: 2013} + scripts: null + + + CDS-SATELLITE-SOIL-MOISTURE: + description: CDS-SATELLITE-SOIL-MOISTURE check + variables: + sm: + smStderr: + additional_datasets: + - {dataset: CDS-SATELLITE-SOIL-MOISTURE, project: OBS, mip: day, tier: 3, + type: sat, version: COMBINED-TCDR-v201812.0.0, + start_year: 1979, end_year: 2018} + scripts: null + + + CDS-UERRA: + description: CDS-UERRA check + variables: + sm: + additional_datasets: + - {dataset: CDS-UERRA, project: OBS6, mip: E6hr, frequency: 6hr, tier: 3, + type: reanaly, version: UERRA-HARMONIE, + start_year: 1979, end_year: 2018} + scripts: null + + + CDS-XCH4: + description: CDS-XCH4 check + variables: + xch4: + additional_datasets: + - {dataset: CDS-XCH4, project: OBS, mip: Amon, tier: 3, + type: sat, version: L3, start_year: 2003, end_year: 2016} + scripts: null + + + CDS-XCO2: + description: CDS-XCO2 check + variables: + xco2: + additional_datasets: + - {dataset: CDS-XCO2, project: OBS, mip: Amon, tier: 3, + type: sat, version: L3, start_year: 2003, end_year: 2016} + scripts: null + + + CERES_mon: + description: CERES-SYN1deg check + variables: + rlds_month: + short_name: rlds + mip: Amon + rlds_3hr: + short_name: rlds + mip: 3hr + rldscs_month: + short_name: rldscs + mip: Amon + rldscs_3hr: + short_name: rldscs + mip: 3hr + rlus_month: + short_name: rlus + mip: Amon + rlus_3hr: + short_name: rlus + mip: 3hr + rluscs: + mip: 3hr + rlut_month: + short_name: rlut + mip: Amon + rlut_3hr: + short_name: rlut + mip: 3hr + rlutcs_month: + short_name: rlutcs + mip: Amon + rlutcs_3hr: + short_name: rlutcs + mip: 3hr + rsds_month: + short_name: rsds + mip: Amon + rsds_3hr: + short_name: rsds + mip: 3hr + rsdscs: + mip: 3hr + rsdt: + mip: Amon + rsus_month: + short_name: rsus + mip: Amon + rsus_3hr: + short_name: rsus + mip: 3hr + rsuscs: + mip: 3hr + rsut_month: + short_name: rsut + mip: Amon + rsut_3hr: + short_name: rsut + mip: 3hr + rsutcs_month: + short_name: rsutcs + mip: Amon + rsutcs_3hr: + short_name: rsutcs + mip: 3hr + additional_datasets: + - {dataset: CERES-SYN1deg, project: OBS, tier: 3, + type: sat, version: Ed3A, start_year: 2001, end_year: 2016} + scripts: null + + + ERA-Interim: + description: ERA-Interim check + variables: + clivi: + mip: Amon + clt_day: + short_name: clt + mip: day + clt_month: + short_name: clt + mip: Amon + clwvi: + mip: Amon + evspsbl_day: + short_name: evspsbl + mip: Eday + evspsbl_month: + short_name: evspsbl + mip: Amon + hfds: + mip: Omon + hur: + mip: Amon + hus: + mip: Amon + orog: + mip: fx + pr_day: + short_name: pr + mip: day + pr_month: + short_name: pr + mip: Amon + prsn_day: + short_name: prsn + mip: day + prsn_month: + short_name: prsn + mip: Amon + prw: + mip: Amon + ps_day: + short_name: ps + mip: CFday + ps_month: + short_name: ps + mip: Amon + psl_day: + short_name: psl + mip: day + psl_month: + short_name: psl + mip: Amon + rlds_day: + short_name: rlds + mip: day + rsds_day: + short_name: rsds + mip: day + rsds_month: + short_name: rsds + mip: Amon + rsdt_day: + short_name: rsdt + mip: CFday + rsdt_month: + short_name: rsdt + mip: Amon + rss_day: + short_name: rss + mip: day + rss_month: + short_name: rss + mip: Emon + sftlf: + mip: fx + ta: + mip: Amon + tas_day: + short_name: tas + mip: day + tas_month: + short_name: tas + mip: Amon + tasmax: + mip: day + tasmin: + mip: day + tauu: + mip: Amon + tauv: + mip: Amon + tdps_day: + short_name: tdps + mip: Eday + tdps_month: + short_name: tdps + mip: Emon + tos: + mip: Omon + ts_day: + short_name: ts + mip: Eday + ts_month: + short_name: ts + mip: Amon + tsn_month: + short_name: tsn + mip: LImon + tsn_day: + short_name: tsn + mip: Eday + ua: + mip: Amon + uas_day: + short_name: uas + mip: day + uas_month: + short_name: uas + mip: Amon + va: + mip: Amon + vas_day: + short_name: vas + mip: day + vas_month: + short_name: vas + mip: Amon + wap: + mip: Amon + zg_day: + short_name: zg + mip: day + zg_month: + short_name: zg + mip: Amon + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, tier: 3, + type: reanaly, version: 1, start_year: 1979, end_year: 2018} + scripts: null + + + ERA-Interim-Land: + description: ERA-Interim-Land check + variables: + sm: + mip: Lmon + additional_datasets: + - {dataset: ERA-Interim-Land, project: OBS6, tier: 3, + type: reanaly, version: 1, start_year: 1979, end_year: 2010} + scripts: null ERA5: @@ -685,134 +717,145 @@ diagnostics: scripts: null - # HWSD: - # description: HWSD check - # variables: - # areacella: - # mip: fx - # cSoil: - # mip: Lmon - # sftlf: - # mip: fx - # additional_datasets: - # - {dataset: HWSD, project: OBS, tier: 3, type: reanaly, version: 1.2, - # start_year: 2000, end_year: 2000} - # scripts: null - - - # JMA-TRANSCOM: - # description: JMA-TRANSCOM check - # variables: - # nbp: - # mip: Lmon - # fgco2: - # mip: Omon - # additional_datasets: - # - {dataset: JMA-TRANSCOM, project: OBS, tier: 3, type: reanaly, - # version: 2018, start_year: 1985, end_year: 2016} - # scripts: null - - - # FLUXCOM: - # description: FLUXCOM check - # variables: - # gpp: - # additional_datasets: - # - {dataset: FLUXCOM, project: OBS, mip: Lmon, tier: 3, type: reanaly, - # version: ANN-v1, start_year: 1980, end_year: 2013} - # scripts: null - - - # LAI3g: - # description: LAI3g check - # variables: - # lai: - # additional_datasets: - # - {dataset: LAI3g, project: OBS, mip: Lmon, tier: 3, - # type: reanaly, version: 1_regridded, start_year: 1981, end_year: 2018} - # scripts: null - - - # LandFlux-EVAL: - # description: LandFlux-EVAL check - # variables: - # et: - # etStderr: - # additional_datasets: - # - {dataset: LandFlux-EVAL, project: OBS, mip: Lmon, tier: 3, - # type: reanaly, version: Oct13, start_year: 1989, end_year: 2005} - # scripts: null - - - # MERRA2: - # description: MERRA2 check - # variables: - # sm: - # additional_datasets: - # - {dataset: MERRA2, project: OBS6, mip: Lmon, tier: 3, - # type: reanaly, version: 5.12.4, start_year: 1980, end_year: 2018} - # scripts: null - - - # MTE: - # description: MTE check - # variables: - # gpp: - # gppStderr: - # additional_datasets: - # - {dataset: MTE, project: OBS, tier: 3, mip: Lmon, - # type: reanaly, version: May12, start_year: 1982, end_year: 2011} - # scripts: null - - - # MODIS: - # description: MODIS check - # variables: - # od550aer: - # mip: aero - # clivi: - # mip: Amon - # clwvi: - # mip: Amon - # clt: - # mip: Amon - # lwpStderr: - # mip: Amon - # iwpStderr: - # mip: Amon - # additional_datasets: - # - {dataset: MODIS, project: OBS, tier: 3, - # type: sat, version: MYD08-M3, start_year: 2003, end_year: 2018} - # scripts: null - - - # NDP: - # description: NDP check - # variables: - # cVeg: - # additional_datasets: - # - {dataset: NDP, project: OBS, tier: 3, mip: Lmon, - # type: reanaly, version: 017b, start_year: 2000, end_year: 2000} - # scripts: null - - - # NIWA-BS: - # description: NIWA-BS check - # variables: - # toz: - # tozStderr: - # additional_datasets: - # - {dataset: NIWA-BS, project: OBS, mip: Amon, tier: 3, - # type: sat, version: v3.3, start_year: 1979, end_year: 2016} - # scripts: null - - - # UWisc: - # description: UWisc check - # variables: - # lwp: - # lwpStderr: - # additional_datasets: - # - {dataset: UWisc, project: OBS, mip: Amon, tier: 3, - # type: sat, version: v2, start_year: 1988, end_year: 2007} - # scripts: null + HWSD: + description: HWSD check + variables: + areacella: + mip: fx + cSoil: + mip: Lmon + sftlf: + mip: fx + additional_datasets: + - {dataset: HWSD, project: OBS, tier: 3, type: reanaly, version: 1.2, + start_year: 2000, end_year: 2000} + scripts: null + + + JMA-TRANSCOM: + description: JMA-TRANSCOM check + variables: + nbp: + mip: Lmon + fgco2: + mip: Omon + additional_datasets: + - {dataset: JMA-TRANSCOM, project: OBS, tier: 3, type: reanaly, + version: 2018, start_year: 1985, end_year: 2016} + scripts: null + + + FLUXCOM: + description: FLUXCOM check + variables: + gpp: + additional_datasets: + - {dataset: FLUXCOM, project: OBS, mip: Lmon, tier: 3, type: reanaly, + version: ANN-v1, start_year: 1980, end_year: 2013} + scripts: null + + + LAI3g: + description: LAI3g check + variables: + lai: + additional_datasets: + - {dataset: LAI3g, project: OBS, mip: Lmon, tier: 3, + type: reanaly, version: 1_regridded, start_year: 1981, end_year: 2018} + scripts: null + + + LandFlux-EVAL: + description: LandFlux-EVAL check + variables: + et: + etStderr: + additional_datasets: + - {dataset: LandFlux-EVAL, project: OBS, mip: Lmon, tier: 3, + type: reanaly, version: Oct13, start_year: 1989, end_year: 2005} + scripts: null + + + MAC-LWP: + description: MAC-LWP check + variables: + lwp: + lwpStderr: + additional_datasets: + - {dataset: MAC-LWP, project: OBS, mip: Amon, tier: 3, + type: sat, version: v1, start_year: 1988, end_year: 2016} + scripts: null + + + MERRA2: + description: MERRA2 check + variables: + sm: + additional_datasets: + - {dataset: MERRA2, project: OBS6, mip: Lmon, tier: 3, + type: reanaly, version: 5.12.4, start_year: 1980, end_year: 2018} + scripts: null + + + MTE: + description: MTE check + variables: + gpp: + gppStderr: + additional_datasets: + - {dataset: MTE, project: OBS, tier: 3, mip: Lmon, + type: reanaly, version: May12, start_year: 1982, end_year: 2011} + scripts: null + + + MODIS: + description: MODIS check + variables: + od550aer: + mip: aero + clivi: + mip: Amon + clwvi: + mip: Amon + clt: + mip: Amon + lwpStderr: + mip: Amon + iwpStderr: + mip: Amon + additional_datasets: + - {dataset: MODIS, project: OBS, tier: 3, + type: sat, version: MYD08-M3, start_year: 2003, end_year: 2018} + scripts: null + + + NDP: + description: NDP check + variables: + cVeg: + additional_datasets: + - {dataset: NDP, project: OBS, tier: 3, mip: Lmon, + type: reanaly, version: 017b, start_year: 2000, end_year: 2000} + scripts: null + + + NIWA-BS: + description: NIWA-BS check + variables: + toz: + tozStderr: + additional_datasets: + - {dataset: NIWA-BS, project: OBS, mip: Amon, tier: 3, + type: sat, version: v3.3, start_year: 1979, end_year: 2016} + scripts: null + + + UWisc: + description: UWisc check + variables: + lwp: + lwpStderr: + additional_datasets: + - {dataset: UWisc, project: OBS, mip: Amon, tier: 3, + type: sat, version: v2, start_year: 1988, end_year: 2007} + scripts: null From 1fbdfe4acfd38c551490c5e0e329e8789bca2135 Mon Sep 17 00:00:00 2001 From: Jerom Aerts Date: Tue, 4 Feb 2020 14:33:58 +0100 Subject: [PATCH 10/21] Fixed bug in loop and basename --- esmvaltool/diag_scripts/cmorizers/era5.py | 10 +- esmvaltool/recipes/cmorizers/recipe_era5.yml | 592 +++++++++---------- 2 files changed, 302 insertions(+), 300 deletions(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index ef60e3f99f..35697a12bd 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -10,11 +10,13 @@ def main(cfg): """Rename preprocessed native6 file.""" fixed_files = cfg['input_data'] - for file in fixed_files: + + for file, dictionary in fixed_files.items(): basename, _ext = os.path.splitext(os.path.basename(file)) basename = basename.replace('native', 'OBS') - if cfg['diagnostic'] == 'daily': - basename.replace('E1hr', 'Eday') + + if dictionary['diagnostic'] == 'daily': + basename = basename.replace('E1hr', 'Eday') outfile = get_diagnostic_filename(basename, cfg) shutil.move(file, outfile) @@ -22,4 +24,4 @@ def main(cfg): if __name__ == '__main__': with run_diagnostic() as config: - main(config) + main(config) \ No newline at end of file diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 7b0310948e..3f62795f1d 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -15,7 +15,7 @@ documentation: - ewatercycle datasets: - - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1990, end_year: 1990} + - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1993, end_year: 1993} preprocessors: daily_mean: @@ -29,315 +29,315 @@ preprocessors: operator: max diagnostics: - hourly: - description: CMORize hourly ERA5 data - scripts: - script: - script: cmorizers/era5.py - variables: - clt: - mip: E1hr - era5_name: total_cloud_cover - era5_freq: hourly - evspsbl: - mip: E1hr - era5_name: evaporation - era5_freq: hourly - evspsblpot: - mip: E1hr - era5_name: potential_evaporation - era5_freq: hourly - mrro: - mip: E1hr - era5_name: runoff - era5_freq: hourly - orog: - mip: fx - era5_name: orography - era5_freq: hourly - pr: - mip: E1hr - era5_name: total_precipitation - era5_freq: hourly - prsn: - mip: E1hr - era5_name: snowfall - era5_freq: hourly - psl: - mip: E1hr - era5_name: mean_sea_level_pressure - era5_freq: hourly - ps: - mip: E1hr - era5_name: surface_pressure - era5_freq: hourly - ptype: - mip: E1hr - era5_name: precipitation_type - era5_freq: hourly - rlds: - mip: E1hr - era5_name: surface_thermal_radiation_downwards - era5_freq: hourly - rls: - mip: E1hr - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: hourly - rsds: - mip: E1hr - era5_name: surface_solar_radiation_downwards - era5_freq: hourly - rsdt: - mip: E1hr - era5_name: toa_incident_solar_radiation - era5_freq: hourly - rss: - mip: E1hr - era5_name: surface_net_solar_radiation - era5_freq: hourly - tas: - mip: E1hr - era5_name: 2m_temperature - era5_freq: hourly - tasmax: - mip: E1hr - era5_name: maximum_2m_temperature_since_previous_post_processing - era5_freq: hourly - tasmin: - mip: E1hr - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: hourly - tdps: - mip: E1hr - era5_name: 2m_dewpoint_temperature - era5_freq: hourly - ts: - mip: E1hr - era5_name: skin_temperature - era5_freq: hourly - tsn: - mip: E1hr - era5_name: temperature_of_snow_layer - era5_freq: hourly - uas: - mip: E1hr - era5_name: 10m_u_component_of_wind - era5_freq: hourly - vas: - mip: E1hr - era5_name: 10m_v_component_of_wind - era5_freq: hourly + # hourly: + # description: CMORize hourly ERA5 data + # scripts: + # script: + # script: cmorizers/era5.py + # variables: + # clt: + # mip: E1hr + # era5_name: total_cloud_cover + # era5_freq: hourly + # evspsbl: + # mip: E1hr + # era5_name: evaporation + # era5_freq: hourly + # evspsblpot: + # mip: E1hr + # era5_name: potential_evaporation + # era5_freq: hourly + # mrro: + # mip: E1hr + # era5_name: runoff + # era5_freq: hourly + # orog: + # mip: fx + # era5_name: orography + # era5_freq: hourly + # pr: + # mip: E1hr + # era5_name: total_precipitation + # era5_freq: hourly + # prsn: + # mip: E1hr + # era5_name: snowfall + # era5_freq: hourly + # psl: + # mip: E1hr + # era5_name: mean_sea_level_pressure + # era5_freq: hourly + # ps: + # mip: E1hr + # era5_name: surface_pressure + # era5_freq: hourly + # ptype: + # mip: E1hr + # era5_name: precipitation_type + # era5_freq: hourly + # rlds: + # mip: E1hr + # era5_name: surface_thermal_radiation_downwards + # era5_freq: hourly + # rls: + # mip: E1hr + # era5_name: mean_surface_net_long_wave_radiation_flux + # era5_freq: hourly + # rsds: + # mip: E1hr + # era5_name: surface_solar_radiation_downwards + # era5_freq: hourly + # rsdt: + # mip: E1hr + # era5_name: toa_incident_solar_radiation + # era5_freq: hourly + # rss: + # mip: E1hr + # era5_name: surface_net_solar_radiation + # era5_freq: hourly + # tas: + # mip: E1hr + # era5_name: 2m_temperature + # era5_freq: hourly + # tasmax: + # mip: E1hr + # era5_name: maximum_2m_temperature_since_previous_post_processing + # era5_freq: hourly + # tasmin: + # mip: E1hr + # era5_name: minimum_2m_temperature_since_previous_post_processing + # era5_freq: hourly + # tdps: + # mip: E1hr + # era5_name: 2m_dewpoint_temperature + # era5_freq: hourly + # ts: + # mip: E1hr + # era5_name: skin_temperature + # era5_freq: hourly + # tsn: + # mip: E1hr + # era5_name: temperature_of_snow_layer + # era5_freq: hourly + # uas: + # mip: E1hr + # era5_name: 10m_u_component_of_wind + # era5_freq: hourly + # vas: + # mip: E1hr + # era5_name: 10m_v_component_of_wind + # era5_freq: hourly daily: description: Create daily ERA5 data scripts: script: script: cmorizers/era5.py variables: - clt: - mip: E1hr - era5_name: total_cloud_cover - era5_freq: hourly - preprocessor: daily_mean - evspsbl: - mip: E1hr - era5_name: evaporation - era5_freq: hourly - preprocessor: daily_mean - evspsblpot: - mip: E1hr - era5_name: potential_evaporation - era5_freq: hourly - preprocessor: daily_mean - mrro: - mip: E1hr - era5_name: runoff - era5_freq: hourly - preprocessor: daily_mean - orog: - mip: fx - era5_name: orography - era5_freq: hourly + # clt: + # mip: E1hr + # era5_name: total_cloud_cover + # era5_freq: hourly + # preprocessor: daily_mean + # evspsbl: + # mip: E1hr + # era5_name: evaporation + # era5_freq: hourly + # preprocessor: daily_mean + # evspsblpot: + # mip: E1hr + # era5_name: potential_evaporation + # era5_freq: hourly + # preprocessor: daily_mean + # mrro: + # mip: E1hr + # era5_name: runoff + # era5_freq: hourly + # preprocessor: daily_mean + # orog: + # mip: fx + # era5_name: orography + # era5_freq: hourly pr: mip: E1hr era5_name: total_precipitation era5_freq: hourly preprocessor: daily_mean - prsn: - mip: E1hr - era5_name: snowfall - era5_freq: hourly - preprocessor: daily_mean - ps: - mip: E1hr - era5_name: surface_pressure - era5_freq: hourly - preprocessor: daily_mean - psl: - mip: E1hr - era5_name: mean_sea_level_pressure - era5_freq: hourly - preprocessor: daily_mean - rlds: - mip: E1hr - era5_name: surface_thermal_radiation_downwards - era5_freq: hourly - preprocessor: daily_mean - rls: - mip: E1hr - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: hourly - preprocessor: daily_mean - rsds: - mip: E1hr - era5_name: surface_solar_radiation_downwards - era5_freq: hourly - preprocessor: daily_mean - rsdt: - mip: E1hr - era5_name: toa_incident_solar_radiation - era5_freq: hourly - preprocessor: daily_mean - rss: - mip: E1hr - era5_name: surface_net_solar_radiation - era5_freq: hourly - preprocessor: daily_mean + # prsn: + # mip: E1hr + # era5_name: snowfall + # era5_freq: hourly + # preprocessor: daily_mean + # ps: + # mip: E1hr + # era5_name: surface_pressure + # era5_freq: hourly + # preprocessor: daily_mean + # psl: + # mip: E1hr + # era5_name: mean_sea_level_pressure + # era5_freq: hourly + # preprocessor: daily_mean + # rlds: + # mip: E1hr + # era5_name: surface_thermal_radiation_downwards + # era5_freq: hourly + # preprocessor: daily_mean + # rls: + # mip: E1hr + # era5_name: mean_surface_net_long_wave_radiation_flux + # era5_freq: hourly + # preprocessor: daily_mean + # rsds: + # mip: E1hr + # era5_name: surface_solar_radiation_downwards + # era5_freq: hourly + # preprocessor: daily_mean + # rsdt: + # mip: E1hr + # era5_name: toa_incident_solar_radiation + # era5_freq: hourly + # preprocessor: daily_mean + # rss: + # mip: E1hr + # era5_name: surface_net_solar_radiation + # era5_freq: hourly + # preprocessor: daily_mean tas: mip: E1hr era5_name: 2m_temperature era5_freq: hourly preprocessor: daily_mean - tasmax: - mip: E1hr - era5_name: maximum_2m_temperature_since_previous_post_processing - era5_freq: hourly - preprocessor: daily_max - tasmin: - mip: E1hr - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: hourly - preprocessor: daily_min - tdps: - mip: E1hr - era5_name: 2m_dewpoint_temperature - era5_freq: hourly - preprocessor: daily_mean - ts: - mip: E1hr - era5_name: skin_temperature - era5_freq: hourly - preprocessor: daily_mean - tsn: - mip: E1hr - era5_name: temperature_of_snow_layer - era5_freq: hourly - preprocessor: daily_mean - uas: - mip: E1hr - era5_name: 10m_u_component_of_wind - era5_freq: hourly - preprocessor: daily_mean - vas: - mip: E1hr - era5_name: 10m_v_component_of_wind - era5_freq: hourly - preprocessor: daily_mean + # tasmax: + # mip: E1hr + # era5_name: maximum_2m_temperature_since_previous_post_processing + # era5_freq: hourly + # preprocessor: daily_max + # tasmin: + # mip: E1hr + # era5_name: minimum_2m_temperature_since_previous_post_processing + # era5_freq: hourly + # preprocessor: daily_min + # tdps: + # mip: E1hr + # era5_name: 2m_dewpoint_temperature + # era5_freq: hourly + # preprocessor: daily_mean + # ts: + # mip: E1hr + # era5_name: skin_temperature + # era5_freq: hourly + # preprocessor: daily_mean + # tsn: + # mip: E1hr + # era5_name: temperature_of_snow_layer + # era5_freq: hourly + # preprocessor: daily_mean + # uas: + # mip: E1hr + # era5_name: 10m_u_component_of_wind + # era5_freq: hourly + # preprocessor: daily_mean + # vas: + # mip: E1hr + # era5_name: 10m_v_component_of_wind + # era5_freq: hourly + # preprocessor: daily_mean - monthly: - description: CMORize monthly ERA5 data - scripts: - script: - script: cmorizers/era5.py - variables: - clt: - mip: Amon - era5_name: total_cloud_cover - era5_freq: monthly - evspsbl: - mip: Amon - era5_name: evaporation - era5_freq: monthly - evspsblpot: - mip: Amon - era5_name: potential_evaporation - era5_freq: monthly - mrro: - mip: Amon - era5_name: runoff - era5_freq: monthly - orog: - mip: Amon - era5_name: orography - era5_freq: monthly - pr: - mip: Amon - era5_name: total_precipitation - era5_freq: monthly - prsn: - mip: Amon - era5_name: snowfall - era5_freq: monthly - psl: - mip: Amon - era5_name: mean_sea_level_pressure - era5_freq: monthly - ps: - mip: Amon - era5_name: surface_pressure - era5_freq: monthly - ptype: - mip: Amon - era5_name: precipitation_type - era5_freq: monthly - rlds: - mip: Amon - era5_name: surface_thermal_radiation_downwards - era5_freq: monthly - rls: - mip: Amon - era5_name: mean_surface_net_long_wave_radiation_flux - era5_freq: monthly - rsds: - mip: Amon - era5_name: surface_solar_radiation_downwards - era5_freq: monthly - rsdt: - mip: Amon - era5_name: toa_incident_solar_radiation - era5_freq: monthly - rss: - mip: Amon - era5_name: surface_net_solar_radiation - era5_freq: monthly - tas: - mip: Amon - era5_name: 2m_temperature - era5_freq: monthly - tasmax: - mip: Amon - era5_name: maximum_2m_temperature_since_previous_post_processing - era5_freq: monthly - tasmin: - mip: Amon - era5_name: minimum_2m_temperature_since_previous_post_processing - era5_freq: monthly - tdps: - mip: Amon - era5_name: 2m_dewpoint_temperature - era5_freq: monthly - ts: - mip: Amon - era5_name: skin_temperature - era5_freq: monthly - tsn: - mip: Amon - era5_name: temperature_of_snow_layer - era5_freq: monthly - uas: - mip: Amon - era5_name: 10m_u_component_of_wind - era5_freq: monthly - vas: - mip: Amon - era5_name: 10m_v_component_of_wind - era5_freq: monthly + # monthly: + # description: CMORize monthly ERA5 data + # scripts: + # script: + # script: cmorizers/era5.py + # variables: + # clt: + # mip: Amon + # era5_name: total_cloud_cover + # era5_freq: monthly + # evspsbl: + # mip: Amon + # era5_name: evaporation + # era5_freq: monthly + # evspsblpot: + # mip: Amon + # era5_name: potential_evaporation + # era5_freq: monthly + # mrro: + # mip: Amon + # era5_name: runoff + # era5_freq: monthly + # orog: + # mip: Amon + # era5_name: orography + # era5_freq: monthly + # pr: + # mip: Amon + # era5_name: total_precipitation + # era5_freq: monthly + # prsn: + # mip: Amon + # era5_name: snowfall + # era5_freq: monthly + # psl: + # mip: Amon + # era5_name: mean_sea_level_pressure + # era5_freq: monthly + # ps: + # mip: Amon + # era5_name: surface_pressure + # era5_freq: monthly + # ptype: + # mip: Amon + # era5_name: precipitation_type + # era5_freq: monthly + # rlds: + # mip: Amon + # era5_name: surface_thermal_radiation_downwards + # era5_freq: monthly + # rls: + # mip: Amon + # era5_name: mean_surface_net_long_wave_radiation_flux + # era5_freq: monthly + # rsds: + # mip: Amon + # era5_name: surface_solar_radiation_downwards + # era5_freq: monthly + # rsdt: + # mip: Amon + # era5_name: toa_incident_solar_radiation + # era5_freq: monthly + # rss: + # mip: Amon + # era5_name: surface_net_solar_radiation + # era5_freq: monthly + # tas: + # mip: Amon + # era5_name: 2m_temperature + # era5_freq: monthly + # tasmax: + # mip: Amon + # era5_name: maximum_2m_temperature_since_previous_post_processing + # era5_freq: monthly + # tasmin: + # mip: Amon + # era5_name: minimum_2m_temperature_since_previous_post_processing + # era5_freq: monthly + # tdps: + # mip: Amon + # era5_name: 2m_dewpoint_temperature + # era5_freq: monthly + # ts: + # mip: Amon + # era5_name: skin_temperature + # era5_freq: monthly + # tsn: + # mip: Amon + # era5_name: temperature_of_snow_layer + # era5_freq: monthly + # uas: + # mip: Amon + # era5_name: 10m_u_component_of_wind + # era5_freq: monthly + # vas: + # mip: Amon + # era5_name: 10m_v_component_of_wind + # era5_freq: monthly From 9d4f91fc6cc46761959a374fa7c09f5e8bac651d Mon Sep 17 00:00:00 2001 From: Mattia Righi Date: Wed, 5 Feb 2020 10:31:13 +0100 Subject: [PATCH 11/21] Remove double entry introduced by merge --- esmvaltool/recipes/examples/recipe_check_obs.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/esmvaltool/recipes/examples/recipe_check_obs.yml b/esmvaltool/recipes/examples/recipe_check_obs.yml index 6d7ee67386..ca7136cb1f 100644 --- a/esmvaltool/recipes/examples/recipe_check_obs.yml +++ b/esmvaltool/recipes/examples/recipe_check_obs.yml @@ -787,17 +787,6 @@ diagnostics: scripts: null - MAC-LWP: - description: MAC-LWP check - variables: - lwp: - lwpStderr: - additional_datasets: - - {dataset: MAC-LWP, project: OBS, mip: Amon, tier: 3, - type: sat, version: v1, start_year: 1988, end_year: 2016} - scripts: null - - MERRA2: description: MERRA2 check variables: From a5a6a1b28f0aa0a4d02d14034bdd5e57b2fb1f32 Mon Sep 17 00:00:00 2001 From: Peter9192 Date: Wed, 5 Feb 2020 16:53:17 +0100 Subject: [PATCH 12/21] Update esmvaltool/recipes/cmorizers/recipe_era5.yml Co-Authored-By: Mattia Righi --- esmvaltool/recipes/cmorizers/recipe_era5.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 3f62795f1d..5c39000875 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -15,7 +15,7 @@ documentation: - ewatercycle datasets: - - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1993, end_year: 1993} + - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1990, end_year: 1990} preprocessors: daily_mean: From 10b93230652a8c7e86cf1edb9426ad89e6a2d374 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Thu, 6 Feb 2020 10:00:50 +0100 Subject: [PATCH 13/21] Remove unavailabe montly vars and uncomment --- esmvaltool/recipes/cmorizers/recipe_era5.yml | 574 +++++++++---------- 1 file changed, 279 insertions(+), 295 deletions(-) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 5c39000875..118aa18efd 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -29,315 +29,299 @@ preprocessors: operator: max diagnostics: - # hourly: - # description: CMORize hourly ERA5 data - # scripts: - # script: - # script: cmorizers/era5.py - # variables: - # clt: - # mip: E1hr - # era5_name: total_cloud_cover - # era5_freq: hourly - # evspsbl: - # mip: E1hr - # era5_name: evaporation - # era5_freq: hourly - # evspsblpot: - # mip: E1hr - # era5_name: potential_evaporation - # era5_freq: hourly - # mrro: - # mip: E1hr - # era5_name: runoff - # era5_freq: hourly - # orog: - # mip: fx - # era5_name: orography - # era5_freq: hourly - # pr: - # mip: E1hr - # era5_name: total_precipitation - # era5_freq: hourly - # prsn: - # mip: E1hr - # era5_name: snowfall - # era5_freq: hourly - # psl: - # mip: E1hr - # era5_name: mean_sea_level_pressure - # era5_freq: hourly - # ps: - # mip: E1hr - # era5_name: surface_pressure - # era5_freq: hourly - # ptype: - # mip: E1hr - # era5_name: precipitation_type - # era5_freq: hourly - # rlds: - # mip: E1hr - # era5_name: surface_thermal_radiation_downwards - # era5_freq: hourly - # rls: - # mip: E1hr - # era5_name: mean_surface_net_long_wave_radiation_flux - # era5_freq: hourly - # rsds: - # mip: E1hr - # era5_name: surface_solar_radiation_downwards - # era5_freq: hourly - # rsdt: - # mip: E1hr - # era5_name: toa_incident_solar_radiation - # era5_freq: hourly - # rss: - # mip: E1hr - # era5_name: surface_net_solar_radiation - # era5_freq: hourly - # tas: - # mip: E1hr - # era5_name: 2m_temperature - # era5_freq: hourly - # tasmax: - # mip: E1hr - # era5_name: maximum_2m_temperature_since_previous_post_processing - # era5_freq: hourly - # tasmin: - # mip: E1hr - # era5_name: minimum_2m_temperature_since_previous_post_processing - # era5_freq: hourly - # tdps: - # mip: E1hr - # era5_name: 2m_dewpoint_temperature - # era5_freq: hourly - # ts: - # mip: E1hr - # era5_name: skin_temperature - # era5_freq: hourly - # tsn: - # mip: E1hr - # era5_name: temperature_of_snow_layer - # era5_freq: hourly - # uas: - # mip: E1hr - # era5_name: 10m_u_component_of_wind - # era5_freq: hourly - # vas: - # mip: E1hr - # era5_name: 10m_v_component_of_wind - # era5_freq: hourly + hourly: + description: CMORize hourly ERA5 data + scripts: + script: + script: cmorizers/era5.py + variables: + clt: + mip: E1hr + era5_name: total_cloud_cover + era5_freq: hourly + evspsbl: + mip: E1hr + era5_name: evaporation + era5_freq: hourly + evspsblpot: + mip: E1hr + era5_name: potential_evaporation + era5_freq: hourly + mrro: + mip: E1hr + era5_name: runoff + era5_freq: hourly + orog: + mip: fx + era5_name: orography + era5_freq: hourly + pr: + mip: E1hr + era5_name: total_precipitation + era5_freq: hourly + prsn: + mip: E1hr + era5_name: snowfall + era5_freq: hourly + psl: + mip: E1hr + era5_name: mean_sea_level_pressure + era5_freq: hourly + ps: + mip: E1hr + era5_name: surface_pressure + era5_freq: hourly + ptype: + mip: E1hr + era5_name: precipitation_type + era5_freq: hourly + rlds: + mip: E1hr + era5_name: surface_thermal_radiation_downwards + era5_freq: hourly + rls: + mip: E1hr + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: hourly + rsds: + mip: E1hr + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation + era5_freq: hourly + rss: + mip: E1hr + era5_name: surface_net_solar_radiation + era5_freq: hourly + tas: + mip: E1hr + era5_name: 2m_temperature + era5_freq: hourly + tasmax: + mip: E1hr + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: hourly + tasmin: + mip: E1hr + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature + era5_freq: hourly + ts: + mip: E1hr + era5_name: skin_temperature + era5_freq: hourly + tsn: + mip: E1hr + era5_name: temperature_of_snow_layer + era5_freq: hourly + uas: + mip: E1hr + era5_name: 10m_u_component_of_wind + era5_freq: hourly + vas: + mip: E1hr + era5_name: 10m_v_component_of_wind + era5_freq: hourly daily: description: Create daily ERA5 data scripts: script: script: cmorizers/era5.py variables: - # clt: - # mip: E1hr - # era5_name: total_cloud_cover - # era5_freq: hourly - # preprocessor: daily_mean - # evspsbl: - # mip: E1hr - # era5_name: evaporation - # era5_freq: hourly - # preprocessor: daily_mean - # evspsblpot: - # mip: E1hr - # era5_name: potential_evaporation - # era5_freq: hourly - # preprocessor: daily_mean - # mrro: - # mip: E1hr - # era5_name: runoff - # era5_freq: hourly - # preprocessor: daily_mean - # orog: - # mip: fx - # era5_name: orography - # era5_freq: hourly + clt: + mip: E1hr + era5_name: total_cloud_cover + era5_freq: hourly + preprocessor: daily_mean + evspsbl: + mip: E1hr + era5_name: evaporation + era5_freq: hourly + preprocessor: daily_mean + evspsblpot: + mip: E1hr + era5_name: potential_evaporation + era5_freq: hourly + preprocessor: daily_mean + mrro: + mip: E1hr + era5_name: runoff + era5_freq: hourly + preprocessor: daily_mean + orog: + mip: fx + era5_name: orography + era5_freq: hourly pr: mip: E1hr era5_name: total_precipitation era5_freq: hourly preprocessor: daily_mean - # prsn: - # mip: E1hr - # era5_name: snowfall - # era5_freq: hourly - # preprocessor: daily_mean - # ps: - # mip: E1hr - # era5_name: surface_pressure - # era5_freq: hourly - # preprocessor: daily_mean - # psl: - # mip: E1hr - # era5_name: mean_sea_level_pressure - # era5_freq: hourly - # preprocessor: daily_mean - # rlds: - # mip: E1hr - # era5_name: surface_thermal_radiation_downwards - # era5_freq: hourly - # preprocessor: daily_mean - # rls: - # mip: E1hr - # era5_name: mean_surface_net_long_wave_radiation_flux - # era5_freq: hourly - # preprocessor: daily_mean - # rsds: - # mip: E1hr - # era5_name: surface_solar_radiation_downwards - # era5_freq: hourly - # preprocessor: daily_mean - # rsdt: - # mip: E1hr - # era5_name: toa_incident_solar_radiation - # era5_freq: hourly - # preprocessor: daily_mean - # rss: - # mip: E1hr - # era5_name: surface_net_solar_radiation - # era5_freq: hourly - # preprocessor: daily_mean + prsn: + mip: E1hr + era5_name: snowfall + era5_freq: hourly + preprocessor: daily_mean + ps: + mip: E1hr + era5_name: surface_pressure + era5_freq: hourly + preprocessor: daily_mean + psl: + mip: E1hr + era5_name: mean_sea_level_pressure + era5_freq: hourly + preprocessor: daily_mean + rlds: + mip: E1hr + era5_name: surface_thermal_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + rls: + mip: E1hr + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: hourly + preprocessor: daily_mean + rsds: + mip: E1hr + era5_name: surface_solar_radiation_downwards + era5_freq: hourly + preprocessor: daily_mean + rsdt: + mip: E1hr + era5_name: toa_incident_solar_radiation + era5_freq: hourly + preprocessor: daily_mean + rss: + mip: E1hr + era5_name: surface_net_solar_radiation + era5_freq: hourly + preprocessor: daily_mean tas: mip: E1hr era5_name: 2m_temperature era5_freq: hourly preprocessor: daily_mean - # tasmax: - # mip: E1hr - # era5_name: maximum_2m_temperature_since_previous_post_processing - # era5_freq: hourly - # preprocessor: daily_max - # tasmin: - # mip: E1hr - # era5_name: minimum_2m_temperature_since_previous_post_processing - # era5_freq: hourly - # preprocessor: daily_min - # tdps: - # mip: E1hr - # era5_name: 2m_dewpoint_temperature - # era5_freq: hourly - # preprocessor: daily_mean - # ts: - # mip: E1hr - # era5_name: skin_temperature - # era5_freq: hourly - # preprocessor: daily_mean - # tsn: - # mip: E1hr - # era5_name: temperature_of_snow_layer - # era5_freq: hourly - # preprocessor: daily_mean - # uas: - # mip: E1hr - # era5_name: 10m_u_component_of_wind - # era5_freq: hourly - # preprocessor: daily_mean - # vas: - # mip: E1hr - # era5_name: 10m_v_component_of_wind - # era5_freq: hourly - # preprocessor: daily_mean + tasmax: + mip: E1hr + era5_name: maximum_2m_temperature_since_previous_post_processing + era5_freq: hourly + preprocessor: daily_max + tasmin: + mip: E1hr + era5_name: minimum_2m_temperature_since_previous_post_processing + era5_freq: hourly + preprocessor: daily_min + tdps: + mip: E1hr + era5_name: 2m_dewpoint_temperature + era5_freq: hourly + preprocessor: daily_mean + ts: + mip: E1hr + era5_name: skin_temperature + era5_freq: hourly + preprocessor: daily_mean + tsn: + mip: E1hr + era5_name: temperature_of_snow_layer + era5_freq: hourly + preprocessor: daily_mean + uas: + mip: E1hr + era5_name: 10m_u_component_of_wind + era5_freq: hourly + preprocessor: daily_mean + vas: + mip: E1hr + era5_name: 10m_v_component_of_wind + era5_freq: hourly + preprocessor: daily_mean - # monthly: - # description: CMORize monthly ERA5 data - # scripts: - # script: - # script: cmorizers/era5.py - # variables: - # clt: - # mip: Amon - # era5_name: total_cloud_cover - # era5_freq: monthly - # evspsbl: - # mip: Amon - # era5_name: evaporation - # era5_freq: monthly - # evspsblpot: - # mip: Amon - # era5_name: potential_evaporation - # era5_freq: monthly - # mrro: - # mip: Amon - # era5_name: runoff - # era5_freq: monthly - # orog: - # mip: Amon - # era5_name: orography - # era5_freq: monthly - # pr: - # mip: Amon - # era5_name: total_precipitation - # era5_freq: monthly - # prsn: - # mip: Amon - # era5_name: snowfall - # era5_freq: monthly - # psl: - # mip: Amon - # era5_name: mean_sea_level_pressure - # era5_freq: monthly - # ps: - # mip: Amon - # era5_name: surface_pressure - # era5_freq: monthly - # ptype: - # mip: Amon - # era5_name: precipitation_type - # era5_freq: monthly - # rlds: - # mip: Amon - # era5_name: surface_thermal_radiation_downwards - # era5_freq: monthly - # rls: - # mip: Amon - # era5_name: mean_surface_net_long_wave_radiation_flux - # era5_freq: monthly - # rsds: - # mip: Amon - # era5_name: surface_solar_radiation_downwards - # era5_freq: monthly - # rsdt: - # mip: Amon - # era5_name: toa_incident_solar_radiation - # era5_freq: monthly - # rss: - # mip: Amon - # era5_name: surface_net_solar_radiation - # era5_freq: monthly - # tas: - # mip: Amon - # era5_name: 2m_temperature - # era5_freq: monthly - # tasmax: - # mip: Amon - # era5_name: maximum_2m_temperature_since_previous_post_processing - # era5_freq: monthly - # tasmin: - # mip: Amon - # era5_name: minimum_2m_temperature_since_previous_post_processing - # era5_freq: monthly - # tdps: - # mip: Amon - # era5_name: 2m_dewpoint_temperature - # era5_freq: monthly - # ts: - # mip: Amon - # era5_name: skin_temperature - # era5_freq: monthly - # tsn: - # mip: Amon - # era5_name: temperature_of_snow_layer - # era5_freq: monthly - # uas: - # mip: Amon - # era5_name: 10m_u_component_of_wind - # era5_freq: monthly - # vas: - # mip: Amon - # era5_name: 10m_v_component_of_wind - # era5_freq: monthly + monthly: + description: CMORize monthly ERA5 data + scripts: + script: + script: cmorizers/era5.py + variables: + clt: + mip: Amon + era5_name: total_cloud_cover + era5_freq: monthly + evspsbl: + mip: Amon + era5_name: evaporation + era5_freq: monthly + evspsblpot: + mip: Amon + era5_name: potential_evaporation + era5_freq: monthly + mrro: + mip: Amon + era5_name: runoff + era5_freq: monthly + orog: + mip: Amon + era5_name: orography + era5_freq: monthly + pr: + mip: Amon + era5_name: total_precipitation + era5_freq: monthly + prsn: + mip: Amon + era5_name: snowfall + era5_freq: monthly + psl: + mip: Amon + era5_name: mean_sea_level_pressure + era5_freq: monthly + ps: + mip: Amon + era5_name: surface_pressure + era5_freq: monthly + ptype: + mip: Amon + era5_name: precipitation_type + era5_freq: monthly + rlds: + mip: Amon + era5_name: surface_thermal_radiation_downwards + era5_freq: monthly + rls: + mip: Amon + era5_name: mean_surface_net_long_wave_radiation_flux + era5_freq: monthly + rsds: + mip: Amon + era5_name: surface_solar_radiation_downwards + era5_freq: monthly + rsdt: + mip: Amon + era5_name: toa_incident_solar_radiation + era5_freq: monthly + rss: + mip: Amon + era5_name: surface_net_solar_radiation + era5_freq: monthly + tas: + mip: Amon + era5_name: 2m_temperature + era5_freq: monthly + tdps: + mip: Amon + era5_name: 2m_dewpoint_temperature + era5_freq: monthly + ts: + mip: Amon + era5_name: skin_temperature + era5_freq: monthly + tsn: + mip: Amon + era5_name: temperature_of_snow_layer + era5_freq: monthly From da50f541bbdbbecfd35d9093221a33a05e0fa929 Mon Sep 17 00:00:00 2001 From: Mattia Righi Date: Thu, 6 Feb 2020 13:46:41 +0100 Subject: [PATCH 14/21] Fix codacy issue --- esmvaltool/diag_scripts/cmorizers/era5.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index 35697a12bd..c414da0161 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -10,7 +10,7 @@ def main(cfg): """Rename preprocessed native6 file.""" fixed_files = cfg['input_data'] - + for file, dictionary in fixed_files.items(): basename, _ext = os.path.splitext(os.path.basename(file)) basename = basename.replace('native', 'OBS') @@ -24,4 +24,4 @@ def main(cfg): if __name__ == '__main__': with run_diagnostic() as config: - main(config) \ No newline at end of file + main(config) From ef4baafaa0095d6df53dfb898c06fe47da6e6860 Mon Sep 17 00:00:00 2001 From: Mattia Righi Date: Thu, 6 Feb 2020 13:56:40 +0100 Subject: [PATCH 15/21] Add entries for all supported projects --- config-user-example.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config-user-example.yml b/config-user-example.yml index 4478f8616a..e3f7fdbe5e 100644 --- a/config-user-example.yml +++ b/config-user-example.yml @@ -5,9 +5,14 @@ # Rootpaths to the data from different projects (lists are also possible) rootpath: + CMIP3: [~/cmip3_inputpath1, ~/cmip3_inputpath2] CMIP5: [~/cmip5_inputpath1, ~/cmip5_inputpath2] CMIP6: [~/cmip6_inputpath1, ~/cmip6_inputpath2] OBS: ~/obs_inputpath + OBS6: ~/obs6_inputpath + obs4mips: ~/obs4mips_inputpath + ana4mips: ~/ana4mips_inputpath + native6: ~/native6_inputpath RAWOBS: ~/rawobs_inputpath default: ~/default_inputpath From 531b69eaf3292211425d682a7aa7a2387cdc3a5e Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Thu, 6 Feb 2020 16:48:02 +0100 Subject: [PATCH 16/21] Clean up recipe and add diag logger --- esmvaltool/diag_scripts/cmorizers/era5.py | 13 +++++++++---- esmvaltool/recipes/cmorizers/recipe_era5.yml | 9 +-------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index 35697a12bd..3e32f30ad2 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -1,27 +1,32 @@ """native6 diagnostic.""" +import logging import os import shutil -from esmvaltool.diag_scripts.shared import (run_diagnostic, - get_diagnostic_filename) +from esmvaltool.diag_scripts.shared import (get_diagnostic_filename, + run_diagnostic) + +logger = logging.getLogger(os.path.basename(__file__)) def main(cfg): """Rename preprocessed native6 file.""" fixed_files = cfg['input_data'] - + for file, dictionary in fixed_files.items(): basename, _ext = os.path.splitext(os.path.basename(file)) basename = basename.replace('native', 'OBS') if dictionary['diagnostic'] == 'daily': basename = basename.replace('E1hr', 'Eday') + outfile = get_diagnostic_filename(basename, cfg) + logger.info('Moving %s to %s', file, outfile) shutil.move(file, outfile) if __name__ == '__main__': with run_diagnostic() as config: - main(config) \ No newline at end of file + main(config) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 118aa18efd..9dc5e4b0a1 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -127,6 +127,7 @@ diagnostics: mip: E1hr era5_name: 10m_v_component_of_wind era5_freq: hourly + daily: description: Create daily ERA5 data scripts: @@ -153,10 +154,6 @@ diagnostics: era5_name: runoff era5_freq: hourly preprocessor: daily_mean - orog: - mip: fx - era5_name: orography - era5_freq: hourly pr: mip: E1hr era5_name: total_precipitation @@ -265,10 +262,6 @@ diagnostics: mip: Amon era5_name: runoff era5_freq: monthly - orog: - mip: Amon - era5_name: orography - era5_freq: monthly pr: mip: Amon era5_name: total_precipitation From 7fbbb5c65ab13db71ab62a436aee74b9e9c66003 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Thu, 6 Feb 2020 17:44:10 +0100 Subject: [PATCH 17/21] Remove ERA5 cmorizer script --- esmvaltool/cmorizers/obs/cmor_config/ERA5.yml | 108 --------- esmvaltool/cmorizers/obs/cmorize_obs_era5.py | 227 ------------------ 2 files changed, 335 deletions(-) delete mode 100644 esmvaltool/cmorizers/obs/cmor_config/ERA5.yml delete mode 100644 esmvaltool/cmorizers/obs/cmorize_obs_era5.py diff --git a/esmvaltool/cmorizers/obs/cmor_config/ERA5.yml b/esmvaltool/cmorizers/obs/cmor_config/ERA5.yml deleted file mode 100644 index 74de6a2027..0000000000 --- a/esmvaltool/cmorizers/obs/cmor_config/ERA5.yml +++ /dev/null @@ -1,108 +0,0 @@ ---- -# Global attributes of NetCDF file -attributes: - dataset_id: ERA5 - project_id: OBS6 - tier: 3 - version: '1' - modeling_realm: reanaly - source: 'https://www.ecmwf.int/en/forecasts/datasets/reanalysis-datasets/era5' - reference: 'era5' - comment: 'Contains modified Copernicus Climate Change Service Information {year}' - -# Variables to CMORize -variables: - # time independent - orog: - mip: fx - raw: z - file: 'era5_orography_*_hourly.nc' - # hourly frequency - clt: - mip: E1hr - raw: tcc - file: 'era5_total_cloud_cover_*_hourly.nc' - evspsbl: - mip: E1hr - raw: e - file: 'era5_evaporation_*_hourly.nc' - evspsblpot: - mip: E1hr - raw: pev - file: 'era5_potential_evaporation_*_hourly.nc' - mrro: - mip: E1hr - raw: ro - file: 'era5_runoff_*_hourly.nc' - pr: - mip: E1hr - raw: tp - file: 'era5_total_precipitation_*_hourly.nc' - prsn: - mip: E1hr - raw: sf - file: 'era5_snowfall_*_hourly.nc' - ps: - mip: E1hr - raw: sp - file: 'era5_surface_pressure_*_hourly.nc' - psl: - mip: E1hr - raw: msl - file: 'era5_mean_sea_level_pressure_*_hourly.nc' - ptype: - mip: E1hr - raw: ptype - file: 'era5_precipitation_type_*_hourly.nc' - rls: - mip: E1hr - raw: msnlwrf - file: 'era5_mean_surface_net_long_wave_radiation_flux_*_hourly.nc' - rlds: - mip: E1hr - raw: strd - file: 'era5_surface_thermal_radiation_downwards_*_hourly.nc' - rsds: - mip: E1hr - raw: ssrd - file: 'era5_surface_solar_radiation_downwards_*_hourly.nc' - rsdt: - mip: E1hr - raw: tisr - file: 'era5_toa_incident_solar_radiation_*_hourly.nc' - rss: - mip: E1hr - raw: ssr - file: 'era5_surface_net_solar_radiation_*_hourly.nc' - uas: - mip: E1hr - raw: u10 - file: 'era5_10m_u_component_of_wind_*_hourly.nc' - vas: - mip: E1hr - raw: v10 - file: 'era5_10m_v_component_of_wind_*_hourly.nc' - tas: - mip: E1hr - raw: t2m - file: 'era5_2m_temperature_*_hourly.nc' - tasmax: - mip: E1hr - raw: mx2t - file: 'era5_maximum_2m_temperature_since_previous_post_processing_*_hourly.nc' - tasmin: - mip: E1hr - raw: mn2t - file: 'era5_minimum_2m_temperature_since_previous_post_processing_*_hourly.nc' - tdps: - mip: E1hr - raw: d2m - file: 'era5_2m_dewpoint_temperature_*_hourly.nc' - ts: - mip: E1hr - raw: skt - file: 'era5_skin_temperature_*_hourly.nc' - tsn: - mip: E1hr - raw: tsn - file: 'era5_temperature_of_snow_layer_*_hourly.nc' diff --git a/esmvaltool/cmorizers/obs/cmorize_obs_era5.py b/esmvaltool/cmorizers/obs/cmorize_obs_era5.py deleted file mode 100644 index c9c7519275..0000000000 --- a/esmvaltool/cmorizers/obs/cmorize_obs_era5.py +++ /dev/null @@ -1,227 +0,0 @@ -"""ESMValTool CMORizer for ERA5 data. - -Tier - Tier 3: restricted datasets (i.e., dataset which requires a registration - to be retrieved or provided upon request to the respective contact or PI). - -Source - https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels - https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels - -Last access - 20190718 - -Download and processing instructions - This cmorization script currently supports hourly data of the following -variables: - 10m_u_component_of_wind - 10m_v_component_of_wind - 2m_dewpoint_temperature - 2m_temperature - evaporation - maximum_2m_temperature_since_previous_post_processing - mean_sea_level_pressure - mean_surface_net_long_wave_radiation_flux - minimum_2m_temperature_since_previous_post_processing - orography [#1] - potential_evaporation - precipitation_type - runoff - skin_temperature - snowfall - surface_net_solar_radiation - surface_pressure - surface_solar_radiation_downwards - surface_thermal_radiation_downwards - temperature_of_snow_layer - toa_incident_solar_radiation - total_cloud_cover - total_precipitation - - Downloading ERA5 data can either be done via the Climate Data Store (cds) -web form or era5cli: - $pip install era5cli - $era5cli hourly --variables total_precipitation --startyear 1990 - - [#1]: orography is a time-invariant variable, but ERA5 makes it available - as an hourly variable (which is the same for each time step). The CMORizer - will remove the time dimension from the data and hence only works for 2D - data with a time dimension of length 1. Request example: - $era5cli hourly --variables orography - > --startyear 1989 --months 1 --days 1 --hours 12 - Note that the filename will still follow the pattern: - "era5_orography_yyyy_hourly.nc" - -""" - -import logging -import re -from concurrent.futures import ProcessPoolExecutor, as_completed -from copy import deepcopy -from datetime import datetime -from os import cpu_count -from pathlib import Path -from warnings import catch_warnings, filterwarnings - -import iris -import numpy as np -from dask import array as da - -from esmvalcore.cmor.table import CMOR_TABLES - -from . import utilities as utils - -logger = logging.getLogger(__name__) - - -def _load_cube(in_file, raw_name): - """Load variable `raw_name` from file.""" - invalid_units = { - 'e': 'm of water equivalent', - 'ptype': 'code table (4.201)', - 'sf': 'm of water equivalent', - 'tcc': '(0 - 1)', - } - with catch_warnings(): - for var_name, units in invalid_units.items(): - filterwarnings( - action='ignore', - message=(f"Ignoring netCDF variable '{var_name}' " - f"invalid units '{re.escape(units)}'"), - category=UserWarning, - module='iris', - ) - cube = iris.load_cube( - str(in_file), - constraint=utils.var_name_constraint(raw_name), - ) - return cube - - -def _fix_units(cube): - """Correct the units.""" - if cube.var_name in {'e', 'sf'}: - # Change evaporation and snowfall units from - # 'm of water equivalent' to m - cube.units = 'm' - if cube.var_name == 'tcc': - # Change cloud cover units '(0 - 1)' to valid fraction unit - cube.units = 1 - if cube.var_name in {'e', 'ro', 'sf', 'tp', 'pev'}: - # Change units from meters of water to kg of water - # and add missing 'per hour' - cube.units = cube.units * 'kg m-3 h-1' - cube.data = cube.core_data() * 1000. - if cube.var_name in {'ssr', 'ssrd', 'strd', 'tisr'}: - # Add missing 'per hour' - cube.units = cube.units * 'h-1' - if cube.var_name in {'msnlwrf', 'ssrd', 'strd', 'tisr', 'ssr'}: - # Radiation fluxes are positive in downward direction - cube.attributes['positive'] = 'down' - if cube.var_name == 'ptype': - cube.units = 1 - # Fix rounding errors and mask out 0 (reserved value) - cube.data = da.ma.masked_equal(da.round(cube.core_data()), 0) - - return cube - - -def _extract_variable(in_file, var, cfg, out_dir): - logger.info("CMORizing variable '%s' from input file '%s'", - var['short_name'], in_file) - attributes = deepcopy(cfg['attributes']) - attributes['mip'] = var['mip'] - cmor_table = CMOR_TABLES[attributes['project_id']] - definition = cmor_table.get_variable(var['mip'], var['short_name']) - - cube = _load_cube(in_file, var['raw']) - - # Set global attributes - utils.set_global_atts(cube, attributes) - - # Fix missing/invalid units - _fix_units(cube) - - # Remove time dimension and coordinate from invariant variables - if 'fx' in var['mip']: - cube = iris.util.squeeze(cube) - cube.remove_coord('time') - - # Set correct names - cube.var_name = definition.short_name - if definition.standard_name: - cube.standard_name = definition.standard_name - cube.long_name = definition.long_name - - # Fix data type - cube.data = cube.core_data().astype('float32') - - # Fix coordinates - cube.coord('latitude').var_name = 'lat' - cube.coord('longitude').var_name = 'lon' - - # Make latitude increasing - cube = cube[..., ::-1, :] - - for coord_name in 'latitude', 'longitude', 'time': - try: - coord = cube.coord(coord_name) - coord.points = coord.core_points().astype('float64') - coord.guess_bounds() - except iris.exceptions.CoordinateNotFoundError: - if 'fx' in var['mip']: - pass - else: - raise - - if cube.var_name in {'zg', 'orog'}: - # Divide by acceleration of gravity [m s-2], - # required for geopotential height, see: - # https://apps.ecmwf.int/codes/grib/param-db?id=129 - cube.units = cube.units / 'm s-2' - cube.data = cube.core_data() / 9.80665 - - if 'height2m' in definition.dimensions: - utils.add_scalar_height_coord(cube, 2.) - if 'height10m' in definition.dimensions: - utils.add_scalar_height_coord(cube, 10.) - - # Convert units if required - cube.convert_units(definition.units) - - logger.info("Saving cube\n%s", cube) - logger.info("Expected output size is %.1fGB", - np.prod(cube.shape) * 4 / 2**30) - utils.save_variable( - cube, - cube.var_name, - out_dir, - attributes, - local_keys=['positive'], - ) - - -def cmorization(in_dir, out_dir, cfg, _): - """Cmorization func call.""" - cfg['attributes']['comment'] = cfg['attributes']['comment'].format( - year=datetime.now().year) - cfg.pop('cmor_table') - - n_workers = int(cpu_count() / 1.5) - logger.info("Using at most %s workers", n_workers) - futures = {} - with ProcessPoolExecutor(max_workers=1) as executor: - for short_name, var in cfg['variables'].items(): - var['short_name'] = short_name - for in_file in sorted(Path(in_dir).glob(var['file'])): - future = executor.submit(_extract_variable, in_file, var, cfg, - out_dir) - futures[future] = in_file - - for future in as_completed(futures): - try: - future.result() - except: # noqa - logger.error("Failed to CMORize %s", futures[future]) - raise - logger.info("Finished CMORizing %s", futures[future]) From 6cb8b4eeeda6754101bce6a35c1951d5952bd5b2 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Fri, 7 Feb 2020 11:09:25 +0100 Subject: [PATCH 18/21] Add first day from next year --- esmvaltool/diag_scripts/cmorizers/era5.py | 8 ++++++-- esmvaltool/recipes/cmorizers/recipe_era5.yml | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index 3e32f30ad2..159bac977a 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -14,13 +14,17 @@ def main(cfg): """Rename preprocessed native6 file.""" fixed_files = cfg['input_data'] - for file, dictionary in fixed_files.items(): + for file, info in fixed_files.items(): basename, _ext = os.path.splitext(os.path.basename(file)) basename = basename.replace('native', 'OBS') - if dictionary['diagnostic'] == 'daily': + + if info['diagnostic'] == 'daily': basename = basename.replace('E1hr', 'Eday') + end_year = basename[-4:] + basename = basename.replace(end_year, f'{int(end_year) - 1}') + outfile = get_diagnostic_filename(basename, cfg) logger.info('Moving %s to %s', file, outfile) shutil.move(file, outfile) diff --git a/esmvaltool/recipes/cmorizers/recipe_era5.yml b/esmvaltool/recipes/cmorizers/recipe_era5.yml index 9dc5e4b0a1..cdd434f99a 100644 --- a/esmvaltool/recipes/cmorizers/recipe_era5.yml +++ b/esmvaltool/recipes/cmorizers/recipe_era5.yml @@ -15,16 +15,26 @@ documentation: - ewatercycle datasets: - - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1990, end_year: 1990} + # For the daily diagnostic, always add the next year, otherwise the last day is not cmor compatible + - {dataset: ERA5, project: native6, type: reanaly, version: '1', tier: 3, start_year: 1990, end_year: 1991} preprocessors: + add_one_day: &add_one_day + extract_time: + end_year: 1991 + end_month: 1 + end_day: 1 + daily_mean: + <<: *add_one_day daily_statistics: operator: mean daily_min: + <<: *add_one_day daily_statistics: operator: min daily_max: + <<: *add_one_day daily_statistics: operator: max @@ -32,7 +42,7 @@ diagnostics: hourly: description: CMORize hourly ERA5 data scripts: - script: + rename: script: cmorizers/era5.py variables: clt: @@ -131,7 +141,7 @@ diagnostics: daily: description: Create daily ERA5 data scripts: - script: + rename: script: cmorizers/era5.py variables: clt: @@ -243,7 +253,7 @@ diagnostics: monthly: description: CMORize monthly ERA5 data scripts: - script: + rename: script: cmorizers/era5.py variables: clt: From cda6a69e070b74e6536ddd9641d16b0443bfc36b Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Mon, 10 Feb 2020 14:35:44 +0100 Subject: [PATCH 19/21] Don't try to replace years in fx files --- esmvaltool/diag_scripts/cmorizers/era5.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index 159bac977a..f7cad3871c 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -1,13 +1,13 @@ """native6 diagnostic.""" import logging -import os import shutil +from pathlib import Path from esmvaltool.diag_scripts.shared import (get_diagnostic_filename, run_diagnostic) -logger = logging.getLogger(os.path.basename(__file__)) +logger = logging.getLogger(Path(__file__).name) def main(cfg): @@ -15,15 +15,15 @@ def main(cfg): fixed_files = cfg['input_data'] for file, info in fixed_files.items(): - basename, _ext = os.path.splitext(os.path.basename(file)) - basename = basename.replace('native', 'OBS') - + stem = Path(file).stem + basename = stem.replace('native', 'OBS') if info['diagnostic'] == 'daily': basename = basename.replace('E1hr', 'Eday') - end_year = basename[-4:] - basename = basename.replace(end_year, f'{int(end_year) - 1}') + if 'fx' not in basename: + end_year = basename[-4:] + basename = basename.replace(end_year, f'{int(end_year) - 1}') outfile = get_diagnostic_filename(basename, cfg) logger.info('Moving %s to %s', file, outfile) From 560f3b1338011ced138bb5ac6590aa7c85cdf251 Mon Sep 17 00:00:00 2001 From: Peter Kalverla Date: Wed, 12 Feb 2020 11:29:16 +0100 Subject: [PATCH 20/21] Lookup new mip in tables --- esmvaltool/diag_scripts/cmorizers/era5.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/esmvaltool/diag_scripts/cmorizers/era5.py b/esmvaltool/diag_scripts/cmorizers/era5.py index f7cad3871c..ceefc1cb24 100644 --- a/esmvaltool/diag_scripts/cmorizers/era5.py +++ b/esmvaltool/diag_scripts/cmorizers/era5.py @@ -7,6 +7,8 @@ from esmvaltool.diag_scripts.shared import (get_diagnostic_filename, run_diagnostic) +from esmvalcore.cmor.table import CMOR_TABLES + logger = logging.getLogger(Path(__file__).name) @@ -19,7 +21,10 @@ def main(cfg): basename = stem.replace('native', 'OBS') if info['diagnostic'] == 'daily': - basename = basename.replace('E1hr', 'Eday') + for mip in ['day', 'Eday', 'CFday']: + if CMOR_TABLES['CMIP6'].get_variable(mip, info['short_name']): + basename = basename.replace('E1hr', mip) + basename = basename.replace('E1hr', 'day') if 'fx' not in basename: end_year = basename[-4:] From c4d025188aec288e04158b565cd779e218a4ebe1 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Wed, 12 Feb 2020 14:40:25 +0100 Subject: [PATCH 21/21] Require at least v2.0.0b6 of ESMValCore --- environment.yml | 2 +- meta.yaml | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/environment.yml b/environment.yml index 54edeb8566..37b889c453 100644 --- a/environment.yml +++ b/environment.yml @@ -7,7 +7,7 @@ channels: dependencies: # Python packages that cannot be installed from PyPI: - gdal - - esmvalcore>=2.0.0b5,<2.1 + - esmvalcore>=2.0.0b6,<2.1 # Non-Python dependencies - graphviz - cdo>=1.9.7 diff --git a/meta.yaml b/meta.yaml index 406accba4f..d1f84a7b70 100644 --- a/meta.yaml +++ b/meta.yaml @@ -50,7 +50,7 @@ requirements: - ecmwf-api-client # in esmvalgroup channel - eofs - esmpy - - esmvalcore>=2.0.0b5,<2.1 # in esmvalgroup channel + - esmvalcore>=2.0.0b6,<2.1 # in esmvalgroup channel - jinja2 - matplotlib - nc-time-axis diff --git a/setup.py b/setup.py index c9a80c4a79..bf5560f6ad 100755 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ 'cython', 'ecmwf-api-client', 'eofs', - 'esmvalcore>=2.0.0b5,<2.1', + 'esmvalcore>=2.0.0b6,<2.1', 'fiona', 'jinja2', 'matplotlib<3',