EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
* {0 L; G# W& G2 x1 d' ?+ u+ l2 D) y
查阅了些资料,请教了Liangjing,一致推荐m_map。为了达到想要的效果,这次只要不再偷懒,下载M-Map工具箱(http://www.eos.ubc.ca/~rich/map.html)并进行安装。所幸过程比较顺利,现记录如下,回头把画出的效果图再添上。其他matlab的toolbox安装,也可参考进行。 ---------------------------------------- M_map的User Guide教的,matlab安装目录请自行参考自己的电脑。 1、将M_map.zip工具箱内容解压缩,至'C:Program FilesMATLABR2009atoolboxmatlabm_map' 2、找到'C:Program FilesMATLABR2009atoolboxlocalpathdef.m'文件,打开,并把1中的路径添加到该文件中,保存。 matlabroot,'toolboxmatlabplottools;', ...
6 p. ~9 g* F2 q0 Jmatlabroot,'toolboxlocal;', ...4 C* o2 t" G+ N5 Z% N) |
matlabroot,'toolboxsharedcontrollib;', ...9 f9 q' N/ w$ t. a8 b3 o4 T7 s8 R7 g# x( }
matlabroot,'toolboxshareddastudio;', ...
8 w4 Y1 Y. h7 {- U8 Dmatlabroot,'toolboxmatlabdatamanager;', ...
( E& N7 M! i$ q0 Z2 I' Y2 W$ dmatlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”* `. _+ d" `- p3 B" {) B
%%% END ENTRIES %%% 3、运行 rehash toolboxcache 命令,完成工具箱加载 >>rehash toolboxcache ========以上,完成加载============================== ========以下,测试是否成功=========================== test1:运行 >>what m_map 得到的结果类似dos中的dir命令,即可。 M-files in directory C:Program FilesMATLABR2009atoolboxmatlabm_map Contents m_grid m_ll2xy m_scale # C- ~+ a! ~2 F* W2 ]9 E
m_coast m_gshhs m_lldist m_tba2b 0 O& }3 ~- Q; u0 [8 ^
m_contour m_gshhs_c m_mag2geo m_tbase
: y9 k4 [4 j; J% H5 n% T- L+ qm_contouRF m_gshhs_f m_patch m_text ! E: j$ a5 q1 C' p! z, Z- {$ c& L
m_coord m_gshhs_h m_pcolor m_track / v( Q9 l6 t1 Z, B; M
m_demo m_gshhs_i m_plot m_ungrid , j) |$ `, b1 ]
m_elev m_gshhs_l m_plotbndry m_usercoast . I, p& Q9 V- j, U, \& G/ K
m_etopo2 m_hatch m_proj m_vec
, Y. W. c" _$ hm_fdist m_idist m_quiver m_xy2ll $ p4 ]5 L& J7 k7 y$ b
m_geo2mag m_legend m_range_ring m_xydist $ q" {" U9 c+ W% F X E
m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');( F9 C; K, u& [' t
m_coast;2 r4 P! G0 T, Y
m_grid;
+ ]4 l8 B. {2 W0 [0 }7 g7 U8 ^! z- y) W
------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28)
* d4 t( z: j: x/ O/ e* c+ R: Q: @# k
& A" |) a9 M( h, i0 F/ C) f5 ^" u
%-------------------------------------------------------------------- figure! g9 Q. p2 }- j3 `# O% B% V' _
P=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );
4 P! Y4 O' W- H1 |lo=0.5:359.5;) J* b3 o/ R/ ^
la=-89.5:89.5;8 V4 x5 @" m/ M4 P
[lo,la]=meshgrid(lo,la);
2 V# A- f0 C' r* }$ km_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);! c. i. [" O% c' Q
m_pcolor(lo,la,P);hold on;( u1 Z; J6 h1 K
shading flat;
% o! p- ~, n. M1 Cm_grid('box','fancy');8 E+ w3 Y) F& v- S, i. ?
hold on; -----------------------画出的图示-----------------------
. U% V0 l6 {6 t8 E5 c- _9 W1 b
0 h% R% P9 ^& K: S: p4 f3 W
==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html& f9 f3 \# L0 D! o9 b
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
1 H- `4 `! L3 t, v7 I6 Wm_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。% b, w6 G) ^+ U9 w( D
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。- N; [0 b* U' L9 l6 z
通过以上方法可以实现.shp在matlab绘图中的应用。
8 }. C" f7 i" S4 l: @ |