Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 13 additions & 18 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,6 @@
"affiliation": "University of Bremen, Germany",
"name": "Adeniyi, Kemisola"
},
{
"affiliation": "University of Bremen, Germany",
"name": "Castellani, Giulia",
"orcid": "0000-0001-6151-015X"
},
{
"affiliation": "ISAC-CNR, Italy",
"name": "Arnone, Enrico",
Expand Down Expand Up @@ -175,6 +170,10 @@
"affiliation": "University of Bremen, Germany",
"name": "Gier, Bettina"
},
{
"affiliation": "University of Bremen, Germany",
"name": "Castellani, Giulia"
},
{
"affiliation": "Met Office, UK",
"name": "Gillett, Ed"
Expand All @@ -193,10 +192,6 @@
"name": "Hagemann, Stefan",
"orcid": "0000-0001-5444-2945"
},
{
"affiliation": "Met Office, UK",
"name": "Hall, Sophie"
},
{
"affiliation": "University of Canterbury, New Zealand",
"name": "Hardacre, Catherine",
Expand Down Expand Up @@ -345,9 +340,9 @@
"orcid": "0000-0003-4637-5337"
},
{
"affiliation": "Met Office, UK",
"name": "Storkey, Dave",
"orcid": "0000-0001-8000-5335"
"affiliation": "ECCC, Canada",
"name": "Stevens, Robin",
"orcid": "0000-0002-8737-6988"
},
{
"affiliation": "URead, UK",
Expand All @@ -367,14 +362,14 @@
"name": "Weigel, Katja",
"orcid": "0000-0001-6133-7801"
},
{
"affiliation": "DLR, Germany",
"name": "Sarauer, Ellen"
},
{
"affiliation": "University of Bremen, Germany",
"name": "Schulze, Kirsten"
},
{
"affiliation": "DLR, Germany",
"name": "Sarauer, Ellen"
},
{
"affiliation": "University of Reading, UK",
"name": "Roberts, Charles",
Expand Down Expand Up @@ -458,9 +453,9 @@
"license": {
"id": "Apache-2.0"
},
"publication_date": "2025-03-05",
"publication_date": "2025-10-20",
"title": "ESMValTool",
"version": "v2.12.0",
"version": "v2.13.0",
"communities": [
{
"identifier": "is-enes3"
Expand Down
5 changes: 5 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,11 @@ authors:
family-names: Stacke
given-names: Tobias
orcid: "https://orcid.org/0000-0003-4637-5337"
-
affiliation: "ECCC, Canada"
family-names: Stevens
given-names: Robin
orcid: "https://orcid.org/0000-0002-8737-6988"
-
affiliation: "URead, UK"
family-names: Swaminathan
Expand Down
2 changes: 2 additions & 0 deletions doc/sphinx/source/input.rst
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,8 @@ A list of the datasets for which a CMORizers is available is provided in the fol
+----------------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
| JRA-25 | cl, clt, clwvi, hus, prw, rlut, rlutcs, rsut, rsutcs, ta, tas, tcw, wap (Amon) | 2 | Python |
+----------------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
| JRA-3Q | tasmax, tasmin (day) | 2 | Python |
+----------------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
| JRA-55 | cli, clivi, clw, clwvi, clt, prw, rlus, rlut, rlutcs, rsus, rsuscs, rsut, rsutcs, ta, tas, wap (Amon)| 2 | Python |
+----------------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
| Kadow2020 | tasa (Amon) | 2 | Python |
Expand Down
27 changes: 27 additions & 0 deletions esmvaltool/cmorizers/data/cmor_config/JRA-3Q.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
# Common global attributes for Cmorizer output
attributes:
dataset_id: JRA3Q
version: 'v1'
tier: 2
modeling_realm: reanaly
project_id: CMOR6
source: 'https://rda.ucar.edu/datasets/ds628.1/'
reference: 'jra_3q'
comment: |
''

# Variables to cmorize
variables:

tasmax:
raw_short_name: tmpmax2m-hgt-fc-gauss
mip: day
freq: 1hr
file: jra3q.minmax_surf.0_0_0.tmpmax2m-hgt-fc-gauss.????????00_????????23.nc

tasmin:
raw_short_name: tmpmin2m-hgt-fc-gauss
mip: day
freq: 1hr
file: jra3q.minmax_surf.0_0_0.tmpmin2m-hgt-fc-gauss.????????00_????????23.nc
10 changes: 10 additions & 0 deletions esmvaltool/cmorizers/data/datasets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -902,6 +902,16 @@ datasets:
anl_chipsi/fcst_phy2m.yyyymm.nc
anl_p/anl_p.yyyymm.nc

JRA-3Q:
tier: 2
source: https://gdex.ucar.edu/datasets/d640000/
last_access: 2025-10-14
info: |
For convenience, the direct download links have the following form, where DD refers to the last day of the month:
https://osdf-data.gdex.ucar.edu/ncar/gdex/d640000/minmax_surf/[YYYYMM]/jra3q.minmax_surf.0_0_0.tmpmax2m-hgt-fc-gauss.[YYYYMM]0100_[YYYYMMDD]23.nc
https://osdf-data.gdex.ucar.edu/ncar/gdex/d640000/minmax_surf/[YYYYMM]/jra3q.minmax_surf.0_0_0.tmpmin2m-hgt-fc-gauss.[YYYYMM]0100_[YYYYMMDD]23.nc


JRA-55:
tier: 2
source: https://rda.ucar.edu/datasets/ds628.1/
Expand Down
76 changes: 76 additions & 0 deletions esmvaltool/cmorizers/data/formatters/datasets/jra_3q.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
"""
ESMValTool CMORizer for JRA-3Q data.

Tier
Tier 2: other freely-available dataset.

Source
Research Data Archive (RDA):
https://rda.ucar.edu/datasets/d640000/


Last access
20251014



"""

import copy
import logging
import os

import iris
from esmvalcore.preprocessor import daily_statistics
from iris import NameConstraint

from esmvaltool.cmorizers.data import utilities as utils

logger = logging.getLogger(__name__)


def _extract_variable(short_name, var, filename, cfg, in_dir, out_dir):
cmor_info = cfg["cmor_table"].get_variable(var["mip"], short_name)
attrs = copy.deepcopy(cfg["attributes"])
attrs["mip"] = var["mip"]
ver = attrs["version"]
freq = var["freq"]
raw_var = var.get("raw_short_name", short_name)

# load data
filepath = os.path.join(in_dir, ver, freq, raw_var, filename)
cubes = iris.load(filepath, NameConstraint(var_name=raw_var))

for cube in cubes:
# JRA3Q has hourly max/min temperature data, but we want daily max/min
if short_name == "tasmax":
cube = daily_statistics(cube, "max")
elif short_name == "tasmin":
cube = daily_statistics(cube, "min")

# Fix metadata

utils.fix_var_metadata(cube, cmor_info)
utils.set_global_atts(cube, attrs)

utils.fix_dim_coordnames(cube)
utils.fix_coords(cube)
if "height2m" in cmor_info.dimensions:
utils.add_height2m(cube)
utils.set_global_atts(cube, attrs)

# Save variable
utils.save_variable(
cube, short_name, out_dir, attrs, unlimited_dimensions=["time"]
)


def cmorization(in_dir, out_dir, cfg, cfg_user, start_date, end_date):
"""Cmorization func call."""
# Run the cmorization
for short_name, var in cfg["variables"].items():
filename = var["file"]
logger.info(
"CMORizing variable '%s' from file '%s'", short_name, filename
)
_extract_variable(short_name, var, filename, cfg, in_dir, out_dir)
10 changes: 10 additions & 0 deletions esmvaltool/recipes/examples/recipe_check_obs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -672,6 +672,16 @@ diagnostics:
type: reanaly, version: 1, start_year: 1979, end_year: 2007}
scripts: null

JRA-3Q:
description: JRA-3Q check
variables:
tasmax:
tasmin:
additional_datasets:
- {dataset: JRA-3Q, project: OBS6, mip: day, tier: 2,
type: reanaly, version: 1, start_year: 1948, end_year: 2024}
scripts: null

JRA-55:
description: JRA-55 check
variables:
Expand Down
10 changes: 10 additions & 0 deletions esmvaltool/references/jra_3q.bibtex
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@article{Yuki KOSAKA20242024-004,
title={The JRA-3Q Reanalysis},
author={Yuki KOSAKA and Shinya KOBAYASHI and Yayoi HARADA and Chiaki KOBAYASHI and Hiroaki NAOE and Koichi YOSHIMOTO and Masashi HARADA and Naochika GOTO and Jotaro CHIBA and Kengo MIYAOKA and Ryohei SEKIGUCHI and Makoto DEUSHI and Hirotaka KAMAHORI and Tosiyuki NAKAEGAWA and Taichu Y. TANAKA and Takayuki TOKUHIRO and Yoshiaki SATO and Yasuhiro MATSUSHITA and Kazutoshi ONOGI},
journal={Journal of the Meteorological Society of Japan. Ser. II},
volume={102},
number={1},
pages={49-109},
year={2024},
doi={10.2151/jmsj.2024-004}
}