climate-ref-ilamb 0.5.3__py3-none-any.whl → 0.5.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,9 +10,8 @@ import importlib.resources
10
10
 
11
11
  import yaml
12
12
 
13
- from climate_ref_core.dataset_registry import dataset_registry_manager
13
+ from climate_ref_core.dataset_registry import DATASET_URL, dataset_registry_manager
14
14
  from climate_ref_core.providers import DiagnosticProvider
15
- from climate_ref_ilamb.datasets import ILAMB_DATA_VERSION
16
15
  from climate_ref_ilamb.standard import ILAMBStandard
17
16
 
18
17
  __version__ = importlib.metadata.version("climate-ref-ilamb")
@@ -22,27 +21,21 @@ provider = DiagnosticProvider("ILAMB", __version__)
22
21
  # Register some datasets
23
22
  dataset_registry_manager.register(
24
23
  "ilamb-test",
25
- base_url="https://www.ilamb.org/ILAMB-Data/DATA",
24
+ base_url=DATASET_URL,
26
25
  package="climate_ref_ilamb.dataset_registry",
27
26
  resource="test.txt",
28
- cache_name="ilamb3",
29
- version=ILAMB_DATA_VERSION,
30
27
  )
31
28
  dataset_registry_manager.register(
32
29
  "ilamb",
33
- base_url="https://www.ilamb.org/ILAMB-Data/DATA",
30
+ base_url=DATASET_URL,
34
31
  package="climate_ref_ilamb.dataset_registry",
35
32
  resource="ilamb.txt",
36
- cache_name="ilamb3",
37
- version=ILAMB_DATA_VERSION,
38
33
  )
39
34
  dataset_registry_manager.register(
40
35
  "iomb",
41
- base_url="https://www.ilamb.org/ilamb3-data/",
36
+ base_url=DATASET_URL,
42
37
  package="climate_ref_ilamb.dataset_registry",
43
38
  resource="iomb.txt",
44
- cache_name="ilamb3",
45
- version=ILAMB_DATA_VERSION,
46
39
  )
47
40
 
48
41
  # Dynamically register ILAMB diagnostics
@@ -2,25 +2,25 @@ registry: ilamb
2
2
 
3
3
  gpp-WECANN:
4
4
  sources:
5
- gpp: gpp/WECANN/gpp.nc
5
+ gpp: ilamb/gpp/WECANN/gpp.nc
6
6
  relationships:
7
- pr: pr/GPCPv2.3/pr.nc
8
- tas: tas/CRU4.02/tas.nc
7
+ pr: ilamb/pr/GPCPv2.3/pr.nc
8
+ tas: ilamb/tas/CRU4.02/tas.nc
9
9
  variable_cmap: Greens
10
10
 
11
11
  gpp-FLUXNET2015:
12
12
  sources:
13
- gpp: gpp/FLUXNET2015/gpp.nc
13
+ gpp: ilamb/gpp/FLUXNET2015/gpp.nc
14
14
  variable_cmap: Greens
15
15
 
16
16
  mrro-LORA:
17
17
  sources:
18
- mrro: mrro/LORA/LORA.nc
18
+ mrro: ilamb/mrro/LORA/LORA.nc
19
19
  variable_cmap: Blues
20
20
 
21
21
  mrsos-WangMao:
22
22
  sources:
23
- mrsol: mrsol/WangMao/mrsol_olc.nc
23
+ mrsol: ilamb/mrsol/WangMao/mrsol_olc.nc
24
24
  alternate_vars:
25
25
  - mrsos
26
26
  depth: 0.0
@@ -30,16 +30,16 @@ mrsos-WangMao:
30
30
 
31
31
  cSoil-HWSD2:
32
32
  sources:
33
- cSoil: cSoil/HWSD2/hwsd2_cSoil.nc
33
+ cSoil: ilamb/cSoil/HWSD2/hwsd2_cSoil.nc
34
34
  variable_cmap: viridis
35
35
 
36
36
  lai-AVH15C1:
37
37
  sources:
38
- lai: lai/AVH15C1/lai.nc
38
+ lai: ilamb/lai/AVH15C1/lai.nc
39
39
  variable_cmap: Greens
40
40
 
41
41
  nbp-Hoffman:
42
42
  analyses:
43
43
  - nbp
44
44
  sources:
45
- nbp: nbp/HOFFMAN/nbp_1850-2010.nc
45
+ nbp: ilamb/nbp/HOFFMAN/nbp_1850-2010.nc
@@ -2,7 +2,7 @@ registry: iomb
2
2
 
3
3
  thetao-WOA2023-surface:
4
4
  sources:
5
- thetao: WOA/thetao_mon_WOA_A5B4_gn_200501-201412.nc
5
+ thetao: ilamb/WOA/thetao_mon_WOA_A5B4_gn_200501-201412.nc
6
6
  variable_cmap: Reds
7
7
  depth: 0.0
8
8
  alternate_vars:
@@ -10,7 +10,7 @@ thetao-WOA2023-surface:
10
10
 
11
11
  so-WOA2023-surface:
12
12
  sources:
13
- so: WOA/so_mon_WOA_A5B4_gn_200501-201412.nc
13
+ so: ilamb/WOA/so_mon_WOA_A5B4_gn_200501-201412.nc
14
14
  variable_cmap: YlGn
15
15
  depth: 0.0
16
16
  alternate_vars:
@@ -24,4 +24,4 @@ amoc-RAPID:
24
24
  transform:
25
25
  - msftmz_to_rapid
26
26
  sources:
27
- amoc: RAPID/amoc_mon_RAPID_BE_NA_200404-202302.nc
27
+ amoc: ilamb/RAPID/amoc_mon_RAPID_BE_NA_200404-202302.nc
@@ -1,11 +1,11 @@
1
- cSoil/HWSD2/hwsd2_cSoil.nc sha1:9a6377e4c5ff457c08c194d2c376c46e003a4f84
2
- gpp/FLUXNET2015/gpp.nc sha1:16fd177e007caef2565687e2cd32884e20ef16e5
3
- gpp/WECANN/gpp.nc sha1:6e864a6ae201195cdf995a3a81720188af441e13
4
- lai/AVH15C1/lai.nc sha1:ccace4f84912d63acbb9ee09ee7b743412207a0d
5
- mrro/LORA/LORA.nc sha1:72bb16787877591d0c54a36d74697d0d208f985a
6
- mrsol/WangMao/mrsol_olc.nc sha1:24cbc9df69569bed3a39c20e499cfe4f911bd30e
7
- regions/GlobalLand.nc sha1:2f987d44fdba6ad0e72d14d6a2fecb7e8df2a9c5
8
- regions/Koppen_coarse.nc sha1:e464030db49f0295a6a22a81ca602b0f3c499b72
9
- pr/GPCPv2.3/pr.nc sha1:e1b942863ec76a75aa972b6d75e2e08646741259
10
- tas/CRU4.02/tas.nc sha1:2674da18a1a93483b50b1626e7a7ab741bf53d09
11
- nbp/HOFFMAN/nbp_1850-2010.nc sha1:8350af00614d6afc6b70ad314aa499a9ece80ec2
1
+ ilamb/cSoil/HWSD2/hwsd2_cSoil.nc sha1:9a6377e4c5ff457c08c194d2c376c46e003a4f84
2
+ ilamb/gpp/FLUXNET2015/gpp.nc sha1:16fd177e007caef2565687e2cd32884e20ef16e5
3
+ ilamb/gpp/WECANN/gpp.nc sha1:6e864a6ae201195cdf995a3a81720188af441e13
4
+ ilamb/lai/AVH15C1/lai.nc sha1:ccace4f84912d63acbb9ee09ee7b743412207a0d
5
+ ilamb/mrro/LORA/LORA.nc sha1:72bb16787877591d0c54a36d74697d0d208f985a
6
+ ilamb/mrsol/WangMao/mrsol_olc.nc sha1:24cbc9df69569bed3a39c20e499cfe4f911bd30e
7
+ ilamb/regions/GlobalLand.nc sha1:2f987d44fdba6ad0e72d14d6a2fecb7e8df2a9c5
8
+ ilamb/regions/Koppen_coarse.nc sha1:e464030db49f0295a6a22a81ca602b0f3c499b72
9
+ ilamb/pr/GPCPv2.3/pr.nc sha1:e1b942863ec76a75aa972b6d75e2e08646741259
10
+ ilamb/tas/CRU4.02/tas.nc sha1:2674da18a1a93483b50b1626e7a7ab741bf53d09
11
+ ilamb/nbp/HOFFMAN/nbp_1850-2010.nc sha1:8350af00614d6afc6b70ad314aa499a9ece80ec2
@@ -1,3 +1,3 @@
1
- WOA/so_mon_WOA_A5B4_gn_200501-201412.nc sha1:831c42c3b2ba443c255150289a2c725d7f3e5838
2
- WOA/thetao_mon_WOA_A5B4_gn_200501-201412.nc sha1:86d9056208291d76233e65b26c658c1fa54c3ea6
3
- RAPID/amoc_mon_RAPID_BE_NA_200404-202302.nc sha1:3efe773e5c2a3c832977791ff7fd9cb9f473fe65
1
+ ilamb/WOA/so_mon_WOA_A5B4_gn_200501-201412.nc sha1:831c42c3b2ba443c255150289a2c725d7f3e5838
2
+ ilamb/WOA/thetao_mon_WOA_A5B4_gn_200501-201412.nc sha1:86d9056208291d76233e65b26c658c1fa54c3ea6
3
+ ilamb/RAPID/amoc_mon_RAPID_BE_NA_200404-202302.nc sha1:3efe773e5c2a3c832977791ff7fd9cb9f473fe65
@@ -1,3 +1,3 @@
1
- test/Site/tas.nc sha1:3e757c9feadea581a92e6f4afb402b86168e113a
2
- test/Grid/gpp.nc sha1:2688085f95fa13617b20c723c66b0009bd661847
3
- test/Grid/pr.nc sha1:d667eb216939f5797d59b59cb4ade5ec31e67659
1
+ ilamb/test/Site/tas.nc sha1:3e757c9feadea581a92e6f4afb402b86168e113a
2
+ ilamb/test/Grid/gpp.nc sha1:2688085f95fa13617b20c723c66b0009bd661847
3
+ ilamb/test/Grid/pr.nc sha1:d667eb216939f5797d59b59cb4ade5ec31e67659
@@ -7,8 +7,6 @@ import pooch
7
7
 
8
8
  from climate_ref_core.datasets import DatasetCollection
9
9
 
10
- ILAMB_DATA_VERSION = "0.1" # we don't really have data versions for the collection :/
11
-
12
10
 
13
11
  def registry_to_collection(registry: pooch.Pooch) -> DatasetCollection:
14
12
  """
@@ -23,63 +23,132 @@ from climate_ref_ilamb.datasets import (
23
23
  )
24
24
 
25
25
 
26
- def _build_cmec_bundle(name: str, df: pd.DataFrame) -> dict[str, Any]:
26
+ def format_cmec_output_bundle(
27
+ dataset: pd.DataFrame,
28
+ dimensions: list[str],
29
+ metadata_columns: list[str],
30
+ value_column: str = "value",
31
+ ) -> dict[str, Any]:
32
+ """
33
+ Create a CMEC output bundle for the dataset.
34
+
35
+ Parameters
36
+ ----------
37
+ dataset
38
+ Processed dataset
39
+ dimensions
40
+ The dimensions of the dataset (e.g., ["source_id", "member_id", "region"])
41
+ metadata_columns
42
+ The columns to be used as metadata (e.g., ["Description", "LongName"])
43
+ value_column
44
+ The column containing the values
45
+
46
+ Returns
47
+ -------
48
+ A CMEC output bundle ready to be written to disk
49
+ """
50
+ # Validate that all required columns exist
51
+ required_columns = set(dimensions) | {value_column} | set(metadata_columns)
52
+ missing_columns = required_columns - set(dataset.columns)
53
+ if missing_columns:
54
+ raise ValueError(f"Missing required columns: {missing_columns}")
55
+
56
+ # Build the dimensions section
57
+ dimensions_dict: dict[str, dict[str, dict[str, str]]] = {}
58
+
59
+ # For each dimension, create a dictionary of unique values and their metadata
60
+ for dim in dimensions:
61
+ unique_values = dataset[dim].unique()
62
+ dim_dict: dict[str, dict[str, str]] = {}
63
+
64
+ for val in unique_values:
65
+ # Get the row for this dimension value
66
+
67
+ dim_dict[str(val)] = {}
68
+
69
+ if dim == dimensions[-1]:
70
+ # If this is the last dimension, add the value column to the metadata
71
+
72
+ dim_dict[str(val)] = dataset[dataset[dim] == val].iloc[0][metadata_columns].to_dict()
73
+
74
+ dimensions_dict[dim] = dim_dict
75
+
76
+ # Build the results section - create nested structure based on dimensions
77
+ def nest_results(df: pd.DataFrame, dims: list[str]) -> dict[str, Any] | float:
78
+ if not dims:
79
+ return float(df[value_column].iloc[0].item())
80
+
81
+ current_dim = dims[0]
82
+ remaining_dims = dims[1:]
83
+
84
+ return {
85
+ str(group_name): nest_results(group_df, remaining_dims)
86
+ for group_name, group_df in df.groupby(current_dim)
87
+ }
88
+
89
+ results = nest_results(dataset, list(dimensions))
90
+
91
+ return {"DIMENSIONS": {"json_structure": list(dimensions), **dimensions_dict}, "RESULTS": results}
92
+
93
+
94
+ def _build_cmec_bundle(df: pd.DataFrame) -> dict[str, Any]:
27
95
  """
28
96
  Build a CMEC bundle from information in the dataframe.
29
97
 
30
- TODO: Migrate to use pycmec when ready.
31
- TODO: Add plots and html output.
32
98
  """
99
+ # TODO: Handle the reference data
100
+ # reference_df = df[df["source"] == "Reference"]
101
+ model_df = df[df["source"] != "Reference"]
102
+
103
+ # Source is formatted as "ACCESS-ESM1-5-r1i1p1f1-gn"
104
+ # This assumes that the member_id and grid_label are always the last two parts of the source string
105
+ # and don't contain '-'
106
+ extracted_source = model_df.source.str.extract(r"([\w-]+)-([\w\d]+)-([\w\d]+)")
107
+ model_df["source_id"] = extracted_source[0]
108
+ model_df["member_id"] = extracted_source[1]
109
+ model_df["grid_label"] = extracted_source[2]
110
+
111
+ # Strip out units from the name
112
+ # These are available in the attributes
113
+ extracted_source = model_df.name.str.extract(r"(.*)\s\[.*\]")
114
+ model_df["name"] = extracted_source[0]
115
+
116
+ model_df = model_df.rename(
117
+ columns={
118
+ "analysis": "metric",
119
+ "name": "statistic",
120
+ }
121
+ )
122
+
123
+ dimensions = ["experiment_id", "source_id", "member_id", "grid_label", "region", "metric", "statistic"]
124
+ attributes = ["type", "units"]
125
+
126
+ bundle = format_cmec_output_bundle(
127
+ model_df,
128
+ dimensions=dimensions,
129
+ metadata_columns=attributes,
130
+ value_column="value",
131
+ )
132
+
33
133
  ilamb_regions = ilr.Regions()
34
- bundle = {
35
- "DIMENSIONS": {
36
- "json_structure": ["region", "model", "metric", "statistic"],
37
- "region": {
38
- r: {
39
- "LongName": "None" if r == "None" else ilamb_regions.get_name(r),
40
- "Description": "Reference data extents" if r == "None" else ilamb_regions.get_name(r),
41
- "Generator": "N/A" if r == "None" else ilamb_regions.get_source(r),
42
- }
43
- for r in df["region"].unique()
44
- },
45
- "model": {m: {"Description": m, "Source": m} for m in df["source"].unique() if m != "Reference"},
46
- "metric": {
47
- name: {
48
- "Name": name,
49
- "Abstract": "benchmark score",
50
- "URI": [
51
- "https://www.osti.gov/biblio/1330803",
52
- "https://doi.org/10.1029/2018MS001354",
53
- ],
54
- "Contact": "forrest AT climatemodeling.org",
55
- }
56
- },
57
- "statistic": {s: {} for s in df["name"].unique()},
58
- },
59
- "RESULTS": {
60
- r: {
61
- m: {
62
- name: {
63
- s: float(
64
- df[(df["source"] == m) & (df["region"] == r) & (df["name"] == s)].iloc[0]["value"]
65
- )
66
- for s in df["name"].unique()
67
- }
68
- }
69
- for m in df["source"].unique()
70
- if m != "Reference"
71
- }
72
- for r in df["region"].unique()
73
- },
74
- }
134
+ for region, region_info in bundle["DIMENSIONS"]["region"].items():
135
+ if region == "None":
136
+ region_info["LongName"] = "None"
137
+ region_info["Description"] = "Reference data extents"
138
+ region_info["Generator"] = "N/A"
139
+ else:
140
+ region_info["LongName"] = ilamb_regions.get_name(region)
141
+ region_info["Description"] = ilamb_regions.get_name(region)
142
+ region_info["Generator"] = ilamb_regions.get_source(region)
143
+
75
144
  return bundle
76
145
 
77
146
 
78
- def _form_bundles(key: str, df: pd.DataFrame) -> tuple[CMECMetric, CMECOutput]:
147
+ def _form_bundles(df: pd.DataFrame) -> tuple[CMECMetric, CMECOutput]:
79
148
  """
80
149
  Create the output bundles (really a lift to make Ruff happy with the size of run()).
81
150
  """
82
- metric_bundle = _build_cmec_bundle(key, df)
151
+ metric_bundle = _build_cmec_bundle(df)
83
152
  output_bundle = CMECOutput.create_template()
84
153
  return CMECMetric.model_validate(metric_bundle), CMECOutput.model_validate(output_bundle)
85
154
 
@@ -91,8 +160,8 @@ def _set_ilamb3_options(registry: pooch.Pooch, registry_file: str) -> None:
91
160
  ilamb3.conf.reset()
92
161
  ilamb_regions = ilr.Regions()
93
162
  if registry_file == "ilamb":
94
- ilamb_regions.add_netcdf(registry.fetch("regions/GlobalLand.nc"))
95
- ilamb_regions.add_netcdf(registry.fetch("regions/Koppen_coarse.nc"))
163
+ ilamb_regions.add_netcdf(registry.fetch("ilamb/regions/GlobalLand.nc"))
164
+ ilamb_regions.add_netcdf(registry.fetch("ilamb/regions/Koppen_coarse.nc"))
96
165
  ilamb3.conf.set(regions=["global", "tropical"])
97
166
 
98
167
 
@@ -160,7 +229,15 @@ class ILAMBStandard(Diagnostic):
160
229
  group_by=("experiment_id",),
161
230
  ),
162
231
  )
163
- self.facets = ("region", "model", "metric", "statistic")
232
+ self.facets = (
233
+ "experiment_id",
234
+ "source_id",
235
+ "member_id",
236
+ "grid_label",
237
+ "region",
238
+ "metric",
239
+ "statistic",
240
+ )
164
241
 
165
242
  # Setup ILAMB data and options
166
243
  self.registry_file = registry_file
@@ -197,10 +274,14 @@ class ILAMBStandard(Diagnostic):
197
274
  -------
198
275
  An execution result object
199
276
  """
277
+ selectors = definition.datasets[SourceDatasetType.CMIP6].selector_dict()
200
278
  _set_ilamb3_options(self.registry, self.registry_file)
201
279
 
202
280
  df = _load_csv_and_merge(definition.output_directory)
203
- metric_bundle, output_bundle = _form_bundles(definition.key, df)
281
+ # Add the selectors to the dataframe
282
+ for key, value in selectors.items():
283
+ df[key] = value
284
+ metric_bundle, output_bundle = _form_bundles(df)
204
285
 
205
286
  return ExecutionResult.build_from_output_bundle(
206
287
  definition, cmec_output_bundle=output_bundle, cmec_metric_bundle=metric_bundle
@@ -1,14 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: climate-ref-ilamb
3
- Version: 0.5.3
3
+ Version: 0.5.5
4
4
  Summary: ILAMB diagnostic provider for the Rapid Evaluation Framework
5
5
  Author-email: Nathan Collier <nathaniel.collier@gmail.com>
6
6
  License: Apache-2.0
7
7
  License-File: LICENCE
8
8
  License-File: NOTICE
9
- Classifier: Development Status :: 4 - Beta
9
+ Classifier: Development Status :: 3 - Alpha
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: Apache Software License
12
13
  Classifier: Operating System :: OS Independent
13
14
  Classifier: Programming Language :: Python
14
15
  Classifier: Programming Language :: Python :: 3
@@ -19,7 +20,6 @@ Classifier: Topic :: Scientific/Engineering
19
20
  Requires-Python: >=3.11
20
21
  Requires-Dist: climate-ref-core
21
22
  Requires-Dist: ilamb3>=2025.4.28
22
- Requires-Dist: types-pyyaml>=6.0.12.20241230
23
23
  Description-Content-Type: text/markdown
24
24
 
25
25
  # climate-ref-ilamb
@@ -0,0 +1,14 @@
1
+ climate_ref_ilamb/__init__.py,sha256=hMEkSjBY3yo-EbdMNOIvMSdGK14G2s5PERmWrBEtzFk,1414
2
+ climate_ref_ilamb/datasets.py,sha256=MVCt1pxV5dIfYLm6huC0BZWP5stCamYNwXzc7kKW5AI,799
3
+ climate_ref_ilamb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ climate_ref_ilamb/standard.py,sha256=xloR7gtinWVILjBFsoFP9N2DbovmdXR8GawFXS9L90w,9834
5
+ climate_ref_ilamb/configure/ilamb.yaml,sha256=iq1u-VNBr622pxB4zUBRPAT_dNDBeW-hoWbivK6QHfo,799
6
+ climate_ref_ilamb/configure/iomb.yaml,sha256=HeA5DDp6Pi2NAkQh5d3Vxsc2LVY5ucKLua1W4A0vOTQ,494
7
+ climate_ref_ilamb/dataset_registry/ilamb.txt,sha256=gO-nyNjJQYyFdCQcRaDjA7DtC8YaLTrxfXixfGRq4Dw,817
8
+ climate_ref_ilamb/dataset_registry/iomb.txt,sha256=-ud-u2sTmamGNVFRS1GuJUfi-7UcMUMo_22h5Ke8kUg,284
9
+ climate_ref_ilamb/dataset_registry/test.txt,sha256=gBjUJ6W-crghYqKN0QOFmjyqpMxKK50dU3SYTuIA6jM,206
10
+ climate_ref_ilamb-0.5.5.dist-info/METADATA,sha256=pOhMANm5mtkx_QaeEMsMsva1uyo3aTUi-iJ6Xa4IBks,2258
11
+ climate_ref_ilamb-0.5.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
+ climate_ref_ilamb-0.5.5.dist-info/licenses/LICENCE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
13
+ climate_ref_ilamb-0.5.5.dist-info/licenses/NOTICE,sha256=4qTlax9aX2-mswYJuVrLqJ9jK1IkN5kSBqfVvYLF3Ws,128
14
+ climate_ref_ilamb-0.5.5.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- climate_ref_ilamb/__init__.py,sha256=PW3FMUdCT7JCx3WgCx6caJ-fgttrYDyfqQjfsYzGiKc,1711
2
- climate_ref_ilamb/datasets.py,sha256=LlhdxDkesDZayqTWinrCcwLCJhYH6W-OU9rVXhyO-ds,887
3
- climate_ref_ilamb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- climate_ref_ilamb/standard.py,sha256=hv5KhnpCXkNlM1UOqWl6i2X6N29u90bHeO8n_jTSUOY,7298
5
- climate_ref_ilamb/configure/ilamb.yaml,sha256=bxovGQoKFLzhmV5pjMizm5GBK8bA9OoJtWB2L87hBwY,745
6
- climate_ref_ilamb/configure/iomb.yaml,sha256=rZa1xPr7H0MzumJmeE_ca6JwT0cRX5pPOh4crm85kw0,476
7
- climate_ref_ilamb/dataset_registry/ilamb.txt,sha256=FdjBSdR5cFMUWO89CumSMX2YYi6mhAghyn_cNLpOFaE,751
8
- climate_ref_ilamb/dataset_registry/iomb.txt,sha256=Si4c0Q8kXeyJLpzpmDGTkbQEI0GQ-lbHuXsmvP0QUuo,266
9
- climate_ref_ilamb/dataset_registry/test.txt,sha256=FiEQbUzeUi5Ww6akNXKoHmcuYkJae5G4n4rRisY7-pg,188
10
- climate_ref_ilamb-0.5.3.dist-info/METADATA,sha256=-Jo5aSbGISxteaKOgVP15QXPbSmhjhzDGiQyskk8CVw,2239
11
- climate_ref_ilamb-0.5.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- climate_ref_ilamb-0.5.3.dist-info/licenses/LICENCE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
13
- climate_ref_ilamb-0.5.3.dist-info/licenses/NOTICE,sha256=4qTlax9aX2-mswYJuVrLqJ9jK1IkN5kSBqfVvYLF3Ws,128
14
- climate_ref_ilamb-0.5.3.dist-info/RECORD,,