纯干货,请收下!
%Matlab程序读取sst数据:
close all
clear all
oid=’sst.mnmean.nc’ %将oid设置为nc文件名,防止nc文件名过长导致不必要的麻烦 以下用oid代替nc文件名
ncinfo(‘sst.mnmean.nc’); %读取nc文件的属性值 必须保证nc文件和.m程序在同一文件夹下
sst=double(ncread(oid,’sst’)); %读取文件类型为sst类型的nc文件
nlat=double(ncread(oid,’lat’)); %读取经度变量
nlon=double(ncread(oid,’lon’)); %读取纬度变量
mv=ncreadatt(oid,’/sst’,’missing_value’); %缺少值和对应精度
sst(find(sst==mv))=NaN; %将缺少值设置为空值
%% 显示数据
[x,y]=meshgrid(lon,lat);%根据经纬度信息产生格网,
[Nlt,Nlg]=meshgrid(nlat,nlon);
%Plot the SST data without using the MATLAB Mapping Toolbox
%用Plot方法对sst文件进行画图不使用MATLAB自带的地图工具 结果:显示不出来对应的横纵坐标和轮廓
figure
pcolor(Nlg,Nlt,sst(:,:,1));shading interp;
load coast;hold on;plot(long,lat);plot(long+360,lat);hold off
colorbar
%用Plot方法对sst文件进行画图不使用MATLAB自带的地图工具 结果:显示不出来对应的横纵坐标和轮廓
%Plot the SST data using the MATLAB Mapping Toolbox
figure
axesm(‘eqdcylin’,’maplatlimit’,[-80 80],’maplonlimit’,[0 360]); % Create a cylindrical equidistant map %根据nc文件创建相应的图,此处创建eqdcylin即创建柱面等距地图 还可创建其他类型图 自行查找axesm属性资源
pcolorm(Nlt,Nlg,sst(:,:,1)) % pseudocolor plot “stretched” to the grid 用matlab自带工具伪彩色图“拉伸”到网格
load coast % add continental outlines 可以用matlab自带工具添加大陆轮廓
plotm(lat,long)
colorbar