我正在尝试在netCDF文件中提取空间子集。我正在使用numpy和NetCDF4 Python库。
我的数据位于pm10_conc
变量中,它们看起来像这样 - > image
pm10_conc是根据时间,等级,纬度,经度构建的
为了测试,我想获取数据:
Latitude -> from 69.95 to 69.85
Longitude -> from 335.05 to 335.25
然后,如果您查看我的image,这将返回我:
69.95, 335.05 = 0.122270
69.95, 335.15 = 0.122270
69.95, 335.25 = 0.122015
69.85, 335.05 = 0.133071
69.85, 335.15 = 0.122697
69.85, 335.25 = 0.120764
所以这是我的python脚本:
import netCDF4
import json
import numpy
data = netCDF4.Dataset('Data.nc')
latbounds = [ 69.95 , 69.85 ]
lonbounds = [ 335.05 , 335.25 ]
lats = data.variables['latitude'][:]
lons = data.variables['longitude'][:]
level = data.variables['level'][:] # Not used in my code
time = data.variables['time'][:] # Not used in my code
# latitude lower and upper index
latli = numpy.argmin( numpy.abs( lats - latbounds[0] ) )
latui = numpy.argmin( numpy.abs( lats - latbounds[1] ) )
# longitude lower and upper index
lonli = numpy.argmin( numpy.abs( lons - lonbounds[0] ) )
lonui = numpy.argmin( numpy.abs( lons - lonbounds[1] ) )
pm10 = data.variables['pm10_conc'][ : , : , latli:latui , lonli:lonui ]
print pm10
但是这将返回第一个单元格(69.95, 335.05
)
如何使界限发挥作用以及如何选择时间值(例如:如果我想要时间为5时的数据)?