本文介绍了使用Ncks的4D netcdf变量的Hyperslab的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个很大的netcdf文件,我只需要某些数据.因此,我想使用ncks创建该netcdf文件的细分.netcdf文件如下:

I have a large large netcdf file, of which I only need certain data. Therefore, I want to create a subdivision of this netcdf file using ncks.The netcdf file is as following:

Source:
           F:\LECOB\Model\20091208_195356.nc
Format:
           64bit
Global Attributes:
           Model = 's26.bobshelf.20141113'
           Title = 'S-NWM_BiP'
Dimensions:
           ni_t = 682
           nj_t = 712
           nk_t = 29
           time = 1     (UNLIMITED)
           ni_w = 682
           nj_w = 712
           nk_w = 30
           ni_u = 681
           nj_u = 712
           nk_u = 29
           ni_v = 682
           nj_v = 711
           nk_v = 29
           ni_f = 681
           nj_f = 711
           nk_f = 29
Variables:
    time 
           Size:       1x1
           Dimensions: time
           Datatype:   double
           Attributes:
                       units         = 'seconds from 2009-dec-08 17:00:14'
                       long_name     = 'time'
                       standard_name = 'time'
                       time_origin   = '2009-dec-08 17:00:14'
                       calendar      = 'gregorian'
                       content       = 'T'
                       axis          = 'T'
                       associate     = 'undefined'
    ni_t 
           Size:       682x1
           Dimensions: ni_t
           Datatype:   single
           Attributes:
                       long_name     = 'x_grid_index'
                       standard_name = 'x_grid_index'
                       content       = 'X'
                       axis          = 'X'
    nj_t 
           Size:       712x1
           Dimensions: nj_t
           Datatype:   single
           Attributes:
                       long_name     = 'y_grid_index'
                       standard_name = 'y_grid_index'
                       content       = 'Y'
                       axis          = 'Y'
    nk_t 
           Size:       29x1
           Dimensions: nk_t
           Datatype:   single
           Attributes:
                       long_name     = 'z_grid_index'
                       standard_name = 'z_grid_index'
                       content       = 'Z'
                       axis          = 'Z'
                       positive      = 'up'
    ni_w 
           Size:       682x1
           Dimensions: ni_w
           Datatype:   single
           Attributes:
                       long_name     = 'x_grid_index_at_w_location'
                       standard_name = 'x_grid_index_at_w_location'
                       content       = 'X'
                       axis          = 'X'
    nj_w 
           Size:       712x1
           Dimensions: nj_w
           Datatype:   single
           Attributes:
                       long_name     = 'y_grid_index_at_w_location'
                       standard_name = 'y_grid_index_at_w_location'
                       content       = 'Y'
                       axis          = 'Y'
    nk_w 
           Size:       30x1
           Dimensions: nk_w
           Datatype:   single
           Attributes:
                       long_name     = 'z_grid_index_at_w_location'
                       standard_name = 'z_grid_index_at_w_location'
                       content       = 'Z'
                       axis          = 'Z'
                       positive      = 'up'
    ni_u 
           Size:       681x1
           Dimensions: ni_u
           Datatype:   single
           Attributes:
                       long_name     = 'x_grid_index_at_u_location'
                       standard_name = 'x_grid_index_at_u_location'
                       content       = 'X'
                       axis          = 'X'
    nj_u 
           Size:       712x1
           Dimensions: nj_u
           Datatype:   single
           Attributes:
                       long_name     = 'y_grid_index_at_u_location'
                       standard_name = 'y_grid_index_at_u_location'
                       content       = 'Y'
                       axis          = 'Y'
    nk_u 
           Size:       29x1
           Dimensions: nk_u
           Datatype:   single
           Attributes:
                       long_name     = 'z_grid_index_at_u_location'
                       standard_name = 'z_grid_index_at_u_location'
                       content       = 'Z'
                       axis          = 'Z'
                       positive      = 'up'
    ni_v 
           Size:       682x1
           Dimensions: ni_v
           Datatype:   single
           Attributes:
                       long_name     = 'x_grid_index_at_v_location'
                       standard_name = 'x_grid_index_at_v_location'
                       content       = 'X'
                       axis          = 'X'
    nj_v 
           Size:       711x1
           Dimensions: nj_v
           Datatype:   single
           Attributes:
                       long_name     = 'y_grid_index_at_v_location'
                       standard_name = 'y_grid_index_at_v_location'
                       content       = 'Y'
                       axis          = 'Y'
    nk_v 
           Size:       29x1
           Dimensions: nk_v
           Datatype:   single
           Attributes:
                       long_name     = 'z_grid_index_at_v_location'
                       standard_name = 'z_grid_index_at_v_location'
                       content       = 'Z'
                       axis          = 'Z'
                       positive      = 'up'
    ssh  
           Size:       682x712x1
           Dimensions: ni_t,nj_t,time
           Datatype:   single
           Attributes:
                       units         = 'm'
                       long_name     = 'sea surface height above geoid'
                       standard_name = 'sea_surface_height_above_geoid'
                       content       = 'TYX'
                       associate     = 'time latitude_t longitude_t'
                       coordinates   = 'time latitude_t longitude_t'
                       _FillValue    = -9999
    CFL2D
           Size:       682x712x1
           Dimensions: ni_t,nj_t,time
           Datatype:   single
           Attributes:
                       units         = 's'
                       long_name     = 'CFL2D'
                       standard_name = 'CFL2D'
                       content       = 'TYX'
                       associate     = 'time latitude_t longitude_t'
                       coordinates   = 'time latitude_t longitude_t'
                       _FillValue    = -9999
    tem  
           Size:       682x712x29x1
           Dimensions: ni_t,nj_t,nk_t,time
           Datatype:   single
           Attributes:
                       units         = 'degrees_Celsius'
                       long_name     = 'sea_water_potential_temperature'
                       standard_name = 'sea_water_potential_temperature'
                       content       = 'TZYX'
                       associate     = 'time depth_t latitude_t longitude_t'
                       coordinates   = 'time depth_t latitude_t longitude_t'
                       _FillValue    = -9999
                       positive      = 'up'
    sal  
           Size:       682x712x29x1
           Dimensions: ni_t,nj_t,nk_t,time
           Datatype:   single
           Attributes:
                       units         = '1e-3'
                       long_name     = 'sea water salinity'
                       standard_name = 'sea_water_salinity'
                       content       = 'TZYX'
                       associate     = 'time depth_t latitude_t longitude_t'
                       coordinates   = 'time depth_t latitude_t longitude_t'
                       _FillValue    = -9999
                       positive      = 'up'
    vel_u
           Size:       681x712x29x1
           Dimensions: ni_u,nj_u,nk_u,time
           Datatype:   single
           Attributes:
                       units         = 'm s-1'
                       long_name     = 'sea_water_x_velocity_at_u_location'
                       standard_name = 'sea_water_x_velocity_at_u_location'
                       content       = 'TZYX'
                       associate     = 'time depth_u latitude_u longitude_u'
                       coordinates   = 'time depth_u latitude_u longitude_u'
                       _FillValue    = -9999
                       positive      = 'up'
    vel_v
           Size:       682x711x29x1
           Dimensions: ni_v,nj_v,nk_v,time
           Datatype:   single
           Attributes:
                       units         = 'm s-1'
                       long_name     = 'sea_water_y_velocity_at_v_location'
                       standard_name = 'sea_water_y_velocity_at_v_location'
                       content       = 'TZYX'
                       associate     = 'time depth_v latitude_v longitude_v'
                       coordinates   = 'time depth_v latitude_v longitude_v'
                       _FillValue    = -9999
                       positive      = 'up'
    kh   
           Size:       682x712x30x1
           Dimensions: ni_w,nj_w,nk_w,time
           Datatype:   single
           Attributes:
                       units         = 'm2/s'
                       long_name     = 'kh'
                       standard_name = 'kh'
                       content       = 'TZYX'
                       associate     = 'time depth_w latitude_t longitude_t'
                       coordinates   = 'time depth_w latitude_t longitude_t'
                       _FillValue    = -9999
                       positive      = 'up'
    tken 
           Size:       682x712x30x1
           Dimensions: ni_w,nj_w,nk_w,time
           Datatype:   single
           Attributes:
                       units         = '(m/s)2'
                       long_name     = 'tken'
                       standard_name = 'tken'
                       content       = 'TZYX'
                       associate     = 'time depth_w latitude_t longitude_t'
                       coordinates   = 'time depth_w latitude_t longitude_t'
                       _FillValue    = -9999
                       positive      = 'up'
    w    
           Size:       682x712x30x1
           Dimensions: ni_w,nj_w,nk_w,time
           Datatype:   single
           Attributes:
                       units         = 'm s-1'
                       long_name     = 'vertical_sea_water_velocity_at_w_location'
                       standard_name = 'vertical_sea_water_velocity_at_w_location'
                       content       = 'TZYX'
                       associate     = 'time depth_w latitude_t longitude_t'
                       coordinates   = 'time depth_w latitude_t longitude_t'
                       _FillValue    = -9999
                       positive      = 'up'

现在,我对4D变量vel_u (ni_u,nj_u,nk_u,time)感兴趣.我想提取ni_u 151到152,nj_u 234到235,nk_u一切和time一切.这个问题对 NCO有所帮助:从NetCDF提取变量使用NCO ncks的文件,以下链接 http://nco.sourceforge. net/nco.html#crd 使用这些代码,我在Linux计算机上尝试了以下代码:

Now I'm interested in the 4D variable vel_u (ni_u,nj_u,nk_u,time).I want to extract ni_u 151 to 152, nj_u 234 to 235 , nk_u everything and time everything.This question helped me along NCO: Extract a variable from NetCDF file using NCO ncks and so did the following link http://nco.sourceforge.net/nco.html#crd Using those, I tried the following code on my linux computer:

ncks -C -F -d vel_u,151,152,1 20091208_195356.nc test.nc

这给了我两个问题:

  1. 即使我按照问题
  2. 我不知道如何指定仅使用尺寸nj_u的234到235
  1. It copies all the variables and not just vel_u even though I used -C as suggested in question NCO: Extract a variable from NetCDF file using NCO ncks
  2. I have no idea how to specify to only use 234 to 235 of dimension nj_u

那么如何将vel_u变量的那些部分(ni_u 151到152,nj_u 234到235)放在我的test.nc文件中?

So how do I put those parts (ni_u 151 to 152, nj_u 234 to 235 ) of the vel_u variable in my test.nc file?

任何答案深表感谢!

推荐答案

我想我找到了答案:-d用于维数,-v用于变量,以下为我的问题的答案:

I think I found the answer: -d is for dimensions and -v is for variables, making the answer to my question the following:

ncks -C -F -d nj_u,234,235,1 -d ni_u,151,152,1 -v vel_u 20091208_195356.nc test.nc

-C确保只复制变量vel_u

-C to make sure you only copy the variable vel_u

-F,因为caunting应该从1开始而不是0

-F because caunting should start at 1 and not 0

-d NameDimension,Min,Max,Step

-d NameDimension,Min,Max,Step

-v NameVariable

-v NameVariable

input.nc

output.nc

output.nc

这似乎正好给了我我想要的东西.

This seems to be giving me exactly what I want.

这篇关于使用Ncks的4D netcdf变量的Hyperslab的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!