2024-04-20 08:03:11 发布
网友
我有一个netcdf文件,它有几个值<;0。我想用一个值(比如-1)替换它们。如何使用netCDF4实现这一点?我正在读这样的文件:
import netCDF4 dset = netCDF4.dataset('test.nc') dset[dset.variables['var'] < 0] = -1
我知道OP需要一个python解决方案,但是如果有人只想执行这个任务,也可以通过命令行使用nco快速完成:
ncap2 -s 'where(x<0.) x=-1;' input.nc -O output.nc
根据这篇文章:setting values below a threshold to the threshold in a netcdf file
对我来说,前面的答案行不通,我用以下方法解决了它:
dset = netCDF4.Dataset('test.nc','r+') dset.variables['var'][:] ... your changes ... dset.close()
如果要将数据保存在netCDF变量对象中,应该可以:
import netCDF4 dset = netCDF4.Dataset('test.nc') dset['var'][:][dset['var'][:] < 0] = -1 dset.close() # if you want to write the variable back to disk
如果不想写回磁盘,可以直接获取numpy数组并对其进行切片/分配:
data = dset['sea_ice_cover'][:] # data is a numpy array data[data < 0] = -1
我知道OP需要一个python解决方案,但是如果有人只想执行这个任务,也可以通过命令行使用nco快速完成:
根据这篇文章:setting values below a threshold to the threshold in a netcdf file
对我来说,前面的答案行不通,我用以下方法解决了它:
如果要将数据保存在netCDF变量对象中,应该可以:
如果不想写回磁盘,可以直接获取numpy数组并对其进行切片/分配:
相关问题 更多 >
编程相关推荐