我正在尝试将三个netCDF文件打开到Python脚本中。我能够将其中两个成功地加载到2D NumPy数组中,但是第三个导致了问题。这是我的代码:
import numpy as np
from netCDF4 import Dataset
# loading data
rootgrp1 = Dataset("file_1.nc", "r", format="NETCDF4")
rootgrp2 = Dataset("file_2.nc", "r", format="NETCDF4")
rootgrp3 = Dataset("file_3.nc", "r", format="NETCDF4")
# put values into numpy arrays
data1 = np.array(rootgrp1.variables['RAW' ][:, :].data)
data2 = np.array(rootgrp2.variables['RAW' ][:, :].data)
data3 = np.array(rootgrp3.variables['TEMP'][:, :].data)
最后一行抛出此错误:TypeError: ufunc 'multiply' did not contain a loop with signature matching types dtype('<U32') dtype('<U32') dtype('<U32')
我认为问题在于数据不在自己的有效范围内。当我使用其他应用程序检查数据时,数字是2000年代,有时是3000年代。但是,当我查看valid_range
对象的Dataset
属性时,它是0到330:
任何建议都值得赞赏。预先感谢!