EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
9 R! Q; i) M. M; Y! N
1 n$ i& P9 X$ v. v8 C7 |, i查阅了些资料,请教了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;', .../ h% G6 m6 F! q! r# E$ M
matlabroot,'toolboxlocal;', ...
/ O* X3 Y5 K* R; qmatlabroot,'toolboxsharedcontrollib;', ...
+ j! ]. O. ^4 F, c4 W2 d5 L( a; rmatlabroot,'toolboxshareddastudio;', ...
4 s# Z& X" F* Z/ _# M! Rmatlabroot,'toolboxmatlabdatamanager;', ...
8 d8 v, Q+ F# f* Z6 V3 rmatlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”$ m1 O$ c, ~; k9 \. t6 ?! [
%%% 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
c5 ]5 t4 K& ~) A+ r& x) k) em_coast m_gshhs m_lldist m_tba2b & p: m: g$ O; W
m_contour m_gshhs_c m_mag2geo m_tbase $ y% C$ G C; w
m_contouRF m_gshhs_f m_patch m_text
: T/ J. G! {' w* K+ h- ^m_coord m_gshhs_h m_pcolor m_track 9 i$ ~, V% @( S3 ^
m_demo m_gshhs_i m_plot m_ungrid
4 K% o7 M4 k: I+ Wm_elev m_gshhs_l m_plotbndry m_usercoast " U F0 J1 D" k6 N! d
m_etopo2 m_hatch m_proj m_vec
- F3 A% b' r m Y Qm_fdist m_idist m_quiver m_xy2ll
. L9 P4 G: i5 z+ Q1 f. Wm_geo2mag m_legend m_range_ring m_xydist . Q9 z- I/ F) M+ C9 J+ n* L
m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');
& q0 ]+ j4 r# R) `9 w# c. rm_coast;
- b) m) L# F6 A$ p, nm_grid; 0 h* i; @$ g, t, M
$ @& C! { ]" W------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28)
, w& U* s- p! l0 o- Y/ u
+ A* A; m. U- G% N# ^; g
# D" N8 c8 y/ b4 C2 F %--------------------------------------------------------------------
figure
7 q3 y" z2 y/ c: l+ U- zP=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );
. e: J5 H( l6 ylo=0.5:359.5;
; G! F9 S& _2 l. b/ _8 t6 Dla=-89.5:89.5;
6 A' p; K9 I! |[lo,la]=meshgrid(lo,la);
2 t s. ?! L3 bm_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);8 T( |9 a1 W+ |7 V, ?5 ]" X. ?
m_pcolor(lo,la,P);hold on; L+ B* x9 L/ Z1 s" I- Q) {
shading flat;
$ u2 T2 ^- `8 j) R* _m_grid('box','fancy');
7 a& f0 l# q9 X/ shold on; -----------------------画出的图示-----------------------
9 x( e9 @9 \5 W/ Y3 C4 n* P/ @
/ e: E/ s: [3 n/ l ==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html, b- W5 @3 e: u/ Y3 ?, M
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。1 m: m7 C* n6 y& h6 g Y! R
m_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。 V- ^% D4 X8 R) @8 x/ f- X# H1 }
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。7 p2 I* z8 E) ?( t/ I5 V9 L @% [
通过以上方法可以实现.shp在matlab绘图中的应用。
: U" d+ _ m2 Q Q# ^ |