diff --git a/src/parcels/_core/fieldset.py b/src/parcels/_core/fieldset.py index fdb47f8e9..ba0f8c11d 100644 --- a/src/parcels/_core/fieldset.py +++ b/src/parcels/_core/fieldset.py @@ -220,8 +220,17 @@ def from_ugrid_conventions(cls, ds: ux.UxDataset, mesh: str = "spherical"): fields["UVW"] = VectorField( "UVW", fields["U"], fields["V"], fields["W"], vector_interp_method=Ux_Velocity ) + fields["UV"] = VectorField( + "UV", fields["U"], fields["V"], vector_interp_method=Ux_Velocity + ) else: - fields["UV"] = VectorField("UV", fields["U"], fields["V"], vector_interp_method=Ux_Velocity) + fields["UV"] = VectorField("UV", fields["U"], fields["V"], vector_interp_method=Ux_Velocity) + + if "W" in ds.data_vars: + fields["W"] = Field("W", ds["W"], grid, _select_uxinterpolator(ds["W"])) + fields["UVW"] = VectorField( + "UVW", fields["U"], fields["V"], fields["W"], vector_interp_method=Ux_Velocity + ) for varname in set(ds.data_vars) - set(fields.keys()): fields[varname] = Field(varname, ds[varname], grid, _select_uxinterpolator(ds[varname])) diff --git a/tests/test_fieldset.py b/tests/test_fieldset.py index 8056d4617..b2b05d33f 100644 --- a/tests/test_fieldset.py +++ b/tests/test_fieldset.py @@ -255,6 +255,7 @@ def test_fieldset_from_fesom2(): fieldset = FieldSet.from_ugrid_conventions(ds) assert "U" in fieldset.fields assert "V" in fieldset.fields + assert "UV" in fieldset.fields assert "UVW" in fieldset.fields