如何在Python中对netCDF变量进行切片和循环?

如何在Python中对netCDF变量进行切片和循环?,python,loops,variables,slice,netcdf,Python,Loops,Variables,Slice,Netcdf,我有一个带有372个时间步的netCDF变量,我需要将这个变量切片,以便在每个单独的时间步中读取,以便进行后续处理 我用过glob。读取12个netCDF文件,然后定义变量。 NAME\u files=glob.glob('RGL*nc')) NAME_files=NAME_files[0:12] 对于n in(名称\u文件): RGL=数据集(n,mode='r') footprint=RGL.variables['fp'][:] lons=RGL.variables['lon'][:] la

我有一个带有372个时间步的netCDF变量,我需要将这个变量切片,以便在每个单独的时间步中读取,以便进行后续处理

我用过glob。读取12个netCDF文件,然后定义变量。
NAME\u files=glob.glob('RGL*nc'))
NAME_files=NAME_files[0:12]
对于n in(名称\u文件):
RGL=数据集(n,mode='r')
footprint=RGL.variables['fp'][:]
lons=RGL.variables['lon'][:]

lats=RGL.variables['lat'][:]
您需要确定fp变量的尺寸和形状,以便正确访问它

我在这里假设这些值

你的代码暗示了3个维度:时间,经度,纬度。再次假设

footprint_2 =  RGL.variables['fp'][:,:,1:2]
但是上面的代码得到了所有的时间,所有的LON,一个纬度。切片1:2选择1个值

fp_dims = RGL.variables['fp'].dimensions
print(fp_dims)
# a tuple of dimesions names
 (u'time', u'lon', u'lat')

fp_shape = RGL.variables['fp'].shape

# a tuple of dimesions sizes or lengths
print(fp_shape)
 (372, 30, 30)

len = fp_shape[0]

for time_idx in range(0,len)):
  # you don't say if you want a single lon,lat or all the lon,lat's for a given time step.
  test = RGL.variables['fp'][time_idx,:,:]
  # or if you really want this:
  test = RGL.variables['fp'][time_idx,:,1:2]
  # or a single lon, lat
  test = RGL.variables['fp'][time_idx,8,8]
fp形状是(293391372),它是Lat,Lon,Time。谢谢