暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Matlab-处理nc文件

不糊涂录 2021-09-26
1283

一个简单的nc文件如下,包括维度信息、变量信息。

画图时,我常常用到格网数据(二维),我用nc文件来存储这些格网数据,并利用GMT画图,GMT画的图要比Matlab要美观些,能够自动插值。成果图如下,如果你有画格网图的需求,我也可以用GMT帮你画,免费的哟,前提是你要准备好数据。

     

下面来学习matlab与nc文件的交互吧。

一.写nc文件

    % 创建新的 NetCDF 文件,'NOCLOBBER'指覆盖现有的同名文件
    ncid=netcdf.create('test.nc','CLOBBER');


    % 创建 netCDF 维度
    dimidlon=netcdf.defDim(ncid,'lon',length(lon));
    dimidlat=netcdf.defDim(ncid,'lat',length(lat));


    % 创建 NetCDF 变量
    varid1=netcdf.defVar(ncid,'lon','double',dimidlon);
    varid2=netcdf.defVar(ncid,'lat','double',dimidlat);
    varid3=netcdf.defVar(ncid,'TEC','double',[dimidlon dimidlat]);% 格网数据,两个维度


    % 结束 netCDF 文件定义模式
    netcdf.endDef(ncid);


    % 将数据写入 netCDF 变量
    netcdf.putVar(ncid,varid1,lon);
    netcdf.putVar(ncid,varid2,lat);
    netcdf.putVar(ncid,varid3,TEC');
    %注意:需要转置!你可以对比matlab中的TEC变量和nc文件中的TEC变量,看是否一致


    % 关闭netCDF文件
    netcdf.close(ncid);

    一.读nc文件

      % 读取 NetCDF 数据源中的变量数据
      ncfile='test.nc';
      lon=ncread(ncfile,'lon');
      lat=ncread(ncfile,'lat');
      TEC=ncread(ncfile,'TEC');
      TEC=TEC';%注意:需要转置!

      最后,查看nc文件需要HDF Explorer这个软件,回台回复“HDF”即可获取链接。如果打开HDF是空白的,把文件拖入即可。

      此外,需要声明的是,我曾给其他公众号供稿,写过类似文章,不属于抄袭。


      点个在看你最好看

      文章转载自不糊涂录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论