MATLAB 修改netCDF文件内变量的数值

ncinfo

返回有关NetCDF数据源的信息
finfo = ncinfo(source)           % 将 source 指所指定的整个 NetCDF 数据源的相关信息返回到结构体 finfo 中,其中 source 可以是 NetCDF 文件名/文件路径

ncwrite

将数据写入NetCDF文件
ncwrite(filename,varname,vardata) %将 vardata 中的文本或数值数据写入 NetCDF 文件 filename 中的现有变量 varname。


案例说明:读取某个ACONC文件,利用ncinfo获取所有变量的名称及规模,并据此将所有变量的值置为零

clear,clc
%%%%%%%%%%%%%%%%   CAMx置零情景 ACONC文件制作   %%%%%%%%%%%%%%%%%%
% lijinying 2020-09-08
filename='E:\文档\MATLAB\CMAQ清单调整\CAMx置零情景\ACONC.01';
%%%%%%%   将ACONC文件中的变量置零   %%%%%%%
finfo = ncinfo(filename);
[~,variablesNum]=size(finfo.Variables);
for i=1:variablesNum
    vardata=zeros(finfo.Variables(1,i).Size);
    ncwrite(filename,finfo.Variables(1,i).Name,vardata)
end
%%%%%%%   检验效果   %%%%%%%
ncid = netcdf.open(filename); % 打开nc文件
for i=1:variablesNum
varid=netcdf.inqVarID(ncid,finfo.Variables(1,i).Name);  %返回与变量名相关联的 ID
ACONCDATA= netcdf.getVar(ncid,varid);   %读取 NetCDF 变量中的数据
figure
az=90;  %方向判定
el=-90;
surf(ACONCDATA);
colormap('jet');
colorbar;
%caxis([30,60]);
view(az,el);
end
netcdf.close(ncid);

  

 

参考文献:

https://ww2.mathworks.cn/help/matlab/network-common-data-form.html?s_tid=srchtitle

https://ww2.mathworks.cn/help/matlab/ref/ncinfo.html

https://ww2.mathworks.cn/help/matlab/ref/ncwrite.html

 

 

 

 

posted @ 2020-09-08 19:58  CollinsLi  阅读(2593)  评论(0编辑  收藏  举报