首先要使用xarray读取nc文件
import xarray as xr
path='your_filename.nc'
ds=xr.open_dataset(path)
接着进行以下操作,选择经度中大于360°的数据减去360,生成布尔索引。将新坐标重新分配为主要 lon 坐标,并使用新的坐标值对 DataArray 进行排序,最后修改lon名称。
`lon_name = 'longitude'
ds['longitude_adjusted'] = xr.where(
ds[lon_name] > 180,
ds[lon_name] - 360,
ds[lon_name])
ds = (
ds
.swap_dims({lon_name: 'longitude_adjusted'})
.sel(**{'longitude_adjusted': sorted(ds.longitude_adjusted)})
.drop(lon_name))
ds = ds.rename({'longitude_adjusted': lon_name})
如果想反过来,从-180到180改为0-360,同理操作可得:
lon_name = 'lon'
ds['longitude_adjusted'] = xr.where(ds[lon_name] < 0, ds[lon_name]%360,\
ds[lon_name])
ds = (
ds
.swap_dims({lon_name: 'longitude_adjusted'})
.sel(**{'longitude_adjusted': sorted(ds.longitude_adjusted)})
.drop(lon_name))
ds = ds.rename({'longitude_adjusted': lon_name})
xarray.Dataset.swap_dims使用方法可见官网: xarray.Dataset.swap_dims
|