EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
1 m, \2 Y( R% z+ w
% D/ |' P# C7 l* m& k7 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;', ...5 H9 p8 B) w9 b! `. R3 D. V. s2 n/ x
matlabroot,'toolboxlocal;', ...
$ @5 {9 B) r3 O# L R( smatlabroot,'toolboxsharedcontrollib;', ...
j$ n2 T( r, A" |matlabroot,'toolboxshareddastudio;', ...4 i6 m0 \; H+ f9 _. I) C; `6 |
matlabroot,'toolboxmatlabdatamanager;', ...4 i. J) @4 Q# [+ p2 q) P
matlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”( o. L/ `; ?+ q2 O- ?) @% r
%%% 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 ) B& L* T x2 U. H
m_coast m_gshhs m_lldist m_tba2b
- X" z6 L, f# o4 y) y* z$ ym_contour m_gshhs_c m_mag2geo m_tbase
" z3 o7 w4 O1 A, r9 Q. P' t4 }& F0 zm_contouRF m_gshhs_f m_patch m_text
7 o2 I3 L+ s7 Z$ i7 p+ D1 zm_coord m_gshhs_h m_pcolor m_track
1 ^" J3 [0 d6 e" Pm_demo m_gshhs_i m_plot m_ungrid
0 Q1 f' _4 {, ]' o) T0 mm_elev m_gshhs_l m_plotbndry m_usercoast 6 E% I3 @' r1 u. @
m_etopo2 m_hatch m_proj m_vec 4 i, f5 K3 F) k8 J' d. P6 L# `
m_fdist m_idist m_quiver m_xy2ll
4 C' g0 ?, E4 ]$ Dm_geo2mag m_legend m_range_ring m_xydist 6 e' O5 _9 f1 G
m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');: H. G: M9 \6 U2 A+ I
m_coast;
- s1 v& d- C. x8 B, h* gm_grid; " p/ L; z: C# } `: h; s1 y
* g# p7 r- b B4 z% y( O------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28) 6 J, s* ?- _- J1 ^% R
s. a5 C1 s8 _2 I D" E( |
* H! g9 R1 o( `: `2 Y
%-------------------------------------------------------------------- figure2 {, O; t) f# O$ j7 s
P=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );
% X5 g1 u( ]2 Slo=0.5:359.5;
9 Z# `; D" I: l. {" j" e$ Jla=-89.5:89.5;' P c8 K' U2 I$ h5 u
[lo,la]=meshgrid(lo,la);
0 H0 [6 e6 P9 U( A) p. Om_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);
) l" {1 i8 K/ l, Y5 w. jm_pcolor(lo,la,P);hold on;
7 h0 H1 M7 l5 ^* bshading flat;+ e/ Y2 G4 q( `7 [1 `# r* m: ]
m_grid('box','fancy');
4 _. l+ q" _7 O6 i6 _hold on; -----------------------画出的图示-----------------------
* R' u- ?8 D5 c
$ p3 ?. I5 S9 N+ _! v" \ ==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html9 y; H" x! h& f: C. p
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
* |5 l5 d" o+ B/ g* Pm_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。 G3 H3 Z# m! e
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。
5 H# u e# _' U通过以上方法可以实现.shp在matlab绘图中的应用。 a# t- ~6 `( Q
|