为什么属性不在python中传递?

时间:2017-10-06 08:28:01

标签: python-3.x numpy datetime netcdf netcdf4

我编写了一个脚本,用于从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的变量'time'具有属性,当我写上“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]

基本上是时间值,但没有属性。任何人都可以向我解释这个切片的效果是什么“[:]?为什么属性没有进行?

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

0 个答案:

没有答案