读取 netCDF 数据
Reading netCDF data
我正在尝试从 nc
文件中读取数据,该文件具有以下变量:
['latitude',
'longitude',
'latitude_bnds',
'longitude_bnds',
'time',
'minimum',
'maximum',
'average',
'stddev',
'AirTemperature']
我想要实现的是为任何给定的 (time, latitude and longitude)
:
提取 AirTemperature
数据
为此,我正在做这样的事情:
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]
到目前为止,一切顺利。但是,当我打印数据时,我看到所有相同的值都被打印出来了……(对于我一直在测试的任何经纬度……)
print tmp_crd.data
>>> [-9999. -9999. -9999. ..., -9999. -9999. -9999.]
我好像不太明白..为什么气温总是显示为-9999.0?我已经测试了很多其他(纬度、经度)点,似乎每个位置点的气温都是 -9999.0。如何从此文件中提取真实数据?
请帮忙:-(。
谢谢
好的..我想我明白了。这是发生的事情:
我拥有的 nc
文件在纬度和经度方面具有不同的精度,而且我显然传递了更圆润的 (lat, lon)
点集。一旦我弄清楚了正确的精度,它对我来说就很好用。 -9999.0
值基本上是 numpy 屏蔽数组的 _fill_value
(这表明如果没有记录匹配给定的纬度和经度集,return 屏蔽值)。
谢谢大家
我正在尝试从 nc
文件中读取数据,该文件具有以下变量:
['latitude',
'longitude',
'latitude_bnds',
'longitude_bnds',
'time',
'minimum',
'maximum',
'average',
'stddev',
'AirTemperature']
我想要实现的是为任何给定的 (time, latitude and longitude)
:
AirTemperature
数据
为此,我正在做这样的事情:
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]
到目前为止,一切顺利。但是,当我打印数据时,我看到所有相同的值都被打印出来了……(对于我一直在测试的任何经纬度……)
print tmp_crd.data
>>> [-9999. -9999. -9999. ..., -9999. -9999. -9999.]
我好像不太明白..为什么气温总是显示为-9999.0?我已经测试了很多其他(纬度、经度)点,似乎每个位置点的气温都是 -9999.0。如何从此文件中提取真实数据?
请帮忙:-(。
谢谢
好的..我想我明白了。这是发生的事情:
我拥有的 nc
文件在纬度和经度方面具有不同的精度,而且我显然传递了更圆润的 (lat, lon)
点集。一旦我弄清楚了正确的精度,它对我来说就很好用。 -9999.0
值基本上是 numpy 屏蔽数组的 _fill_value
(这表明如果没有记录匹配给定的纬度和经度集,return 屏蔽值)。
谢谢大家