Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
8dd9c09
#736: Update to mappings, plugins and CDDS to support a test run through
matthew-mizielinski Jan 29, 2026
d913f49
#736: Update to mappings, plugins and CDDS to support a test run through
matthew-mizielinski Jan 29, 2026
1151306
#736: round 2 variable processing for ukcm2
mo-laurenboon Feb 2, 2026
2985139
#736: create round 3 directory structure
mo-laurenboon Feb 2, 2026
d777569
#736: create round 3 directory structure
mo-laurenboon Feb 2, 2026
8bdbde7
#736: Ruff fixes
matthew-mizielinski Feb 3, 2026
547ebb7
#736: upgrade copyrights
matthew-mizielinski Feb 3, 2026
3cb582d
#736: mapping fix
matthew-mizielinski Feb 3, 2026
8661a89
#736: conduct variable testing
mo-laurenboon Feb 3, 2026
5ffe3cf
#736: resolve merge conflicts
mo-laurenboon Feb 3, 2026
f291dd5
#736: resolve remaining merge conflict
mo-laurenboon Feb 3, 2026
2cd6103
#736: remove merge issues
matthew-mizielinski Feb 3, 2026
e69b543
#768: remove symlinks
matthew-mizielinski Feb 3, 2026
419ca31
#736: license header fix
matthew-mizielinski Feb 3, 2026
42320c7
#732: update bound coords for ukcm2
mo-laurenboon Feb 6, 2026
0c5f8e3
#732: update bound coords for ukcm2
mo-laurenboon Feb 6, 2026
737296e
#736: fix ukcm2 onm depth model data json
mo-laurenboon Feb 6, 2026
cc8a7fc
#736: update ond-grid-V bound coords
mo-laurenboon Feb 6, 2026
e436a0c
#736: Update missing model units for SImon.sidmassgrowthsi and SImon.…
mo-laurenboon Feb 9, 2026
aaa0dae
#736: Update missing units for simpthick_tavg-u-hxy-si, sbl_tavg-u-hx…
mo-laurenboon Feb 10, 2026
3db64cb
#736: update cycle frequency for ond
mo-laurenboon Feb 10, 2026
8d6b3bb
#736: update cycl freq for ond to P3M
mo-laurenboon Feb 10, 2026
060d223
#736: Update mappings
matthew-mizielinski Feb 10, 2026
cec37c0
#736:update copyrights
matthew-mizielinski Feb 11, 2026
5cb58b1
#736: Regenerate streams config
matthew-mizielinski Feb 11, 2026
7e342b6
#736: update of sea ice mappings
matthew-mizielinski Feb 11, 2026
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
11 changes: 9 additions & 2 deletions cdds/cdds/common/mip_tables.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
# (C) British Crown Copyright 2017-2025, Met Office.
# (C) British Crown Copyright 2017-2026, Met Office.
# Please see LICENSE.md for license details.

from os import listdir
from os.path import isfile, join
import json

# If a file matches one of the following suffixes, then it is ignored when loading MIP tables
NON_TABLE_FILE_SUFFIXES = ['_CV.json', '_coordinate.json', '_grids.json', '_formula_terms.json']
NON_TABLE_FILE_SUFFIXES = [
'_CV.json',
'_coordinate.json',
'_grids.json',
'_formula_terms.json',
'_long_name_overrides.json', # Added for CMIP7
'_cell_measures.json', # Added for CMIP7
]


class MipTables(object):
Expand Down
20 changes: 10 additions & 10 deletions cdds/cdds/common/plugins/cmip7/cmip7_grid.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) British Crown Copyright 2021-2025, Met Office.
# (C) British Crown Copyright 2021-2026, Met Office.
# Please see LICENSE.md for license details.
"""The :mod:`cmip7_grid` module contains the code required
handle grid information for CMIP7 models.
Expand Down Expand Up @@ -37,12 +37,12 @@ def from_name(cls, name: str) -> 'GridLabel':
return grid_label
raise KeyError('Not supported grid labels for {}'.format(name))

NATIVE = 'native', 'gn', False
NATIVE_ZONAL = 'native-zonal', 'gnz', False
REGRIDDED = 'regridded', 'gr', False
GLOBAL_MEAN = 'global-mean', 'gm', False
UGRID = 'ugrid', 'gn', True
VGRID = 'vgrid', 'gn', True
UVGRID = 'uvgrid', 'gn', True
UVGRID_ZONAL = 'uvgrid-zonal', 'gnz', True
SITES = 'sites', 'gn', False
NATIVE = 'native', 'g100', False
NATIVE_ZONAL = 'native-zonal', 'g100z', False
REGRIDDED = 'regridded', 'g100', False
GLOBAL_MEAN = 'global-mean', 'g100m', False
UGRID = 'ugrid', 'g100', True
VGRID = 'vgrid', 'g100', True
UVGRID = 'uvgrid', 'g100', True
UVGRID_ZONAL = 'uvgrid-zonal', 'g100z', True
SITES = 'sites', 'g100', False
45 changes: 44 additions & 1 deletion cdds/cdds/common/plugins/cmip7/cmip7_models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) British Crown Copyright 2021-2025, Met Office.
# (C) British Crown Copyright 2021-2026, Met Office.
# Please see LICENSE.md for license details.
"""The :mod:`cmip7_models` module contains the code required to
handle model parameters information for CMIP7 models.
Expand Down Expand Up @@ -27,6 +27,7 @@ def get_json_file(self) -> str:
return '{}.json'.format(self.value)

UKESM1_3_LL = 'UKESM1-3-LL'
UKCM2_0_LL = 'UKCM2-0-LL'


class UKESM1_3_LL_Params(BaseModelParameters):
Expand Down Expand Up @@ -70,6 +71,47 @@ def um_version(self) -> str:
return '10.8'


class UKCM2_0_LL_Params(BaseModelParameters):
"""Class to store the parameters for the UKESM1_3_LL model."""

def __init__(self) -> None:
super(UKCM2_0_LL_Params, self).__init__(Cmip7ModelId.UKCM2_0_LL)
self._grid_mappings: CMIP7GridMapping = CMIP7GridMapping()

@property
def model_version(self) -> str:
"""Returns the model version of the UKESM1_3_LL model.

Returns
-------
str
Model version of UKESM1_3_LL
"""
return '1.0'

@property
def data_request_version(self) -> str:
"""Returns the data request version of the UKESM1_3_LL model.

Returns
-------
str
Data request version of UKESM1_3_LL
"""
return '01.00.17'

@property
def um_version(self) -> str:
"""Returns the UM version of the UKESM1_3_LL model.

Returns
-------
str
UM version of UKESM1_3_LL
"""
return '10.8'


class Cmip7ModelsStore(BaseModelStore):
"""Singleton class to store for each model the corresponding parameters.
The parameters are defined in json files. The default parameters are
Expand All @@ -81,6 +123,7 @@ class Cmip7ModelsStore(BaseModelStore):
def __init__(self) -> None:
model_instances: List[BaseModelParameters] = [
UKESM1_3_LL_Params(),
UKCM2_0_LL_Params(),
]
super(Cmip7ModelsStore, self).__init__(model_instances)
self.logger = logging.getLogger(self.__class__.__name__)
Expand Down
6 changes: 3 additions & 3 deletions cdds/cdds/common/plugins/cmip7/cmip7_plugin.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) British Crown Copyright 2021-2025, Met Office.
# (C) British Crown Copyright 2021-2026, Met Office.
# Please see LICENSE.md for license details.
"""The :mod:`cmip7_plugin` module contains the code for the CMIP7 plugin."""
import os
Expand All @@ -18,7 +18,7 @@
from cdds.common.request.request import Request


CMIP7_LICENSE = "CC-BY 4.0"
CMIP7_LICENSE = "CC-BY-4-0"


class Cmip7Plugin(BasePlugin):
Expand Down Expand Up @@ -121,4 +121,4 @@ def mip_table_dir(self) -> str:
str
Path to the MIP table directory
"""
return os.path.join(os.environ['CDDS_ETC'], 'mip_tables', 'CMIP7', '01.00.29')
return os.path.join(os.environ['CDDS_ETC'], 'mip_tables', 'CMIP7', 'DR-1.2.2.3-v1.0.2')
Loading