标签:lam alt data image dataset 世界 读取数据 .com grid
1、 全球/地区温度图
(1)读取数据
clear all setup_nctoolbox %调用工具包 tic %计时 %% nc=ncgeodataset(‘tmpsfc.gdas.199401.grb2‘); %读文件 tem_1=nc.variables %浏览数据类型 %% a1=nc.geovariable(tem_1(1));%取得数据类型为Temperature_surface的数据 b1=a1.data(1,:,:); %第一个时间点温度数据 c1=squeeze(b1)-273.16;%删除单一维度,换为摄氏温度 %% a2=nc.geovariable(tem_1(2));%取得数据类型为lat的数据,纬度 b2=a2.data(:,1)%提取数据 %% a3=nc.geovariable(tem_1(3));%经度 b3=a3.data(:,1)% %% a4=nc.geovariable(tem_1(4));%取得数据类型为time的数据 b4=a4.data(:,1)% %% save A b2 b3 c1 toc
读取的是NCEP/CFSR数据,1994年1月的温度数据。
该数据一共四项。温度,纬度,经度,时间。
时间数据
经度数据
纬度数据
可以看出该数据集的数据组织形式,经度纬度构成世界地图,记录了744个时间点的温度数据。约等于1小时采集一次数据。
温度数据
保存为mat格式数据,为画图做准备。
(2)画图
clear all load A [Plg,Plt]=meshgrid(b3‘,b2‘);%形成网格 m_proj(‘hammer-aitoff‘,‘clongitude‘,-150);%投影模式 m_pcolor(Plg,Plt,c1); shading flat; colormap(‘jet‘);%颜色选择 hold on; m_pcolor(Plg-360,Plt,c1); shading flat; %着色模式 colormap(‘jet‘); m_coast(); m_grid(‘xaxis‘,‘middle‘); % h=colorbar(‘h‘); % set(get(h,‘title‘),‘string‘,‘1991年1月全球温度‘); c=colorbar(‘southoutside‘,‘fontsize‘,12) c.Label.String = ‘1994年1月全球温度‘; c.Label.FontSize = 15;
(3)找出最大、最小温度的经纬度
clear all load C Max_col=max(c1);%列最大值 Max_row=max(c1,[],2)%行最大值 Max=max(max(c1)); [x1,y1]=find(c1==max(max(c1)));%x 行,y 列 T_1=Plt(x1,y1)%纬度 T_2=Plg(x1,y1)%经度 Min_col=min(c1);%列最大值 Min_row=min(c1,[],2)%行最大值 Min=min(min(c1)); [x,y]=find(c1==min(min(c1)));%x 行,y 列 T_x=Plt(x,y)%纬度 T_y=Plg(x,y)%经度
可以看出最热52度,在澳大利亚那块(142.8123E,23.2610S);最冷-62度,在北极圈那块(89.9999E,66.3486N)。
(4)中国(地区)温度图
clear all load A LATLIMS=[3 54]; LONLIMS=[72 134];%选定边界范围 [Plg,Plt]=meshgrid(b3‘,b2‘);%形成网格 m_proj(‘lambert‘,‘lon‘,LONLIMS,‘lat‘,LATLIMS);%投影模式 m_pcolor(Plg,Plt,c1); shading flat; colormap(‘jet‘);%颜色选择 hold on; m_pcolor(Plg-360,Plt,c1); shading flat; %着色模式 colormap(‘jet‘); m_coast(); m_grid(‘box‘,‘fancy‘,‘tickdir‘,‘in‘); % h=colorbar(‘h‘); % set(get(h,‘title‘),‘string‘,‘1991年1月全球温度‘); c=colorbar(‘southoutside‘,‘fontsize‘,12) c.Label.String = ‘1994年1月中国温度‘; c.Label.FontSize = 15;
该方法是读取全球数据,只展示部分
(5)
改进的区域方法,读取该区域的数据数据,
clear all setup_nctoolbox %调用工具包 tic %计时 %% min_lat=115; max_lat=279; min_lon=231; max_lon=430; %区域经纬度范围,在数据中的位置 %% nc=ncgeodataset(‘tmp2m.gdas.199401.grb2‘); %读文件 tem_1=nc.variables %浏览数据类型 %% N1=nc.size(tem_1(1));%读取数据大小,可以看出数据的组织形式 a1=nc.geovariable(tem_1(1));%取得数据类型为Temperature_surface的数据 b1=a1.data(1,1,min_lat:max_lat,min_lon:max_lon); %第一个时间点温度数据 c1=squeeze(b1)-273.16;%删除单一维度,换为摄氏温度 %% N2=nc.size(tem_1(2)); a2=nc.geovariable(tem_1(2));%取得数据类型为lat的数据,纬度 b2=a2.data(min_lat:max_lat,1);%提取数据 %% N3=nc.size(tem_1(3)) a3=nc.geovariable(tem_1(3));%经度 b3=a3.data(min_lon:max_lon,1);% %% N4=nc.size(tem_1(4)) a4=nc.geovariable(tem_1(4));%取得数据类型为time的数据 b4=a4.data(:,1);% %% N5=nc.size(tem_1(5));%读取数据大小 a5=nc.geovariable(tem_1(5));%取得数据类型为time的数据 b5=a5.data(:,1);% %% save tem b2 b3 c1 toc
clear all load tem LATLIMS=[3 54]; LONLIMS=[72 134];%选定边界范围 [Plg,Plt]=meshgrid(b3‘,b2‘);%形成网格 m_proj(‘lambert‘,‘lon‘,LONLIMS,‘lat‘,LATLIMS);%投影模式 m_pcolor(Plg,Plt,c1); shading flat; colormap(‘jet‘);%颜色选择 hold on; m_pcolor(Plg-360,Plt,c1); shading flat; %着色模式 colormap(‘jet‘); m_coast(); m_grid(‘box‘,‘fancy‘,‘tickdir‘,‘in‘); % h=colorbar(‘h‘); % set(get(h,‘title‘),‘string‘,‘1991年1月全球温度‘); c=colorbar(‘southoutside‘,‘fontsize‘,12) c.Label.String = ‘1994年1月中国温度‘; c.Label.FontSize = 15;
2、读取方式的改变
标签:lam alt data image dataset 世界 读取数据 .com grid
原文地址:http://www.cnblogs.com/ruo-li-suo-yi/p/7762721.html