繁体   English   中英

替换netCDF文件中的变量

[英]Replacing a variable inside a netCDF file

我有一个带有变量A的netCDF文件,该文件具有以下特征:

<class 'netCDF4._netCDF4.Variable'>
float64 Mlail(month, y, x)
units: -
long_name: monthly low veg lai
missing_value: 1.00000002004e+20
unlimited dimensions: 
current shape = (12, 1, 1)
filling off
Mlail = 
[[[ 2.01562]]
[[ 2.00781]]
[[ 2.10156]]
[[ 2.28906]]
[[ 2.80469]]
[[ 3.02344]]
[[ 2.91406]]
[[ 2.77344]]
[[ 2.65625]]
[[ 2.33594]]
[[ 2.14844]]
[[ 2.0625 ]]]

我想用以下代替这些值: 1,2,3,4,5,6,7,8,9,10,11,12

为此,我尝试了以下命令:

dataset['Mlail'] = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]]

但是它不起作用,我总是收到返回错误消息:

TypeError: 'netCDF4._netCDF4.Dataset' object does not support item assignment

有谁知道该怎么做?

这是我的代码

import netCDF4
dataset = netCDF4.Dataset('surfclim_AmpleroFluxnet.nc')
print (dataset.variables.keys())
import numpy
print ("Mlail = \n", dataset.variables['Mlail'][:])
dataset['Mlail'] = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]] 

因此,您的原始代码试图将变量对象替换为值列表。 您想要做的是替换变量上的值,您可以使用切片( [:] )来完成该操作,就像您打印出值时一样。 您还需要确保打开文件进行修改(带有'a'标志)。 因此,您的代码将变为:

import netCDF4
import numpy

dataset = netCDF4.Dataset('surfclim_AmpleroFluxnet.nc', 'a')
print (dataset.variables.keys())
print ("Mlail = \n", dataset.variables['Mlail'][:])
var = dataset['Mlail']
var[:] = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM