首先要使用xarray读取nc文件
import xarray as xr path='your_filename.nc' ds=xr.open_dataset(path)
接着进行以下操作,选择经度中大于360°的数据减去360,生成布尔索引。将新坐标重新分配为主要 lon 坐标,并使用新的坐标值对 DataArray 进行排序,最后修改lon名称。
lon_name = 'longitude' #你的nc文件中经度的命名 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' # whatever name is in the data 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使用方法可见官网: