matlab读取grib2数据

采用nctoolbox
详细说明见 https://github.com/nctoolbox/nctoolbox/wiki/Documentation
nctoolbox提供几种类型的数据接口,官方推荐最新的NCGEODATASET
NCDATASET and CFDATASET 较老,为兼容目的保留
常用命令

>>nc=ncgeodataset('*.grib2')
>>nc.netcdf  %类似ncdisp或ncdump命令

读取变量
>>temp = ds.data('TEMP'); % Explicit
>>psal = ds.data(ds.variables{2}) % Accessing 'PSAL' using variables property
或者
>>salt = nc.geovariable('salt')

salt = 

 ncgeovariable handle

 Properties:
    dataset: [1x1 ncgeodataset]
       name: 'salt'
       axes: {4x1 cell}
 attributes: {5x2 cell}

 Methods, Events, Superclasses


查看元数据
>>ds.metadata

ans = 

global_attributes: {12x2 cell}
            depth: {5x2 cell}
             elev: {5x2 cell}
                u: {7x2 cell}
                v: {7x2 cell}
         salinity: {7x2 cell}
      temperature: {7x2 cell}
             time: {2x2 cell}
            level: {6x2 cell}
              lon: {5x2 cell}
              lat: {5x2 cell}


示例
>>salt = nc.geovariable('salt')

salt = 

 ncgeovariable handle

 Properties:
    dataset: [1x1 ncgeodataset]
       name: 'salt'
       axes: {4x1 cell}
 attributes: {5x2 cell}

 Methods, Events, Superclasses

数据
>salinity = salt.data(1, end, :, :);
>>size(salinity)

ans =

 1     1    60   160

>>class(salinity)

ans =

 single

>>salinity= squeeze(double(salinity));


坐标
>>salinity_coords = salt.grid(1, end, :, :)

salinity_coords = 

   lat_rho: [60x160 double]
   lon_rho: [60x160 double]
ocean_time: 1.0958e+009
     s_rho: -0.9750

你可能感兴趣的:(matlab)