⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read_data_nc.m

📁 netcdf插件安装和.nc格式数据的读取,主要操作mexcdf53.dll和netcdf.dll文件,适于从事海洋和大气专业的的数据格式.作者在实际中用matlab处理了一些此类数据
💻 M
字号:
% 程序的主要目的是将一个海平面气压数据05_0819_0822.nc转成ascii数据文件,
% 写成的ascii通常都比较大,如果我们并不需要这个ascii文件,而只想对数据进行处理或绘图,
% 则本程序只需到第8或第15行,即可直接对slp1或slp2进行所要的计算或绘图或输出计算后的其他结果等。
% 其他nc文件可类似处理

clear all;close all;clc
%--------------------------------------------------------------------------
f=netcdf('05_0819_0822.nc','nowrite');% open the nc file., 注意有的nc文件后缀不是为.nc而是.cdf, 若要读取多个nc文件,可在filename上设循环.
slp1=f{'slp'}(:);     % 获取要从nc文件中提取的变量slp
close(f)
%--------------------------------------------------------------------------
[dk di dj]=size(slp1);  %获取该变量的维数本例为3维

fid=fopen('05_0819_0822.dat','w');    % 打开一个文件,用于存储变量数据
for kk=1:dk            %该循环用于将原来3维的数据销至2维,写到05_0819_0822.dat上.
     slp2=squeeze(slp1(kk,:,:))+119765;
%-------------------------------------------------------------------------    
    %注意,有的nc数据为方便存储,故在实际数据的基础上进行了一些换算(不是所有的nc都有这种换算)
    %数据还原换算公式是:  实际数据=nc数据*scale_factor+add_offset.  
    %scale_factor和add_offset的数值可以从ncbrower得到(具体见readme_nc.txt).
    %或在命令窗口中输入ncdump,打开nc文件,据matlab窗口显示可知;
    %本数据的scale_factor和add_offset分别为1和119765.
%-------------------------------------------------------------------------       
   for ii=1:di
     fprintf(fid,'%6d ',slp2(ii,:));
     fprintf(fid,'\n');   %换行
   end
     fprintf(fid,'\n');  %不同的kk之间用一个空行隔开,如无需空行,可删去此行
end
fclose(fid)
fclose all

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -