EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
d/ n( B5 @1 V! M5 X$ A) o& W+ }+ ~2 o$ i5 E) e/ X6 D, Z* h
查阅了些资料,请教了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;', ...7 l6 A3 a0 ~- K
matlabroot,'toolboxlocal;', ...( h( }" J& p; A6 J2 F; ^
matlabroot,'toolboxsharedcontrollib;', ...8 o$ ~' K( _/ R
matlabroot,'toolboxshareddastudio;', ...
+ G' X9 c& v- v- O/ X$ C qmatlabroot,'toolboxmatlabdatamanager;', ...
, T$ q( x( ?! _3 V. r5 G% Imatlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”2 s- A9 f- P5 h: @/ @
%%% 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
+ X2 d, \! S& q. C* V4 M. em_coast m_gshhs m_lldist m_tba2b . Z, M! }* F$ p+ I
m_contour m_gshhs_c m_mag2geo m_tbase 2 A$ C; G1 K6 X2 E/ i4 f' P) O
m_contouRF m_gshhs_f m_patch m_text
$ x9 K0 L | V( Am_coord m_gshhs_h m_pcolor m_track 8 `1 P! c9 B5 K" I
m_demo m_gshhs_i m_plot m_ungrid
% k; Z. G8 Z$ ~# d# xm_elev m_gshhs_l m_plotbndry m_usercoast
( \ P5 A! I @& Q' b3 Xm_etopo2 m_hatch m_proj m_vec [" @1 E9 ], G- F' d; V- x
m_fdist m_idist m_quiver m_xy2ll 1 k$ C S3 n" w* w. ^7 l/ u2 L% O5 z. ^
m_geo2mag m_legend m_range_ring m_xydist 6 h. Z& J" o5 |* n7 S- h7 q8 }
m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');4 X0 k8 E, g) W- z f0 m9 X, s2 b
m_coast;% e h$ A6 w0 Y# q
m_grid; ) n! u( m" v' m: Q( \4 i% H) N3 r
& A7 A! M, r& `0 l8 i; W------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28)
4 o& t, x: z0 ^% X) x; o4 \+ w3 P
1 V. _7 S: S4 E% P1 h( \8 r
0 G" Z2 K& n8 J1 C8 h2 n0 J; [ %--------------------------------------------------------------------
figure
3 D; c' N" n: G t) zP=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );6 [( h0 {+ U1 r% p; C6 Z4 W
lo=0.5:359.5;: c5 B' C9 ~9 J
la=-89.5:89.5;
& |2 c4 b8 S; r5 h3 C; {: h9 ?, I[lo,la]=meshgrid(lo,la);
& K# B6 s, B3 K* \% J" t5 Rm_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);
2 _& k# a" T& rm_pcolor(lo,la,P);hold on;
" v" \) I2 b- u# r2 B$ Q7 [shading flat;
! {8 v6 \5 w# mm_grid('box','fancy');
4 B" d2 O8 J' _. B8 G- L7 fhold on; -----------------------画出的图示-----------------------
: [5 G/ f# p2 o- q$ ~( p% }- I) ^: f- m: u
==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html# H) I2 I8 ]2 Y- w1 `
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。4 a0 ?9 O2 V! y8 v
m_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。8 R4 g; n5 T e' t) c
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。
2 P( D2 @( y8 ]. N通过以上方法可以实现.shp在matlab绘图中的应用。 & Z3 C/ F3 h! e
|