向已经存在的netcdf文件中添加一个新变量
相关文章
Matlab 批量修改nc文件中某一个变量的数值
以向nc文件中添加“GLACIER_REGION”变量为例
clc; clear;
% Calculate new variable in advance
glcid_val = zeros(48,40);
glcid_val = int32(glcid_val);
% Open nc with "WRITE" mode
FileName = 'H:\TempData\CLMsurface_data\surfdata_0.125x0.125_16pfts_longtan_simyr2000_c210621.nc';
ncid = netcdf.open(FileName, 'WRITE');
% 新变量是以原本nc中的维度进行设置的,所以此处需要先把维度ID提取出来。
lonDimid = netcdf.inqDimID(ncid, 'lsmlon');
latDimid = netcdf.inqDimID(ncid, 'lsmlat');
% define Variable
netcdf.reDef(ncid);
glacier_region_id = netcdf.defVar(ncid, 'GLACIER_REGION', 'NC_INT', [lonDimid, latDimid]);
netcdf.endDef(ncid);
% put variable into nc under NON-define model
netcdf.putVar(ncid, glacier_region_id, glcid_val);
% out attribute into nc
netcdf.reDef(ncid);
netcdf.putAtt(ncid, glacier_region_id, 'longname', 'glacier region ID');
netcdf.putAtt(ncid, glacier_region_id, 'units', 'unitless');
% close nc
netcdf.close(ncid);
【更多精彩内容,在这里哈,欢迎交流学习】