-
Notifications
You must be signed in to change notification settings - Fork 55
Open
Labels
featurea new feature that is going to be developeda new feature that is going to be developedsupportSupport request opened by outside user/collaboratorSupport request opened by outside user/collaborator
Description
A very common operation performed with global data is to convert the longitude convention from/to [0,360] to/from [-180, 180]. This was available in NCL as lonFlip.
There are probably many ways this could be implemented. I've written this function a bunch of times. My current version assumes global data and that the data is an xarray object, and it at least seems to work:
def lonFlip(data, lonname=None):
# NOTE: this assumes global values
if lonname is None:
lonname = 'lon'
tmplon = data[lonname]
tmpdata = data.roll( {lonname: (len(tmplon) // 2)}, roll_coords=True)
lonroll = tmpdata[lonname].values
if tmplon.min() >= 0:
# flip to -180:180
tmpdata[lonname] = xr.DataArray(np.where(lonroll >= 180, lonroll - 360, lonroll), dims=[lonname], attrs=data[lonname].attrs)
else:
# flip from -180:180 to 0:360
tmpdata[lonname] = xr.DataArray(((lonroll + 360) % 360), dims=[lonname], attrs=data[lonname].attrs)
return tmpdataReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featurea new feature that is going to be developeda new feature that is going to be developedsupportSupport request opened by outside user/collaboratorSupport request opened by outside user/collaborator