diff --git a/esmvaltool/cmorizers/data/cmor_config/WOA.yml b/esmvaltool/cmorizers/data/cmor_config/WOA.yml index 72e5e0f48d..ddeff67505 100644 --- a/esmvaltool/cmorizers/data/cmor_config/WOA.yml +++ b/esmvaltool/cmorizers/data/cmor_config/WOA.yml @@ -13,29 +13,29 @@ attributes: # source: 'https://www.ncei.noaa.gov/data/oceans/woa/WOA13/DATAv2/' # reference: 'woa2013v2' - # WOA18 + # WOA23 project_id: OBS6 - short_name: woa18 - version: '2018' - source: 'https://www.ncei.noaa.gov/data/oceans/woa/WOA18/DATA/' - reference: 'woa2018' + short_name: woa23 + version: '2023' + source: 'https://www.ncei.noaa.gov/data/oceans/woa/WOA23/DATA/' + reference: 'woa2023' comment: '' # Variables to cmorize (here use only filename prefix) -# Temperature and salinity from 1981-2010 climatology (81B0) +# decav seven decadal means 1955 - 2022 # WOA23 update variables: thetao: mip: Omon raw_var: t_an name: temperature - file: decav81B0_t + file: decav_t srf_var: tos so: mip: Omon raw_var: s_an name: salinity - file: decav81B0_s + file: decav_s srf_var: sos o2: mip: Oyr @@ -61,4 +61,4 @@ variables: # Custom dictionary for this cmorizer custom: reference_year: 2000 - resolution: '1.00' + resolution: '1.00' # 0.25 or 1.00 available for temperature and salinity diff --git a/esmvaltool/cmorizers/data/downloaders/datasets/woa.py b/esmvaltool/cmorizers/data/downloaders/datasets/woa.py index 5ff75ff390..eacbea7470 100644 --- a/esmvaltool/cmorizers/data/downloaders/datasets/woa.py +++ b/esmvaltool/cmorizers/data/downloaders/datasets/woa.py @@ -43,17 +43,17 @@ def download_dataset( def download(file): downloader.download_file( - "https://www.ncei.noaa.gov/data/oceans/woa/WOA18/DATA/" + file, + "https://www.ncei.noaa.gov/data/oceans/woa/WOA23/DATA/" + file, wget_options=[], ) data_paths = [ - "nitrate/netcdf/all/1.00/woa18_all_n00_01.nc", - "oxygen/netcdf/all/1.00/woa18_all_o00_01.nc", - "phosphate/netcdf/all/1.00/woa18_all_p00_01.nc", - "salinity/netcdf/decav81B0/1.00/woa18_decav81B0_s00_01.nc", - "silicate/netcdf/all/1.00/woa18_all_i00_01.nc", - "temperature/netcdf/decav81B0/1.00/woa18_decav81B0_t00_01.nc", + "nitrate/netcdf/all/1.00/woa23_all_n00_01.nc", + "oxygen/netcdf/all/1.00/woa23_all_o00_01.nc", + "phosphate/netcdf/all/1.00/woa23_all_p00_01.nc", + "salinity/netcdf/decav/1.00/woa23_decav_s00_01.nc", + "silicate/netcdf/all/1.00/woa23_all_i00_01.nc", + "temperature/netcdf/decav/1.00/woa23_decav_t00_01.nc", ] for source_file in data_paths: diff --git a/esmvaltool/cmorizers/data/formatters/datasets/woa.py b/esmvaltool/cmorizers/data/formatters/datasets/woa.py index 697ac88695..c9a709bedf 100644 --- a/esmvaltool/cmorizers/data/formatters/datasets/woa.py +++ b/esmvaltool/cmorizers/data/formatters/datasets/woa.py @@ -4,6 +4,7 @@ Tier 2: other freely-available dataset. Source + WOA23: https://www.ncei.noaa.gov/data/oceans/woa/WOA23/DATA WOA18: https://www.ncei.noaa.gov/data/oceans/woa/WOA18/DATA WOA13: https://www.ncei.noaa.gov/data/oceans/woa/WOA13/DATAv2 @@ -24,6 +25,7 @@ Modification history + 20230213-chun_felicity: WOA23 update 20210311-lovato_tomas: handle WOA18/WOA13, raw data download, use OBS6 20200911-bock_lisa: extend to WOA18 20190328-lovato_tomas: cmorizer revision @@ -53,7 +55,7 @@ def _fix_data(cube, var, version): """Specific data fixes for different variables.""" logger.info("Fixing data ...") - if version == "2018": + if version in ["2018", "2023"]: with constant_metadata(cube): if var in ["o2", "po4", "si", "no3"]: cube /= 1000.0 # Convert from umol/kg to mol/m^3 diff --git a/esmvaltool/recipes/examples/recipe_check_obs.yml b/esmvaltool/recipes/examples/recipe_check_obs.yml index 386f6d04d9..32046a491e 100644 --- a/esmvaltool/recipes/examples/recipe_check_obs.yml +++ b/esmvaltool/recipes/examples/recipe_check_obs.yml @@ -1123,7 +1123,7 @@ diagnostics: mip: Oyr additional_datasets: - {dataset: WOA, project: OBS6, tier: 2, - type: clim, version: 2018, start_year: 2000, end_year: 2000} + type: clim, version: 2023, start_year: 2000, end_year: 2000} - {dataset: WOA, project: OBS, tier: 2, type: clim, version: 2013v2, start_year: 2000, end_year: 2000} scripts: null diff --git a/esmvaltool/references/woa2023.bibtex b/esmvaltool/references/woa2023.bibtex new file mode 100644 index 0000000000..2c07adb88e --- /dev/null +++ b/esmvaltool/references/woa2023.bibtex @@ -0,0 +1,8 @@ +@misc{https://doi.org/10.25921/va26-hv25, + doi = {10.25921/VA26-HV25}, + url = {https://www.ncei.noaa.gov/archive/accession/NCEI-WOA23}, + author = {Reagan, James R. and Boyer, Tim P. and García, Hernán E. and Locarnini, Ricardo A. and Baranova, Olga K. and Bouchard, Courtney and Cross, Scott L. and Mishonov, Alexey V. and Paver, Christopher R. and Seidov, Dan and Wang, Zhankun and Dukhovskoy, Dmitry}, + title = {World Ocean Atlas 2023}, + publisher = {NOAA National Centers for Environmental Information}, + year = {2023} +} diff --git a/tests/integration/test_cmorizer.py b/tests/integration/test_cmorizer.py index 654ce61647..5aec62bac1 100644 --- a/tests/integration/test_cmorizer.py +++ b/tests/integration/test_cmorizer.py @@ -87,12 +87,12 @@ def put_dummy_data(data_path: Path) -> None: """Create a small dummy netCDF file to be cmorized.""" data_info = [ # dir_name, file_name_prefix, var_name - ("temperature", "woa18_decav81B0_t", "t_an"), - ("salinity", "woa18_decav81B0_s", "s_an"), - ("oxygen", "woa18_all_o", "o_an"), - ("nitrate", "woa18_all_n", "n_an"), - ("phosphate", "woa18_all_p", "p_an"), - ("silicate", "woa18_all_i", "i_an"), + ("temperature", "woa23_decav_t", "t_an"), + ("salinity", "woa23_decav_s", "s_an"), + ("oxygen", "woa23_all_o", "o_an"), + ("nitrate", "woa23_all_n", "n_an"), + ("phosphate", "woa23_all_p", "p_an"), + ("silicate", "woa23_all_i", "i_an"), ] for dir_name, file_name_prefix, var_name in data_info: