代码之家  ›  专栏  ›  技术社区  ›  Jellyse

使用ncks的4d netcdf变量的超实验室

  •  0
  • Jellyse  · 技术社区  · 6 年前

    我有一个很大的netcdf文件,其中我只需要某些数据。因此,我想使用nck创建这个netcdf文件的一个子部分。 netcdf文件如下:

    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: Extract a variable from NetCDF file using NCO ncks 以下链接也是如此 http://nco.sourceforge.net/nco.html#crd 使用这些代码,我在Linux计算机上尝试了以下代码:

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

    这给了我两个问题:

    1. 它复制所有变量,而不仅仅是vel_,即使我使用 -C 如问题建议 nco:使用nco ncks从netcdf文件中提取变量
    2. 我不知道如何指定只使用234到235的维度 恩贾

    那我该怎么放这些零件呢( 尼亚乌 151到152, 恩贾 234至235)的 vel_u 我的test.nc文件中的变量?

    感谢您的回答!

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jellyse    6 年前

    我想我找到了答案:d代表维度,-v代表变量,我的问题的答案如下:

    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_

    -F 因为烧灼应该从1开始而不是0

    -d 名称维度,最小值,最大值,步骤

    -v 可命名的

    数控输入

    输出数控

    这似乎正是我想要的。

    推荐文章