Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2deee16
Temporarily remove the ocean heat content diagnostic as per email fro…
nocollier Feb 18, 2026
2a6f5c8
changes to configure files, data references updated where possible
nocollier Feb 19, 2026
ade4287
change how models are named in the plots and output filenames
nocollier Feb 19, 2026
c77383e
append the obs4REF dataset registry to the ilamb so these keys can be…
nocollier Feb 19, 2026
55553f8
add the evspsbl-pr metric only over land as requested
nocollier Feb 19, 2026
fe0b9f9
add ilamb model color selector, only 1 model but at least won't be black
nocollier Feb 19, 2026
d6d3b9c
bump ilamb3 version
nocollier Feb 19, 2026
2cf846b
changelog
nocollier Feb 19, 2026
3cc6603
fix: lockfile
lewisjared Feb 21, 2026
67d0378
expand ilamb3 ref configure files to allow for dictionaries with data…
nocollier Feb 23, 2026
ef7d6ad
Merge remote-tracking branch 'origin/main' into ilamb-updates
lewisjared Feb 24, 2026
8815a50
chore: fix mypy
lewisjared Feb 24, 2026
5393d00
chore: remove ohc dataset
lewisjared Feb 24, 2026
e8fab3e
chore: loosen facet filter type
lewisjared Feb 24, 2026
e9ad222
chore: clean up datarequirements
lewisjared Feb 24, 2026
c55b29c
revert: Undo the changes due to new datasets
lewisjared Mar 1, 2026
5e29107
chore: add missing variable
lewisjared Mar 1, 2026
1028f76
Merge remote-tracking branch 'origin/main' into ilamb-no-files
lewisjared Mar 1, 2026
404b25b
chore: add other missing variable
lewisjared Mar 1, 2026
063e7cb
chore: add lossy compression as the thetaO files are large
lewisjared Mar 1, 2026
a403a21
chore: rename changelog to match PR #573
lewisjared Mar 1, 2026
fa17b8e
chore: Add regression file
lewisjared Mar 1, 2026
116520f
chore: skip the diagnostic
lewisjared Mar 1, 2026
e51352d
chore: remove test
lewisjared Mar 1, 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
1 change: 1 addition & 0 deletions changelog/573.feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update `ilamb3`, remove the `ohc-noaa` diagnostic and add the `evspsbl-pr` diagnostic.
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,21 @@
"region": "30S-90S",
"frequency": "mon"
},
"Amon.evspsbl": {
"table_id": "Amon",
"variable_id": "evspsbl",
"cmip6_compound_name": "Amon.evspsbl",
"cmip7_compound_name": "atmos.evspsbl.tavg-u-hxy-u.mon.glb",
"branded_variable": "evspsbl_tavg-u-hxy-u",
"branding_suffix": "tavg-u-hxy-u",
"temporal_label": "tavg",
"vertical_label": "u",
"horizontal_label": "hxy",
"area_label": "u",
"realm": "atmos land",
"region": "glb",
"frequency": "mon"
},
"Amon.fco2antt": {
"table_id": "Amon",
"variable_id": "fco2antt",
Expand Down Expand Up @@ -1985,6 +2000,51 @@
"region": "glb",
"frequency": "fx"
},
"Omon.evs": {
"table_id": "Omon",
"variable_id": "evspsbl",
"cmip6_compound_name": "Omon.evs",
"cmip7_compound_name": "ocean.evspsbl.tavg-u-hxy-ifs.mon.glb",
"branded_variable": "evspsbl_tavg-u-hxy-ifs",
"branding_suffix": "tavg-u-hxy-ifs",
"temporal_label": "tavg",
"vertical_label": "u",
"horizontal_label": "hxy",
"area_label": "ifs",
"realm": "ocean",
"region": "glb",
"frequency": "mon"
},
"Omon.msftmrho": {
"table_id": "Omon",
"variable_id": "msftm",
"cmip6_compound_name": "Omon.msftmrho",
"cmip7_compound_name": "ocean.msftm.tavg-rho-hyb-sea.mon.glb",
"branded_variable": "msftm_tavg-rho-hyb-sea",
"branding_suffix": "tavg-rho-hyb-sea",
"temporal_label": "tavg",
"vertical_label": "rho",
"horizontal_label": "hyb",
"area_label": "sea",
"realm": "ocean",
"region": "glb",
"frequency": "mon"
},
"Omon.msftmz": {
"table_id": "Omon",
"variable_id": "msftm",
"cmip6_compound_name": "Omon.msftmz",
"cmip7_compound_name": "ocean.msftm.tavg-ol-hyb-sea.mon.glb",
"branded_variable": "msftm_tavg-ol-hyb-sea",
"branding_suffix": "tavg-ol-hyb-sea",
"temporal_label": "tavg",
"vertical_label": "ol",
"horizontal_label": "hyb",
"area_label": "sea",
"realm": "ocean",
"region": "glb",
"frequency": "mon"
},
"Omon.so": {
"table_id": "Omon",
"variable_id": "so",
Expand Down Expand Up @@ -2210,6 +2270,21 @@
"region": "30S-90S",
"frequency": "mon"
},
"SImon.sidmassevapsubl": {
"table_id": "SImon",
"variable_id": "evspsbl",
"cmip6_compound_name": "SImon.sidmassevapsubl",
"cmip7_compound_name": "seaIce.evspsbl.tavg-u-hxy-si.mon.glb",
"branded_variable": "evspsbl_tavg-u-hxy-si",
"branding_suffix": "tavg-u-hxy-si",
"temporal_label": "tavg",
"vertical_label": "u",
"horizontal_label": "hxy",
"area_label": "si",
"realm": "seaIce",
"region": "glb",
"frequency": "mon"
},
"SImon.sifllwdtop": {
"table_id": "SImon",
"variable_id": "rlds",
Expand Down
4 changes: 2 additions & 2 deletions packages/climate-ref-core/src/climate_ref_core/datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""

import hashlib
from collections.abc import Collection, Iterable, Iterator
from collections.abc import Collection, Iterable, Iterator, Mapping
from typing import Any

import pandas as pd
Expand All @@ -15,7 +15,7 @@
__all__ = ["Selector", "SourceDatasetType"]


def _clean_facets(raw_values: dict[str, str | Collection[str]]) -> dict[str, tuple[str, ...]]:
def _clean_facets(raw_values: Mapping[str, str | Collection[str]]) -> dict[str, tuple[str, ...]]:
"""
Clean the value of a facet filter to a tuple of strings
"""
Expand Down
13 changes: 10 additions & 3 deletions packages/climate-ref-core/src/climate_ref_core/esgf/cmip7.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,14 @@ def _convert_file_to_cmip7(cmip6_path: Path, cmip7_facets: dict[str, Any]) -> Pa
try:
logger.info(f"Writing translated CMIP7 file: {output_file}")
suppress_bounds_coordinates(ds_cmip7)
ds_cmip7.to_netcdf(output_file)

# Apply lossy compression - these are converted files used for
# verification only, so precision loss is acceptable.
encoding = {
var: {"zlib": True, "complevel": 5, "least_significant_digit": 3}
for var in ds_cmip7.data_vars
}
ds_cmip7.to_netcdf(output_file, encoding=encoding)
except PermissionError:
# If we can't write but file exists (race condition or permission issue), use it
if output_file.exists():
Expand Down Expand Up @@ -224,7 +231,7 @@ def _convert_to_cmip7_metadata(self, cmip6_row: dict[str, Any]) -> dict[str, Any
cmip7_row["branding_suffix"] = entry.branding_suffix
cmip7_row["branded_variable"] = entry.branded_variable
except KeyError:
logger.debug(
logger.error(
f"No DReq entry for {table_id}.{variable_id}, region/branding_suffix will not be set"
)

Expand Down Expand Up @@ -273,7 +280,7 @@ def fetch_datasets(self) -> pd.DataFrame:
cmip7_path = _convert_file_to_cmip7(cmip6_path, cmip7_row)
converted_files.append(str(cmip7_path))
except Exception as e:
logger.warning(f"Failed to convert {cmip6_path.name}: {e}")
logger.exception(f"Failed to convert {cmip6_path.name}: {e}")
continue
else:
logger.warning(f"CMIP6 file not found: {file_path}")
Expand Down
2 changes: 1 addition & 1 deletion packages/climate-ref-ilamb/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ classifiers = [
]
dependencies = [
"climate-ref-core",
"ilamb3>=2025.9.9,<2025.12", # to be relaxed in #548
"ilamb3>=2026.2.19",
"scipy<1.16", # https://github.com/statsmodels/statsmodels/issues/9584
"xarray<2025.11", # ilamb3 incompatibility with integrate_space units handling
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ registry: ilamb

gpp-WECANN:
sources:
# TODO: Update to use the obs4REF equiv
# TODO: Update to use the obs4REF equiv
gpp: ilamb/gpp/WECANN/gpp.nc
# gpp: obs4REF/ColumbiaU/WECANN-1-0/mon/gpp/gn/20250516/gpp_mon_WECANN-1-0_REF_gn_200701-201512.nc
relationships:
pr: ilamb/pr/GPCPv2.3/pr.nc
# pr: obs4REF/NOAA-NCEI/GPCP-2-3/mon/pr/gn/v20210727/pr_mon_GPCP-2-3_PCMDI_gn_197901-201907.nc
tas: ilamb/tas/CRU4.02/tas.nc
variable_cmap: Greens

Expand All @@ -16,8 +18,11 @@ gpp-FLUXNET2015:

mrro-LORA:
sources:
# TODO: Update to use the obs4REF equiv
# TODO: Update to use the obs4REF equiv
mrro: ilamb/mrro/LORA/LORA.nc
# mrro:
# obs_source: obs4ref
# source_id: LORA-1-1
variable_cmap: Blues

mrsos-WangMao:
Expand All @@ -37,8 +42,12 @@ cSoil-HWSD2:
variable_cmap: viridis

lai-AVH15C1:
# TODO: Update to use the obs4REF equiv
sources:
lai: ilamb/lai/AVH15C1/lai.nc
# lai:
# obs_source: obs4mips
# source_id: NOAA-NCEI-LAI-AVHRR-5-0
variable_cmap: Greens

nbp-Hoffman:
Expand All @@ -47,6 +56,13 @@ nbp-Hoffman:
sources:
# TODO: Update to use the obs4REF equiv
nbp: ilamb/nbp/HOFFMAN/nbp_1850-2010.nc
# nbp:
# obs_source: obs4ref
# variable_id: nbp
# source_id: Hoffman
transforms:
- integrate_space:
varname: nbp

snc-ESACCI:
sources:
Expand All @@ -58,3 +74,17 @@ burntFractionAll-GFED:
alternate_vars:
- burntFractionAll
test_source_id: CESM2

emp-GLEAMGPCP2.3:
analysis_variable: emp
sources:
et: ilamb/evspsbl/GLEAMv3.3a/et.nc
pr: obs4REF/NOAA-NCEI/GPCP-2-3/mon/pr/gn/v20210727/pr_mon_GPCP-2-3_PCMDI_gn_197901-201907.nc
transforms:
- select_time:
vmin: 2000-01
vmax: 2015-01
- expression:
expr: emp = et - pr
alternate_vars:
- evspsbl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ registry: iomb

thetao-WOA2023-surface:
sources:
# TODO: Update to use the obs4REF equiv
# NOTE: obs4REF equiv starts beyond historical, cannot use for CMIP6
thetao: ilamb/WOA/thetao_mon_WOA_A5B4_gn_200501-201412.nc
variable_cmap: Reds
transforms:
Expand All @@ -13,7 +13,7 @@ thetao-WOA2023-surface:

so-WOA2023-surface:
sources:
# TODO: Update to use the obs4REF equiv
# NOTE: obs4REF equiv starts beyond historical, cannot use for CMIP6
so: ilamb/WOA/so_mon_WOA_A5B4_gn_200501-201412.nc
transforms:
- select_depth:
Expand All @@ -30,20 +30,5 @@ amoc-RAPID:
transforms:
- msftmz_to_rapid
sources:
# TODO: Update to use the obs4REF equiv
# obs4REF equiv does not work
amoc: ilamb/RAPID/amoc_mon_RAPID_BE_NA_200404-202302.nc

ohc-NOAA:
sources:
ohc: ilamb/NOAA/ohc_yr_OHC_BE_gm_200506-202406.nc
related_vars:
- thetao
- volcello
transforms:
- select_depth:
vmin: 0
vmax: 2000
- ocean_heat_content:
reference_year: 2005
analyses:
- accumulate
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ ilamb/tas/CRU4.02/tas.nc sha1:2674da18a1a93483b50b1626e7a7ab741bf53d09
ilamb/nbp/HOFFMAN/nbp_1850-2010.nc sha1:8350af00614d6afc6b70ad314aa499a9ece80ec2
ilamb/snc/Snow-cci/snc_mon_Snow-cci_BE_gn_198201-201906.nc sha1:c0bfecd2f8b886e9301428d28bb6ff0507601be2
ilamb/burntFractionAll/GFED/burntArea.nc sha1:cf9d73c6a8bfc594737c9ba6ca4df613df4a28ab
ilamb/evspsbl/GLEAMv3.3a/et.nc sha1:5aaf73949af8c6b509ef16f684aa8efeccd983e2
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
ilamb/WOA/so_mon_WOA_A5B4_gn_200501-201412.nc sha1:831c42c3b2ba443c255150289a2c725d7f3e5838
ilamb/WOA/thetao_mon_WOA_A5B4_gn_200501-201412.nc sha1:86d9056208291d76233e65b26c658c1fa54c3ea6
ilamb/RAPID/amoc_mon_RAPID_BE_NA_200404-202302.nc sha1:3efe773e5c2a3c832977791ff7fd9cb9f473fe65
ilamb/NOAA/ohc_yr_OHC_BE_gm_200506-202406.nc sha1:a918799d8e24e4f0015b9047a74d470ae9f0445c
Loading
Loading