我正在尝试从nc
文件中读取数据,该文件包含以下变量:
['latitude',
'longitude',
'latitude_bnds',
'longitude_bnds',
'time',
'minimum',
'maximum',
'average',
'stddev',
'AirTemperature']
我想要实现的是提取任何给定AirTemperature
的{{1}}数据:
为此,我正在做这样的事情:
(time, latitude and longitude)
到目前为止,一切都很顺利。但是,当我打印数据时,我看到所有相同的值都被打印出来..(对于我测试的任何lat,lon ..)
df = Dataset('data_file.nc', 'r')
lat = df.variables['latitude'][:]
lon = df.variables['longitude'][:]
temp = df.variables['AirTemperature'][:,:,:]
#(lat, lon) for Coffee, TN
test_lat = 35.45
test_lon = -86.05
#getting the indices for the (lat, lon) using numpy.where
lat_idx = np.where(lat==test_lat)[0][0]
lon_idx = np.where(lon==test_lon)[0][0]
#extracting data for all the times for given indices
tmp_crd = temp[:,lat_idx,lon_idx]
我似乎并不理解..为什么气温总是显示为-9999.0?我已经测试了很多其他(lat,lon)点,似乎每个位置点,气温都是-9999.0。如何从此文件中提取实际数据?
请帮忙:-(。
谢谢
答案 0 :(得分:0)
好的..我想我想通了。以下是发生的事情:
我拥有的nc
文件对纬度和经度有不同的精确度,而我显然传递了更加圆润的(lat, lon)
点。一旦我找到了正确的精度,它对我来说很好。 -9999.0
值基本上是numpy的掩码数组的_fill_value
(表示如果没有匹配给定的lat和long的记录,则返回掩码值)。
谢谢大家。