如何在Python中对netCDF变量进行切片和循环?
我有一个带有372个时间步的netCDF变量,我需要将这个变量切片,以便在每个单独的时间步中读取,以便进行后续处理 我用过glob。读取12个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
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。谢谢