EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
- D$ p. C) n- X2 s
! L) h8 @1 P$ d查阅了些资料,请教了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;', ...
& @3 d( w, M7 q3 U% ~; h6 D! [" D7 D! vmatlabroot,'toolboxlocal;', .../ G* ?& \# Z# k* N
matlabroot,'toolboxsharedcontrollib;', ...1 ^- ^2 g8 P3 j- J( N
matlabroot,'toolboxshareddastudio;', ...+ M! ?5 C7 v! `$ j' d8 L
matlabroot,'toolboxmatlabdatamanager;', ...& G& X8 R8 c& g" U% Y1 k6 H
matlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”$ l ~* K* U1 y" j- ~2 O
%%% 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
9 }0 p! }* d: @4 C! t U/ hm_coast m_gshhs m_lldist m_tba2b
1 e- W- J4 q. Z! N. T' q& l$ Cm_contour m_gshhs_c m_mag2geo m_tbase - _: v& `) ^* ?; w3 a; K
m_contouRF m_gshhs_f m_patch m_text
( q! \$ I* z% N& c, p) R5 fm_coord m_gshhs_h m_pcolor m_track - {: Y- w* G1 o6 F* Y( [$ R1 M
m_demo m_gshhs_i m_plot m_ungrid + \) r4 ^+ c m" F
m_elev m_gshhs_l m_plotbndry m_usercoast _9 { d. P) {) n! P1 x
m_etopo2 m_hatch m_proj m_vec
1 n1 k9 F1 X" z6 nm_fdist m_idist m_quiver m_xy2ll 1 _' d* k6 R3 O$ F% J
m_geo2mag m_legend m_range_ring m_xydist ' e6 F v# b& H! D
m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');
2 q0 c$ t+ G9 O1 T; r7 im_coast;$ u6 N" j7 U2 C" i1 m2 R6 w6 \5 [, Y
m_grid;
0 \2 f2 O" ? i7 }) v0 Q% w+ v2 q& p1 @7 ]$ ~6 f
------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28) 0 R; V, H$ S! {- l
) }+ j+ K) E# [7 l* l
$ q" c) M) H ]- d/ a' ?. @$ u) }
%-------------------------------------------------------------------- figure" Q( O w0 W' P
P=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );+ o+ {# E6 S$ f k
lo=0.5:359.5;/ K9 f' y) h. j
la=-89.5:89.5;, Q4 z4 O# s4 ]' a3 x
[lo,la]=meshgrid(lo,la);* W. O" D6 x5 T* j0 [: t" a" i
m_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);
. t1 C2 f# P+ [' Em_pcolor(lo,la,P);hold on;' j u/ ^9 u c* @: w5 O# x+ k6 k+ w' l
shading flat;/ N4 J5 N+ M( F( B
m_grid('box','fancy');
$ m, {5 A& _: d$ `: Bhold on; -----------------------画出的图示-----------------------
! D3 J0 i; y J) N; r+ z6 n/ |
8 e, _+ D) j& d, g; q
==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html' H9 o5 _ Y3 ?5 \4 [/ G9 p' G
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
" c0 s, h; N% e7 qm_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。
E/ }2 I8 C, y7 j, W) T' h除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。. S( K$ k& a; N# H, M! A5 d* Z: y
通过以上方法可以实现.shp在matlab绘图中的应用。 / }) A2 R! X* q, t. }7 J
|