MATLAB:netcdf的用法
MATLAB除了经常用的ncdisp,ncread,ncwrite以外,还有netcdf库程序包。
主要学习搬运ROMS tool里的native netcdf包。(ROMS tool里还有mexnc和Java版本的接口,但新版matlab原生接口就已经很好用啦)
nc变量重命名
% Fname NetCDF file name (string)
% Vname_old Old variable name (string)
% Vname_new New variable name (string)
% Open NetCDF file and get variable ID.
ncid = netcdf.open(Fname, 'nc_write'); % 以WRITE模式打开nc文件
varid = netcdf.inqVarID(ncid, Vname_old); % 获取原变量名,并记作varid
% Put file into define mode.
netcdf.reDef(ncid); % 进入定义模式,可以添加或重命名维度、变量和属性,也可删除属性
% Rename variable.
netcdf.renameVar(ncid, varid, Vname_new); % 将变量名更改为Vname_new
netcdf.endDef(ncid); % 退出定义模式(optional)
% Close NetCDF file.
netcdf.close(ncid); % 关闭netcdf文件
举例:
>> ncdisp(Fname)
Source:
F:\...\SRTM15.nc
Format:
netcdf4
Global Attributes:
...
Dimensions:
...
Variables:
lon
...
lat
...
z
Size: 86400x43200
Dimensions: lon,lat
Datatype: single
Attributes:
long_name = 'z'
_FillValue = NaN
actual_range = [-11058.001 8627]
>> Vname_old='z';
>> Vname_new='topo';
>> ncid = netcdf.open(Fname, 'nc_write');
>> varid = netcdf.inqVarID(ncid, Vname_old);
>> netcdf.reDef(ncid);
>> netcdf.renameVar(ncid, varid, Vname_new);
>> netcdf.endDef(ncid);
>> netcdf.close(ncid);
>> ncdisp(Fname)
Source:
F:\...\SRTM15.nc
Format:
netcdf4
Global Attributes:
...
Dimensions:
...
Variables:
lon
...
lat
...
topo
Size: 86400x43200
Dimensions: lon,lat
Datatype: single
Attributes:
long_name = 'z'
_FillValue = NaN
actual_range = [-11058.001 8627]
>>
ROMStool/netcdf/nc_vrename 可以通过定义Fname、Vname_old、Vname_new,将“Fname”文件中Vname_old改成Vname_new,自动识别不同netcdf接口。
本文来自博客园,作者:dan-chen,转载请注明原文链接:https://www.cnblogs.com/dan-chen/p/17202703.html
---------------
小陈的学习历险记