【问题标题】:Extracting variable from group in netCDF从netCDF中的组中提取变量
【发布时间】:2016-12-05 19:10:50
【问题描述】:

我有一个带有以下内容的 netCDF 文件。 ncdump:

netcdf test_nc {
dimensions:
    time = UNLIMITED ; // (20 currently)
    latitude = 360 ;
    longitude = 720 ;
    N = 3 ;
    strlen = 1 ;
variables:
    float data_array(time, latitude, longitude, N) ;
        data_array:_FillValue = -9999.f ;
        data_array:units = "1" ;
        data_array:long_name = "data_array" ;
    char N(N, strlen) ;
    double latitude(latitude) ;
        latitude:standard_name = "latitude" ;
        latitude:units = "degrees_north" ;
    double longitude(longitude) ;
        longitude:standard_name = "longitude" ;
        longitude:units = "degrees_east" ;
    double time(time) ;
        time:standard_name = "time" ;
        time:units = "days since 2000-01-01 00:00:00.0" ;
        time:calendar = "gregorian" ;
}

如何提取data_array 组中的最后一个变量?如果我使用ncks,我可以像这样提取所有data_array

ncks -v data_array test_nc.nc output_nc.nc

但是,我只想提取data_array中N=3对应的变量。任何使用 python netCDF4 或 nco 工具的解决方案都适用于我(但不使用 cdo),也需要在 windows 上运行。

【问题讨论】:

    标签: python nco netcdf4


    【解决方案1】:

    如果我理解正确,您使用古怪的术语并将“组”和“变量”分别称为其他人所说的“变量”和“hyperslab”。 NCO 解决方案是将 hyperslab 选项 (-d) 与大多数任何运算符一起使用,例如 ncks

    ncks -d N,2 -v data_array in.nc out.nc
    

    默认情况下,索引从 0 开始,因此 N=2 为您提供 N 中的最后一个切片。

    【讨论】:

    • 谢谢!这正是我所需要的,也感谢您更正术语
    猜你喜欢
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2022-01-09
    • 2019-06-25
    • 2018-09-02
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多