Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions src/CSET/recipes/derived_diagnostics/age_of_air/ageofair.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ steps:
operator: constraints.combine_constraints
variable_constraint:
operator: constraints.generate_var_constraint
varname: x_wind
varname: zonal_wind_at_pressure_levels
pressure_level_constraint:
operator: constraints.generate_level_constraint
coordinate: pressure
Expand All @@ -44,7 +44,7 @@ steps:
operator: constraints.combine_constraints
variable_constraint:
operator: constraints.generate_var_constraint
varname: y_wind
varname: meridional_wind_at_pressure_levels
pressure_level_constraint:
operator: constraints.generate_level_constraint
coordinate: pressure
Expand All @@ -60,7 +60,7 @@ steps:
operator: constraints.combine_constraints
variable_constraint:
operator: constraints.generate_var_constraint
varname: upward_air_velocity
varname: vertical_wind_at_pressure_levels
pressure_level_constraint:
operator: constraints.generate_level_constraint
coordinate: pressure
Expand All @@ -76,7 +76,7 @@ steps:
operator: constraints.combine_constraints
variable_constraint:
operator: constraints.generate_var_constraint
varname: geopotential_height
varname: geopotential_height_at_pressure_levels
pressure_level_constraint:
operator: constraints.generate_level_constraint
coordinate: pressure
Expand Down
42 changes: 6 additions & 36 deletions tests/operators/test_ageofair.py
Comment thread
jwarner8 marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -77,33 +77,19 @@ def test_calc_dist():
assert np.allclose(dist, actual_distance, rtol=1e-06, atol=20000)


@pytest.mark.slow
def test_aoa_nocyclic(xwind, ywind, wwind, geopot):
"""Test case when not cyclic."""
assert np.allclose(
ageofair.compute_ageofair(
xwind, ywind, wwind, geopot, plev=500, cyclic=False
).data,
read.read_cube("tests/test_data/ageofair/aoa_out_nocyclic.nc").data,
rtol=1e-06,
atol=1e-02,
)


@pytest.mark.slow
def test_aoa_cyclic_parallel_processing(xwind, ywind, wwind, geopot):
"""Test case when cyclic with parallel processing."""
assert np.allclose(
ageofair.compute_ageofair(
xwind,
ywind,
wwind,
geopot,
plev=500,
cyclic=True,
multicore=True,
cyclic=False,
multicore=False,
).data,
read.read_cube("tests/test_data/ageofair/aoa_out_cyclic.nc").data,
read.read_cube("tests/test_data/ageofair/aoa_out_nocyclic.nc").data,
rtol=1e-06,
atol=1e-02,
)
Expand Down Expand Up @@ -144,6 +130,7 @@ def test_aoa_timefreq(xwind, ywind, wwind, geopot):
geopot[[1, 2, 4, 5], :, :, :],
plev=500,
cyclic=True,
multicore=False,
)


Expand Down Expand Up @@ -178,25 +165,6 @@ def test_aoa_ens(ens_regridded, ens_regridded_out):
)


@pytest.mark.slow
def test_aoa_ens_multicore(ens_regridded, ens_regridded_out):
"""Test case with ensembles ensuring that single core and multicore produce identical values."""
assert np.allclose(
ageofair.compute_ageofair(
ens_regridded.extract("x_wind")[0],
ens_regridded.extract("y_wind")[0],
ens_regridded.extract("upward_air_velocity")[0],
ens_regridded.extract("geopotential_height")[0],
plev=200,
cyclic=False,
multicore=True,
).data,
ens_regridded_out.data,
rtol=1e-06,
atol=1e-02,
)


def test_aoa_misordered_dims(xwind, ywind, wwind, geopot):
"""Dimensions in input cubes do not match expected ordering."""
xwind.transpose([0, 1, 3, 2])
Expand All @@ -211,6 +179,7 @@ def test_aoa_misordered_dims(xwind, ywind, wwind, geopot):
geopot,
plev=500,
cyclic=True,
multicore=False,
)


Expand All @@ -232,4 +201,5 @@ def test_aoa_misordered_dims_ens(ens_regridded):
geopot,
plev=500,
cyclic=True,
multicore=False,
)