替换 netcdf 变量并重写为新的 netcdf 文件
replacing a netcdf variable and rewrite to a new netcdf file
谁能帮我解决以下问题。
我有一个包含以下维度和变量的 netcdf 文件:
尺寸(大小):y(100),n2(2),x(100),
变量(维度):int64 valid_time(), int64 start_time(), float64 y(y), float64 y_bounds(y,n2), float64 x(x), float64 x_bounds(x,n2), int16 降水量(y,x), int8 proj()
netcdf 包含一个用于沉淀的二维数组 (100,100)。现在我有一个新的相同大小的二维数组 (100,100),但具有不同的值。我想知道如何用新的替换 netcdf 中的数组并将其重写为新的 netcdf。我尝试了以下代码,但它无法替换数组(它可以将 file.nc 重写并重命名为 newfile.nc 而无需替换数组)
import xarray as xr
ds=xr.open_dataset('file.nc')
precip=ds.variables['precipitation']
precip=np.array(precip)
precip=new_array
ds.to_netcdf('newfile.nc')
首先提供你的 new_array
作为 2D numpy 数组,你可以这样做:
import numpy as np
new_array = np.array(new_array)
那你可以试试:
import xarray as xr
ds=xr.open_dataset('file.nc')
ds.variables['precipitation'].values = new_array
ds.to_netcdf('newfile.nc)
或
import xarray as xr
ds=xr.open_dataset('file.nc')
ds['precipitation'].values = new_array
ds.to_netcdf('newfile.nc)
但请注意 x 和 y 维度以及您的 new_array
映射到网格中心的方式应与您的 precipitation
.
一致
谁能帮我解决以下问题。 我有一个包含以下维度和变量的 netcdf 文件: 尺寸(大小):y(100),n2(2),x(100), 变量(维度):int64 valid_time(), int64 start_time(), float64 y(y), float64 y_bounds(y,n2), float64 x(x), float64 x_bounds(x,n2), int16 降水量(y,x), int8 proj()
netcdf 包含一个用于沉淀的二维数组 (100,100)。现在我有一个新的相同大小的二维数组 (100,100),但具有不同的值。我想知道如何用新的替换 netcdf 中的数组并将其重写为新的 netcdf。我尝试了以下代码,但它无法替换数组(它可以将 file.nc 重写并重命名为 newfile.nc 而无需替换数组)
import xarray as xr
ds=xr.open_dataset('file.nc')
precip=ds.variables['precipitation']
precip=np.array(precip)
precip=new_array
ds.to_netcdf('newfile.nc')
首先提供你的 new_array
作为 2D numpy 数组,你可以这样做:
import numpy as np
new_array = np.array(new_array)
那你可以试试:
import xarray as xr
ds=xr.open_dataset('file.nc')
ds.variables['precipitation'].values = new_array
ds.to_netcdf('newfile.nc)
或
import xarray as xr
ds=xr.open_dataset('file.nc')
ds['precipitation'].values = new_array
ds.to_netcdf('newfile.nc)
但请注意 x 和 y 维度以及您的 new_array
映射到网格中心的方式应与您的 precipitation
.