climate-ref-ilamb 0.5.4__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.
- climate_ref_ilamb/__init__.py +4 -11
- climate_ref_ilamb/configure/ilamb.yaml +9 -9
- climate_ref_ilamb/configure/iomb.yaml +3 -3
- climate_ref_ilamb/dataset_registry/ilamb.txt +11 -11
- climate_ref_ilamb/dataset_registry/iomb.txt +3 -3
- climate_ref_ilamb/dataset_registry/test.txt +3 -3
- climate_ref_ilamb/datasets.py +0 -2
- climate_ref_ilamb/standard.py +131 -50
- {climate_ref_ilamb-0.5.4.dist-info → climate_ref_ilamb-0.5.5.dist-info}/METADATA +3 -3
- climate_ref_ilamb-0.5.5.dist-info/RECORD +14 -0
- climate_ref_ilamb-0.5.4.dist-info/RECORD +0 -14
- {climate_ref_ilamb-0.5.4.dist-info → climate_ref_ilamb-0.5.5.dist-info}/WHEEL +0 -0
- {climate_ref_ilamb-0.5.4.dist-info → climate_ref_ilamb-0.5.5.dist-info}/licenses/LICENCE +0 -0
- {climate_ref_ilamb-0.5.4.dist-info → climate_ref_ilamb-0.5.5.dist-info}/licenses/NOTICE +0 -0
climate_ref_ilamb/__init__.py
CHANGED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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
|
climate_ref_ilamb/datasets.py
CHANGED
climate_ref_ilamb/standard.py
CHANGED
|
@@ -23,63 +23,132 @@ from climate_ref_ilamb.datasets import (
|
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
def
|
|
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
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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(
|
|
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(
|
|
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 = (
|
|
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
|
-
|
|
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
|
+
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 ::
|
|
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.4.dist-info/METADATA,sha256=LDtC1dFmo5BZ7swTuUKleB5oMk-bZiQvlHr1mSVpzUo,2239
|
|
11
|
-
climate_ref_ilamb-0.5.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
12
|
-
climate_ref_ilamb-0.5.4.dist-info/licenses/LICENCE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
13
|
-
climate_ref_ilamb-0.5.4.dist-info/licenses/NOTICE,sha256=4qTlax9aX2-mswYJuVrLqJ9jK1IkN5kSBqfVvYLF3Ws,128
|
|
14
|
-
climate_ref_ilamb-0.5.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|