Skip to content

Commit b0c4b1c

Browse files
committed
feat: Allow running of a single slug
1 parent d03d70f commit b0c4b1c

5 files changed

Lines changed: 41 additions & 3 deletions

File tree

scripts/fetch_test_data.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def process_sample_data_request(
133133
DATASETS_TO_FETCH = [
134134
# # Example metric data
135135
CMIP6Request(
136+
"example",
136137
facets=dict(
137138
source_id="ACCESS-ESM1-5",
138139
frequency=["fx", "mon"],
@@ -144,6 +145,7 @@ def process_sample_data_request(
144145
),
145146
# ESMValTool Climate at global warmings levels data
146147
CMIP6Request(
148+
slug="esmvaltool-gwl",
147149
facets=dict(
148150
source_id="ACCESS-ESM1-5",
149151
frequency=["fx", "mon"],
@@ -155,6 +157,7 @@ def process_sample_data_request(
155157
),
156158
# ESMValTool Cloud radiative effects
157159
CMIP6Request(
160+
slug="esmvaltool-cloud-radiative-effects",
158161
facets=dict(
159162
source_id="ACCESS-ESM1-5",
160163
frequency=["fx", "mon"],
@@ -166,6 +169,7 @@ def process_sample_data_request(
166169
),
167170
# ESMValTool ECS data
168171
CMIP6Request(
172+
slug="esmvaltool-ecs",
169173
facets=dict(
170174
source_id="ACCESS-ESM1-5",
171175
frequency=["fx", "mon"],
@@ -177,6 +181,7 @@ def process_sample_data_request(
177181
),
178182
# ESMValTool TCR data
179183
CMIP6Request(
184+
slug="esmvaltool-tcr",
180185
facets=dict(
181186
source_id="ACCESS-ESM1-5",
182187
frequency=["fx", "mon"],
@@ -188,6 +193,7 @@ def process_sample_data_request(
188193
),
189194
# ESMValTool TCRE data
190195
CMIP6Request(
196+
slug="esmvaltool-tcre",
191197
facets=dict(
192198
source_id="MPI-ESM1-2-LR",
193199
frequency=["fx", "mon"],
@@ -198,6 +204,7 @@ def process_sample_data_request(
198204
time_span=("1850", "1915"),
199205
),
200206
CMIP6Request(
207+
slug="esmvaltool-extra",
201208
facets=dict(
202209
source_id="MPI-ESM1-2-LR",
203210
frequency=["fx", "mon"],
@@ -209,6 +216,7 @@ def process_sample_data_request(
209216
),
210217
# ESMValTool ZEC data
211218
CMIP6Request(
219+
slug="esmvaltool-zec",
212220
facets=dict(
213221
source_id="ACCESS-ESM1-5",
214222
frequency=["fx", "mon"],
@@ -220,6 +228,7 @@ def process_sample_data_request(
220228
),
221229
# ESMValTool Sea Ice Area Seasonal Cycle data
222230
CMIP6Request(
231+
slug="esmvaltool-sea-ice",
223232
facets=dict(
224233
source_id="ACCESS-ESM1-5",
225234
frequency=["fx", "mon"],
@@ -231,6 +240,7 @@ def process_sample_data_request(
231240
),
232241
# ILAMB data
233242
CMIP6Request(
243+
slug="ilamb",
234244
facets=dict(
235245
source_id="ACCESS-ESM1-5",
236246
frequency=["fx", "mon"],
@@ -242,6 +252,7 @@ def process_sample_data_request(
242252
),
243253
# ILAMB data, nbp requires a longer time span
244254
CMIP6Request(
255+
slug="ilamb-nbp",
245256
facets=dict(
246257
source_id="ACCESS-ESM1-5",
247258
frequency=["mon"],
@@ -253,6 +264,7 @@ def process_sample_data_request(
253264
),
254265
# IOMB data
255266
CMIP6Request(
267+
slug="iomb",
256268
facets=dict(
257269
source_id="ACCESS-ESM1-5",
258270
frequency=["fx", "mon"],
@@ -264,6 +276,7 @@ def process_sample_data_request(
264276
),
265277
# PMP modes of variability data
266278
CMIP6Request(
279+
slug="pmp-modes-of-variability",
267280
facets=dict(
268281
source_id="ACCESS-ESM1-5",
269282
frequency=["fx", "mon"],
@@ -274,6 +287,19 @@ def process_sample_data_request(
274287
remove_ensembles=False,
275288
time_span=("2000", "2025"),
276289
),
290+
# PMP ENSO data
291+
CMIP6Request(
292+
slug="pmp-enso",
293+
facets=dict(
294+
source_id="ACCESS-ESM1-5",
295+
frequency=["fx", "mon"],
296+
variable_id=["areacella", "ts", "tauu", "taux", "hfls", "hfss", "rlds", "rlus", "rsds", "rsus"],
297+
experiment_id=["historical"],
298+
variant_label=["r1i1p1f1"],
299+
),
300+
remove_ensembles=False,
301+
time_span=("2000", "2025"),
302+
),
277303
# # Obs4MIPs AIRS data
278304
# Obs4MIPsRequest(
279305
# facets=dict(
@@ -295,11 +321,16 @@ def process_sample_data_request(
295321
def create_sample_data(
296322
decimate: bool = True,
297323
output: Path = OUTPUT_PATH,
324+
slug: str | None = None,
298325
) -> None:
299326
"""Fetch and create sample datasets"""
300327
processed_datasets = pd.DataFrame(columns=["source_type", "key", "files", "time_start", "time_end"])
301328

302329
for dataset_requested in DATASETS_TO_FETCH:
330+
if slug is not None and dataset_requested.slug != slug:
331+
logger.info(f"Skipping dataset {dataset_requested.slug} as it does not match the slug {slug}")
332+
continue
333+
303334
# Process the request
304335
new_datasets = process_sample_data_request(
305336
processed_datasets,

src/ref_sample_data/data_request/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class DataRequest(Protocol):
1515
differently to generate the sample data.
1616
"""
1717

18+
slug: str
1819
source_type: str
1920
time_span: tuple[str, str] | None = None
2021

src/ref_sample_data/data_request/cmip6.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ class CMIP6Request(IntakeESGFDataRequest):
6767
"grid_label",
6868
)
6969

70-
def __init__(self, facets: dict[str, Any], remove_ensembles: bool, time_span: tuple[str, str] | None):
70+
def __init__(
71+
self, slug: str, facets: dict[str, Any], remove_ensembles: bool, time_span: tuple[str, str] | None
72+
):
7173
self.avail_facets = [
7274
"mip_era",
7375
"activity_drs",
@@ -81,7 +83,7 @@ def __init__(self, facets: dict[str, Any], remove_ensembles: bool, time_span: tu
8183
"version",
8284
"data_node",
8385
]
84-
86+
self.slug = slug
8587
self.facets = facets
8688
self.remove_ensembles = remove_ensembles
8789
self.time_span = time_span

src/ref_sample_data/data_request/obs4mips.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ class Obs4MIPsRequest(IntakeESGFDataRequest):
3232
"grid_label",
3333
)
3434

35-
def __init__(self, facets: dict[str, Any], remove_ensembles: bool, time_span: tuple[str, str] | None):
35+
def __init__(
36+
self, slug: str, facets: dict[str, Any], remove_ensembles: bool, time_span: tuple[str, str] | None
37+
):
3638
self.avail_facets = [
3739
"activity_id",
3840
"institution_id",
@@ -44,6 +46,7 @@ def __init__(self, facets: dict[str, Any], remove_ensembles: bool, time_span: tu
4446
"data_node",
4547
]
4648

49+
self.slug = slug
4750
self.facets = facets
4851
self.remove_ensembles = remove_ensembles
4952
self.time_span = time_span

src/ref_sample_data/data_request/obs4ref.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class Obs4REFRequest(DataRequest):
2020
```
2121
"""
2222

23+
slug = "obs4ref"
2324
source_type = "obs4REF"
2425

2526
def fetch_datasets(self) -> pd.DataFrame:

0 commit comments

Comments
 (0)