当前位置 博文首页 > 简朴的博客:python 如何将nc文件中的经度从从0-360更改为-180到

    简朴的博客:python 如何将nc文件中的经度从从0-360更改为-180到

    作者:[db:作者] 时间:2021-08-17 09:40

    首先要使用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使用方法可见官网:
    xarray.Dataset.swap_dims

    cs