EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
7 k& y' r- z- ?8 e
{* G2 a" i* b1 t7 a
查阅了些资料,请教了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;', ...
1 U, J+ ` m1 l/ Zmatlabroot,'toolboxlocal;', ...
& C' q3 v2 {6 xmatlabroot,'toolboxsharedcontrollib;', ...
8 G% y9 M! d" E6 J9 z& {matlabroot,'toolboxshareddastudio;', ...9 z/ u" H1 |+ |- V9 x" U, E5 q
matlabroot,'toolboxmatlabdatamanager;', .... k8 r% a. A7 y+ A: Z' \
matlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”
7 J5 R! e. l1 [- g$ u# w+ Z5 U%%% 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 % R2 H& C8 z- J+ W% y
m_coast m_gshhs m_lldist m_tba2b
7 b! n Y4 G( n8 Sm_contour m_gshhs_c m_mag2geo m_tbase + Y7 g* I C9 p' w1 `7 x
m_contouRF m_gshhs_f m_patch m_text
# A1 [1 j1 Z: ^# d! N& @m_coord m_gshhs_h m_pcolor m_track
$ b4 n1 y4 }) z) J$ t7 U# Sm_demo m_gshhs_i m_plot m_ungrid
- g$ r6 M) i- L7 o7 t; xm_elev m_gshhs_l m_plotbndry m_usercoast 6 |& I1 [! v+ ]3 ]' E1 v! n: m
m_etopo2 m_hatch m_proj m_vec % q* h2 c0 {" b! N& L
m_fdist m_idist m_quiver m_xy2ll 7 X7 h7 I, O+ u# i0 n" K/ r8 L' \9 C$ I
m_geo2mag m_legend m_range_ring m_xydist
% P4 F& w% K+ l) T$ ?m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');
0 n( B5 z* Q Jm_coast;
9 Q# N7 M# }# l7 @/ L; M' O2 Zm_grid;
/ K. g; p, L; }; X$ ^+ {7 N5 H9 s5 ~) y k! c* n" B& r& `" a
------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28) * w! H) E( B4 a
$ m0 e! [% X, y/ b; C! @6 P
4 M% _9 s, L! D/ F6 F5 `
%-------------------------------------------------------------------- figure
8 [/ q2 Y3 ?" j8 V/ tP=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );0 u1 u! U$ ^$ k; D: W' U
lo=0.5:359.5; ]6 _6 q& h+ s% C
la=-89.5:89.5;- s4 b3 K8 y$ M( t
[lo,la]=meshgrid(lo,la);9 z. N. r7 ?3 \* e
m_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);
! E6 ?- ~' V$ M& A* ~: X" xm_pcolor(lo,la,P);hold on;
- d7 Q7 p' |; n5 X# k' x# Z: g: N; }shading flat;
* z: u' @4 P2 Bm_grid('box','fancy');" N/ L$ g1 I, w4 m
hold on; -----------------------画出的图示-----------------------
- M Z: ]. K* {1 q$ P5 R
. F) F5 F( I' p F4 V( y
==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html( x1 @7 ~7 e( ?. v( N2 j3 ]
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
X2 N/ W- y' ]# F8 r8 q; [4 I/ Cm_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。
3 _0 a. j7 T8 {! V1 h# U* h! A! o除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。# a" O# ~$ b4 ~/ x6 S
通过以上方法可以实现.shp在matlab绘图中的应用。 ; L" F, |# X5 l* J+ X2 ]8 j$ _0 @
|