【问题标题】:netcdf dimension variable interpretationnetcdf维变量解释
【发布时间】:2015-07-07 11:39:18
【问题描述】:

我试图了解 NetCDF 标准是否允许这样做。这对我来说没有意义,但也许有一个原因在图书馆层面没有被禁止。 Ncdump:

netcdf tt {
dimensions:
    one = 2 ;
    two = 1 ;
variables:
    int64 one(two) ;
data:

 one = 1 ;
}

以及在 python 中生成此文件的代码:

from  netCDF4 import Dataset
rr=Dataset('tt.nc','w')
rr.createDimension('one',2)
rr.createDimension('two',1)
var1=rr.createVariable('one','i8',('two'))
var1[:]=1
rr.close()

注意与维度同名但维度与自身不同的变量?!

所以两个问题:

  1. 这是标准允许的吗?

  2. 如果不是,是否应该受到图书馆的限制?

【问题讨论】:

    标签: netcdf


    【解决方案1】:

    这是有效的,因为属性名称、维度名称和变量名称都存在于不同的命名空间中。

    【讨论】:

    • 谢谢,如果命名空间是独立的并且变量的所有解释都取决于用户,那么很好。只是想确定一下。
    【解决方案2】:

    这是有效的,但显然会混淆代码和输出,并且在专业意义上是不可接受的。但请注意,与分配给它们的维度具有相同名称和大小的单维数组称为“坐标变量”。

    例如,您经常会看到一个名为 latitude 的变量,它是一维变量,并且有一个名为 latitude 的维度。 ncks 或 ncdump 应该在该变量显示旁边显示一个 (CRD),表明它确实与纬度数组协调。

    【讨论】:

    • 谢谢。我知道坐标变量的原理,只是想检查一下它可能出错的方式。您能否确认“ncdump 在坐标变量旁边显示(CRD)”,我认为我没有看到这一点,只是检查了我的简单测试文件。目前无法检查 ncks。
    • 你说得对,ncdump 不会向我透露这些信息,但ncks 会。例如,有时坐标变量用(CRD) 标注,有时用(Coordinate is lat) 标注。
    • 谢谢,我去看看 ncks。
    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多