diff --git a/src/parcels/_core/fieldset.py b/src/parcels/_core/fieldset.py index a339453eb..3ceb86318 100644 --- a/src/parcels/_core/fieldset.py +++ b/src/parcels/_core/fieldset.py @@ -235,15 +235,14 @@ def from_copernicusmarine(ds: xr.Dataset): }, autoparse_metadata=False, **_DEFAULT_XGCM_KWARGS, - ) + ), + mesh="spherical", ) fields = {} if "U" in ds.data_vars and "V" in ds.data_vars: fields["U"] = Field("U", ds["U"], grid, XLinear) fields["V"] = Field("V", ds["V"], grid, XLinear) - fields["U"].units = GeographicPolar() - fields["V"].units = Geographic() if "W" in ds.data_vars: ds["W"] -= ds[ diff --git a/tests/test_fieldset.py b/tests/test_fieldset.py index 53dc1419e..844f98234 100644 --- a/tests/test_fieldset.py +++ b/tests/test_fieldset.py @@ -6,7 +6,7 @@ import pytest import xarray as xr -from parcels import Field, ParticleFile, ParticleSet, VectorField, XGrid +from parcels import Field, Geographic, GeographicPolar, ParticleFile, ParticleSet, VectorField, XGrid from parcels._core.fieldset import CalendarError, FieldSet, _datetime_to_msg from parcels._datasets.structured.circulation_models import datasets as datasets_circulation_models from parcels._datasets.structured.generic import T as T_structured @@ -259,6 +259,14 @@ def test_fieldset_from_copernicusmarine(ds, caplog): assert "renamed it to 'V'" in caplog.text +@pytest.mark.parametrize("ds", _COPERNICUS_DATASETS) +def test_grid_mesh_units_from_copernicusmarine(ds): + fieldset = FieldSet.from_copernicusmarine(ds) + assert fieldset.U.grid._mesh == "spherical" + assert isinstance(fieldset.U.units, GeographicPolar) + assert isinstance(fieldset.V.units, Geographic) + + @pytest.mark.parametrize("ds", [datasets_circulation_models["ds_copernicusmarine"].copy()]) def test_fieldset_from_copernicusmarine_missing_axis(ds, caplog): del ds["latitude"].attrs["axis"]