- 积分
- 1639
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-5-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 1434272731 于 2015-11-1 22:19 编辑
最近要用到程序计算出来站点的资料绘制等值线的分布形态,之前是用Sufer画的,今天突发奇想,想试试用MTLAB画是什么效果,于是就开始了尝试。
想用MATLAB做这样的图必须要使用地图工具箱,于是网上搜了一下,大多数人并不用MATLAB自带的mapping工具箱(并不知道具体是什么原因,但肯定有功能不够强大的原因),而是用一个叫m_map工具箱。于是我也下载此工具箱并加载到MATLAB中。
m_map下载地址请戳:http://www.eos.ubc.ca/~rich/map.html
压缩包很小,也不到700K,下载结束后,将其解压到MATLAB安装文件的"/toolbox"目录下,并将m_map工具箱所在路径复制下来,打开MATLAB命令窗口,输入:
addfile 你的m_map所在路径,如:addfile e:/matlab/toolbox/m_map
这就添加了m_map工具箱,检查是否成功添加:输入:
which m_coast.m
如果命令框中显示了m_coast.m所在的绝对路径,则说明你已经成功添加了m_map工具箱
接着,就可以绘制图形了!
%snow_depth_draw
clc;clear all;close all;
A=load('D:\cryosphere_environment\EOF_snowcover\surfer_draw\winter_depth_mode1.dat');
lat=A(:,2);
lon=A(:,1);
value=A(:,3);
[X1 Y1] = meshgrid(64.52:0.2:104.64,25.69:0.2:45.10);
[X,Y,Z] = griddata(lon,lat,value,X1,Y1);
figure(1);
ma=shaperead('C:\Users\dell\Desktop\qzgy.shp'); % 读取高原边界shp文件,a为结构体。输入whos a 可查看结构体
%mb=shaperead('bou2_4p.shp');% 省界
bou1_4lx=[ma(:).X]; % 提取经度
bou1_4ly= [ma(:).Y]; % 提取纬度
m_proj('Transverse Mercator','lon',[64.52,104.64],'lat',[25.69,45.10],'aspect',.8);
m_plot(bou1_4lx,bou1_4ly); %绘图,查看边界是否正确,注意其实国界在省界之内,不必提取国界也可以由省界表示出国界来。
hold on
grid off
%bou1_4px=[mb(:).X];%同上(如有省界的话去掉注释)
%bou1_4py=[mb(:).Y];%同上
%m_plot(bou1_4px,bou1_4py)%同上
%provence=[bou1_4px',bou1_4py'];
%save prov.datprovence–ascii;
%hold on;
m_pcolor(X,Y,Z);
shading flat
%shading interp %画图去掉黑色网格线画图语句后面加命令shading interp,这样整个图就连续光滑了
% 如果不想在边界插值平滑:set(h,'edgecolor','none')
colorbar('h');
hold on;
[cs,h]=m_contour(X,Y,Z,'linewidth',1);
%clabel(cs,h,'fontsize',6);
%m_grid('linest','none','linewidth',1.5,'tickdir','out','FontSize',12); %控制坐标轴上的字体大小
m_grid('FontSize',14)
%m_grid
xlabel('Longitude','fontsize', 14); %控制坐标轴名称的字体大小
ylabel('Latitude','fontsize', 14); %控制坐标轴名称的字体大小
title('The fist vector feild of winter snow depth','fontsize', 14);
结果如下图,图不漂亮,还有很多需要改进的地方,比如填色图的颜色范围不能和边界完全重合,导致边界地方很难看,还希望有经验的大神可以指教指教,本人将感激不尽!
大家可以根据自己的绘制范围去选择和下载.shp底图,并合理设置经纬度范围绘图。今天就说到这里吧,第一次发帖,还望大家提出宝贵意见!
|
-
结果图
评分
-
查看全部评分
|