lagrangian-filtering
lagrangian-filtering copied to clipboard
Sampled velocities are incorrect on a spherical grid
With a spherical grid (mesh="spherical"
), Parcels expects lat/lon grid coordinates. Since velocities are usually given in m/s, they are converted to degree/s for consistency with the grid for advection. However, when we sample velocities for filtering, we expect them to be interpolated in their native units. Instead, we'll receive U and V in degree/s, and be some factor of 10e-6 out (this would also happen for Kh_zonal
and Kh_meridional
, if they were ever to be filtered: https://github.com/OceanParcels/parcels/blob/adc57b3edf65efd54793e5b97ee7d060102cd39d/parcels/tools/converters.py#L207-L209)
If we're using a spherical mesh, we should do one of:
- not convert units at sample time (most correct)
- convert back to "source" units after sampling (maybe easiest?)
- sample as usual, but convert back after advection, before filtering (least dependent on parcels)
With the merging of https://github.com/OceanParcels/parcels/pull/898, it looks like the second approach is the way to go. We should know soon how much of a difference it makes to perform filtering on spherical velocities compared to linear velocities (the former with a conversion after filtering, the latter with the conversion before filtering).