Skip to content

Commit 33602c7

Browse files
committed
Add test_fieldset_time_interval() and add time dim to example datasets
1 parent 8c143a5 commit 33602c7

2 files changed

Lines changed: 33 additions & 17 deletions

File tree

parcels/_datasets/structured/generic.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ def _rotated_curvilinear_grid():
2222

2323
return xr.Dataset(
2424
{
25-
"data_g": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
26-
"data_c": (["ZC", "YC", "XC"], np.random.rand(3 * N, 2 * N, N)),
27-
"U (A grid)": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
28-
"V (A grid)": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
29-
"U (C grid)": (["ZG", "YC", "XG"], np.random.rand(3 * N, 2 * N, N)),
30-
"V (C grid)": (["ZG", "YG", "XC"], np.random.rand(3 * N, 2 * N, N)),
25+
"data_g": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
26+
"data_c": (["time", "ZC", "YC", "XC"], np.random.rand(T, 3 * N, 2 * N, N)),
27+
"U (A grid)": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
28+
"V (A grid)": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
29+
"U (C grid)": (["time", "ZG", "YC", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
30+
"V (C grid)": (["time", "ZG", "YG", "XC"], np.random.rand(T, 3 * N, 2 * N, N)),
3131
},
3232
coords={
3333
"XG": (["XG"], XG, {"axis": "X", "c_grid_axis_shift": -0.5}),
@@ -97,12 +97,12 @@ def _unrolled_cone_curvilinear_grid():
9797

9898
return xr.Dataset(
9999
{
100-
"data_g": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
101-
"data_c": (["ZC", "YC", "XC"], np.random.rand(3 * N, 2 * N, N)),
102-
"U (A grid)": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
103-
"V (A grid)": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
104-
"U (C grid)": (["ZG", "YC", "XG"], np.random.rand(3 * N, 2 * N, N)),
105-
"V (C grid)": (["ZG", "YG", "XC"], np.random.rand(3 * N, 2 * N, N)),
100+
"data_g": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
101+
"data_c": (["time", "ZC", "YC", "XC"], np.random.rand(T, 3 * N, 2 * N, N)),
102+
"U (A grid)": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
103+
"V (A grid)": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
104+
"U (C grid)": (["time", "ZG", "YC", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
105+
"V (C grid)": (["time", "ZG", "YG", "XC"], np.random.rand(T, 3 * N, 2 * N, N)),
106106
},
107107
coords={
108108
"XG": (["XG"], XG, {"axis": "X", "c_grid_axis_shift": -0.5}),
@@ -141,10 +141,10 @@ def _unrolled_cone_curvilinear_grid():
141141
{
142142
"data_g": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
143143
"data_c": (["time", "ZC", "YC", "XC"], np.random.rand(T, 3 * N, 2 * N, N)),
144-
"U (A grid)": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
145-
"V (A grid)": (["ZG", "YG", "XG"], np.random.rand(3 * N, 2 * N, N)),
146-
"U (C grid)": (["ZG", "YC", "XG"], np.random.rand(3 * N, 2 * N, N)),
147-
"V (C grid)": (["ZG", "YG", "XC"], np.random.rand(3 * N, 2 * N, N)),
144+
"U (A grid)": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
145+
"V (A grid)": (["time", "ZG", "YG", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
146+
"U (C grid)": (["time", "ZG", "YC", "XG"], np.random.rand(T, 3 * N, 2 * N, N)),
147+
"V (C grid)": (["time", "ZG", "YG", "XC"], np.random.rand(T, 3 * N, 2 * N, N)),
148148
},
149149
coords={
150150
"XG": (

tests/v4/test_fieldset.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from datetime import timedelta
2+
3+
import numpy as np
14
import pytest
25

36
from parcels._datasets.structured.generic import datasets as datasets_structured
@@ -70,4 +73,17 @@ def test_fieldset_gridset_size(fieldset):
7073
assert fieldset.gridset_size == 1
7174

7275

73-
def test_fieldset_executable_domain(): ...
76+
def test_fieldset_time_interval():
77+
grid1 = Grid(ds)
78+
field1 = Field("field1", ds["U (A grid)"], grid1, mesh_type="flat")
79+
80+
ds2 = ds.copy()
81+
ds2["time"] = ds2["time"] + np.timedelta64(timedelta(days=1))
82+
grid2 = Grid(ds2)
83+
field2 = Field("field2", ds2["U (A grid)"], grid2, mesh_type="flat")
84+
85+
fieldset = FieldSet([field1, field2])
86+
fieldset.add_constant_field("constant_field", 1.0)
87+
88+
assert fieldset.time_interval.left == np.datetime64("2000-01-02")
89+
assert fieldset.time_interval.right == np.datetime64("2001-01-01")

0 commit comments

Comments
 (0)