我编写了一个脚本来从 IPCC 的 netCDF 数据集中提取空间和时间子集。以下脚本可以正常工作:
import numpy
import netCDF4
import datetime
drs_name = ['C:\\pr_Amon_MPI-ESM-MR_rcp45_r2i1p1_200601-210012.nc']
cdf_dataset = netCDF4.Dataset(drs_name[0])
cdf_time = cdf_dataset.variables['time']
date_start = 2006
time_start = datetime.datetime(date_start,1,1,0,0,0)
sbset_time_loindex = netCDF4.date2index(time_start,cdf_time,
calendar = cdf_calendar,
select='nearest')
cdf_dataset 中的变量“时间”具有属性,当我如上所述编写“cdf_time”时,它们会被传递给它。这是“cdf_time”的简单打印输出:
cdf_time is : <class 'netCDF4._netCDF4.Variable'>
float64 time(time)
bounds: time_bnds
units: days since 1850-1-1 00:00:00
calendar: proleptic_gregorian
axis: T
long_name: time
standard_name: time
unlimited dimensions: time
current shape = (1140,)
filling off
在这种特定情况下,它是“netCDF4.date2index”所需的属性“units”
当我写
cdf_time = cdf_dataset.variables['time'][:]
属性不带走。这是此“cdf_time”版本的打印输出:
cdf_time is: [ 56993.5 57023. 57052.5 ..., 91599.5 91630. 91660.5]
这基本上是时间值,但没有属性。谁能给我解释一下这个切片“[:]”的效果是什么?为什么没有进行属性?
顺便说一句,我对此很陌生,所以不要指望一些整洁的代码,但我会尝试做我的功课。提前致谢。