Python NetCDF在4维数组中绑定了lat lng

时间:2016-12-07 16:21:40

标签: python arrays numpy netcdf

我正在尝试在netCDF文件中提取空间子集。我正在使用numpy和NetCDF4 Python库。

我的数据位于pm10_conc变量中,它们看起来像这样 - > image

pm10_conc是根据时间,等级,纬度,经度构建的

  • 时间是1到24之间的数字(这是小时数)
  • 目前,我的情况下等级总是为0。

为了测试,我想获取数据:

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

的24小时内的所有数据

如何使界限发挥作用以及如何选择时间值(例如:如果我想要时间为5时的数据)?

0 个答案:

没有答案