1

我编写了一个脚本来从 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]

这基本上是时间值,但没有属性。谁能给我解释一下这个切片“[:]”的效果是什么?为什么没有进行属性?

顺便说一句,我对此很陌生,所以不要指望一些整洁的代码,但我会尝试做我的功课。提前致谢。

4

0 回答 0