EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
" G6 G* b% G. S, B" m& [
. K+ }9 }, f* Q查阅了些资料,请教了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;', ...
" J( F( F @7 _9 T# g D6 Wmatlabroot,'toolboxlocal;', ...
; B, H3 Q" u* hmatlabroot,'toolboxsharedcontrollib;', ...
9 u$ N+ d9 z/ b" M8 Ematlabroot,'toolboxshareddastudio;', ...7 q2 i6 @" y2 y5 G& C0 H
matlabroot,'toolboxmatlabdatamanager;', ...
" d8 C8 v% d4 s7 e' u6 _matlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”4 m/ |/ D8 E. }6 P. }; {' R6 M
%%% 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 ( B8 X/ C9 i1 `; D5 |+ |5 h% d
m_coast m_gshhs m_lldist m_tba2b 3 P7 w0 m7 [( Y5 Q0 i! A' h
m_contour m_gshhs_c m_mag2geo m_tbase ( E2 A* E. ~) N" \: z
m_contouRF m_gshhs_f m_patch m_text
N! y! n& J& ^9 fm_coord m_gshhs_h m_pcolor m_track
; T" X8 C; J0 M. q* I( O/ i* }( P% Wm_demo m_gshhs_i m_plot m_ungrid
6 M' i+ q' X( _ nm_elev m_gshhs_l m_plotbndry m_usercoast " R) U, V6 e7 p# s( I. E8 r
m_etopo2 m_hatch m_proj m_vec 8 o0 a6 |3 S7 R! J# \5 ?9 }
m_fdist m_idist m_quiver m_xy2ll 5 w/ t% @% `5 ?+ I7 i. Z
m_geo2mag m_legend m_range_ring m_xydist
) `) q* k5 C: {m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');" K9 F& _) U; r$ [
m_coast;; r( m8 O2 V: K( |4 F U
m_grid;
, A2 T s1 L; X. V0 p- a: o
, S4 f' B2 q7 _ o( Q8 v------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28)
$ l' K: X) Q% D
0 z9 T6 _, M% r. I, l$ D$ _' p
9 b h4 @' L1 s0 f+ k6 {
%-------------------------------------------------------------------- figure
% y0 z8 U5 n/ XP=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );
G; @ Y0 Z! t B" a4 hlo=0.5:359.5;$ g+ k' K4 c. x* D
la=-89.5:89.5;
: {& x( H" b5 K" q9 X[lo,la]=meshgrid(lo,la);
# f, t) A% J- O* Q/ ~/ d9 zm_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);
/ s' U% T3 E( [" q% F+ P1 T: `m_pcolor(lo,la,P);hold on;6 T6 E+ m# n6 K9 T
shading flat;- Q6 l+ r L" Z* Y7 i w, L
m_grid('box','fancy'); o; X5 r9 v6 b+ l% }( A; m
hold on; -----------------------画出的图示-----------------------
7 U/ y& V6 b/ b9 P2 w2 g+ I
+ p: e+ u$ i3 [$ e ==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html: O3 g6 @' e& P
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
0 p' P/ k/ I. P5 ]- H; {8 Ym_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。2 Q2 X* t" _& m9 x
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。0 {$ B" @& n" o6 J- Y, S; Y+ a
通过以上方法可以实现.shp在matlab绘图中的应用。 & ]0 B7 I% K$ X" K/ ^! Q
|