怎么用matlab打开一个netcdf的文件?
1个回答
展开全部
clear all
fgrd='/data/analysis_ms/2008080100_da.nc' %文件路径
nc=netcdf.open(fgrd, 'NC_NOWRITE'); %打开文件
start=[0,0,0]; % 起点位置 [0,0,0]
count=[145,96,30]; % 向后计数
vid=netcdf.inqVarID(nc,'EC'); % 获取变量名的ID
ec=netcdf.getVar (nc,vid,start,count); %读取变量
netcdf.close(nc); % 关闭文件
ec0=ec(:,:,1); %只取其中第一层
contourf(ec0') % 画等值线
说明:
这个数据在原来的Fortran中维数定义为(0:144,0:95,1:30),也就是说,其维数是145*96*30,分别为纬向、经向、垂直格点数
由于在matlab中认为nc文件总是从0开始的,所以从[0,0,0]作为起点,要读完所有的点,则要向后计数[145,96,30]个
如果读第一个点,则start=[0,0,0] count=[1,1,1]
如果读最后一个点则start=[144,96,29] count=[1,1,1]
如果读第一层的,则 start=[0,0,0] count=[145,96,1]
fgrd='/data/analysis_ms/2008080100_da.nc' %文件路径
nc=netcdf.open(fgrd, 'NC_NOWRITE'); %打开文件
start=[0,0,0]; % 起点位置 [0,0,0]
count=[145,96,30]; % 向后计数
vid=netcdf.inqVarID(nc,'EC'); % 获取变量名的ID
ec=netcdf.getVar (nc,vid,start,count); %读取变量
netcdf.close(nc); % 关闭文件
ec0=ec(:,:,1); %只取其中第一层
contourf(ec0') % 画等值线
说明:
这个数据在原来的Fortran中维数定义为(0:144,0:95,1:30),也就是说,其维数是145*96*30,分别为纬向、经向、垂直格点数
由于在matlab中认为nc文件总是从0开始的,所以从[0,0,0]作为起点,要读完所有的点,则要向后计数[145,96,30]个
如果读第一个点,则start=[0,0,0] count=[1,1,1]
如果读最后一个点则start=[144,96,29] count=[1,1,1]
如果读第一层的,则 start=[0,0,0] count=[145,96,1]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询