Skip to content

Commit 14b348e

Browse files
authored
Add CMORized NOAA GML surface flask concentration measurement of N2O (#4059)
1 parent 935888a commit 14b348e

8 files changed

Lines changed: 126 additions & 1 deletion

File tree

doc/sphinx/source/input.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,8 @@ A list of the datasets for which a CMORizers is available is provided in the fol
450450
+------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
451451
| NOAA-GML-SURFACE-FLASK-CO2 | co2s (Amon) | 2 | Python |
452452
+------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
453+
| NOAA-GML-SURFACE-FLASK-N2O | n2os (Amon) | 2 | Python |
454+
+------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
453455
| NOAAGlobalTemp | tasa (Amon) | 2 | Python |
454456
+------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+
455457
| NSIDC-0116-[nh|sh] [#note4]_ | usi, vsi (day) | 3 | Python |
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
# Filename
3+
filename: 'n2o_surface-flask_ccgg_text.tar.gz'
4+
5+
# Trace gas
6+
trace_gas: n2o
7+
8+
# Common global attributes for Cmorizer output
9+
attributes:
10+
dataset_id: NOAA-GML-SURFACE-FLASK-N2O
11+
version: '1.0'
12+
tier: 2
13+
modeling_realm: atmos
14+
project_id: OBS6
15+
source: 'https://gml.noaa.gov/aftp/data/trace_gases/n2o/flask/surface/n2o_surface-flask_ccgg_text.tar.gz'
16+
reference: 'noaa-gml-surface-flask-n2o'
17+
18+
# Variables to cmorize
19+
variables:
20+
n2os:
21+
mip: Amon
22+
raw_name: n2os
23+
raw_units: 'mol mol-1'
24+
standard_name: mole_fraction_of_nitrous_oxide_in_air
25+
long_name: 'Mole Fraction of N2O'

esmvaltool/cmorizers/data/datasets.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,14 @@ datasets:
12051205
Download the following file:
12061206
https://gml.noaa.gov/webdata/ccgg/trends/ch4/ch4_mm_gl.csv
12071207
1208+
NOAA-GML-SURFACE-FLASK-N2O:
1209+
tier: 2
1210+
source: https://gml.noaa.gov/aftp/data/trace_gases/n2o/flask/surface/
1211+
last_access: 2024-07-30
1212+
info: |
1213+
Download the following archive:
1214+
n2o_surface-flask_ccgg_text.tar.gz
1215+
12081216
NSIDC-0116-sh:
12091217
tier: 3
12101218
source: https://nsidc.org/data/NSIDC-0116
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
"""Script to download NOAA GML surface N2O flask data from its website."""
2+
3+
import logging
4+
5+
from esmvaltool.cmorizers.data.downloaders.wget import WGetDownloader
6+
7+
logger = logging.getLogger(__name__)
8+
9+
10+
def download_dataset(
11+
config, dataset, dataset_info, start_date, end_date, overwrite
12+
):
13+
"""Download dataset.
14+
15+
Parameters
16+
----------
17+
config : dict
18+
ESMValTool's user configuration
19+
dataset : str
20+
Name of the dataset
21+
dataset_info : dict
22+
Dataset information from the datasets.yml file
23+
start_date : datetime
24+
Start of the interval to download
25+
end_date : datetime
26+
End of the interval to download
27+
overwrite : bool
28+
Overwrite already downloaded files
29+
"""
30+
downloader = WGetDownloader(
31+
config=config,
32+
dataset=dataset,
33+
dataset_info=dataset_info,
34+
overwrite=overwrite,
35+
)
36+
path = "https://gml.noaa.gov/aftp/data/trace_gases/n2o/flask/surface/"
37+
file = "n2o_surface-flask_ccgg_text.tar.gz"
38+
downloader.download_file(
39+
path + file,
40+
wget_options=[],
41+
)

esmvaltool/cmorizers/data/formatters/datasets/noaa_gml_surface_flask.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
Download one of the following file:
1414
https://gml.noaa.gov/aftp/data/trace_gases/ch4/flask/surface/ch4_surface-flask_ccgg_text.tar.gz
1515
https://gml.noaa.gov/aftp/data/trace_gases/co2/flask/surface/co2_surface-flask_ccgg_text.tar.gz
16+
https://gml.noaa.gov/aftp/data/trace_gases/n2o/flask/surface/n2o_surface-flask_ccgg_text.tar.gz
1617
"""
1718

1819
import logging
@@ -37,7 +38,7 @@
3738

3839
FLASK_COLUMNS = ["site", "year", "month", "value"]
3940
DTYPE_FLASK_COLUMNS = {"site": str, "year": int, "month": int, "value": float}
40-
TRACE_GAS_UNITS = {"ch4s": "1e-09", "co2s": "1e-06"}
41+
TRACE_GAS_UNITS = {"ch4s": "1e-09", "co2s": "1e-06", "n2os": "1e-09"}
4142

4243

4344
class FlaskStation(NamedTuple):
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"""ESMValTool CMORizer for NOAA GML surface flask N2O data.
2+
3+
Tier
4+
Tier 2: freely available dataset.
5+
6+
Source
7+
https://gml.noaa.gov/
8+
9+
Last access
10+
20240730
11+
12+
Download and processing instructions
13+
Download the following file:
14+
https://gml.noaa.gov/aftp/data/trace_gases/n2o/flask/surface/n2o_surface-flask_ccgg_text.tar.gz
15+
"""
16+
17+
from esmvaltool.cmorizers.data.formatters.datasets import (
18+
noaa_gml_surface_flask,
19+
)
20+
21+
22+
def cmorization(in_dir, out_dir, cfg, cfg_user, start_date, end_date):
23+
"""Cmorization func call."""
24+
noaa_gml_surface_flask.cmorization(
25+
in_dir,
26+
out_dir,
27+
cfg,
28+
cfg_user,
29+
start_date,
30+
end_date,
31+
)

esmvaltool/recipes/examples/recipe_check_obs.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,15 @@ diagnostics:
860860
start_year: 1968}
861861
scripts: null
862862

863+
NOAA-GML-SURFACE-FLASK-N2O:
864+
description: NOAA Global Monitoring Lab Surface flask N2O data check
865+
variables:
866+
n2os:
867+
additional_datasets:
868+
- {dataset: NOAA-GML-SURFACE-FLASK-N2O, project: OBS6, mip: Amon, type: atmos, version: 1, tier: 2,
869+
start_year: 1997}
870+
scripts: null
871+
863872
NOAA-MBL-CH4:
864873
description: NOAA marine boundary layer CH4 check
865874
variables:
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@misc{noaa-gml-surface-flask-n2o,
2+
url = {https://www.esrl.noaa.gov/gmd/ccgg/flask.html},
3+
year = 2024,
4+
author = {Lan, X., J.W. Mund, A.M. Crotwell, K.W. Thoning, E. Moglia, M. Madronich, K. Baugh, G. Petron, M.J. Crotwell, D. Neff, S. Wolter, T. Mefford and S. DeVogel},
5+
title = {Atmospheric Nitrous Oxide Dry Air Mole Fractions from the NOAA GML Carbon Cycle Cooperative Global Air Sampling Network, 1997-2023},
6+
doi = {10.15138/53g1-x417},
7+
howpublished = {via website https://www.esrl.noaa.gov/gmd/ccgg/flask.html, provided by the NOAA Global Monitoring Laboratory, Earth System Research Laboratories.}
8+
}

0 commit comments

Comments
 (0)