2016-12-05 253 views
0

我有一個netCDF文件和foll。 ncdump:從netCDF組中提取變量

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上工作。

回答

1

如果我理解正確,你會使用偏心術語,並分別稱其爲「變量」和「hyperslab」的「組」和「變量」。該NCO解決方案是使用與大多數任何操作者的hyperslab選項(-d),如ncks

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

指數是基於默認爲0所以N = 2爲您提供了N.

最後的片
+0

謝謝!這正是我所需要的,也是爲了糾正術語 – user308827