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