EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
. s" ?9 O9 u5 w- ~: e, }2 o8 u: t( E5 @0 ]" |' s( t% I) C
查阅了些资料,请教了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;', ...; a8 M0 L* S& W' q& V) `" l
matlabroot,'toolboxlocal;', .... F" r! C# r, X0 L' E
matlabroot,'toolboxsharedcontrollib;', ...
% h# X- D8 k$ t& Lmatlabroot,'toolboxshareddastudio;', ...3 s9 ]+ q8 D* o, ]' K8 k# n/ G q
matlabroot,'toolboxmatlabdatamanager;', ...5 L$ a2 ~. O+ I4 A t1 m
matlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”3 B- x/ g- c) j2 W t8 m0 p
%%% 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 " h: ]! _8 I! Q! F1 b9 F
m_coast m_gshhs m_lldist m_tba2b
* K1 n$ z0 T( T, l- ]- qm_contour m_gshhs_c m_mag2geo m_tbase
1 y& I' |; I K) m% v! q& T+ pm_contouRF m_gshhs_f m_patch m_text 2 t: w, _* x" u a* }& ~; {
m_coord m_gshhs_h m_pcolor m_track 1 x2 k# ?' v# `1 I9 i
m_demo m_gshhs_i m_plot m_ungrid - A! @, T0 A# z# z0 {) b
m_elev m_gshhs_l m_plotbndry m_usercoast * Y3 I# I& f" T4 A5 l( S: M2 m
m_etopo2 m_hatch m_proj m_vec
2 [5 [2 b& } P# R C- F0 c- f" Km_fdist m_idist m_quiver m_xy2ll X; d8 W; K6 W* j
m_geo2mag m_legend m_range_ring m_xydist
. ?# j; x' h4 y8 ~# E! U/ [0 i0 N4 vm_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');
% t, g9 R9 e+ J2 hm_coast;
/ \3 F3 L- M' o8 Q7 O, T0 i* V0 Em_grid; % w, Y5 ?6 C0 k7 p$ g+ |
4 l6 ]3 i) ^& r. p; p: i
------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28) 7 @: n$ n6 @' T
/ b/ p, ?2 ?; M
4 B2 u& J$ v+ g
%-------------------------------------------------------------------- figure2 @; o- e6 s" S4 y0 s
P=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );
/ T! J1 j( x+ e8 B+ Alo=0.5:359.5;. T& A/ d) B- I- | {
la=-89.5:89.5;
' G: @7 I( m+ ~! @+ f/ F[lo,la]=meshgrid(lo,la);
$ b+ B; o0 v. d. _$ U' sm_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);1 o& N1 ^! }6 r
m_pcolor(lo,la,P);hold on;
4 G) e+ a4 D% b+ jshading flat;
( m; c8 K( y4 W2 h0 i4 a( ?m_grid('box','fancy');8 K3 j3 r5 W' G. ^
hold on; -----------------------画出的图示-----------------------
7 T5 [9 ~# [. @/ ^6 D7 d3 d5 b9 m* Q+ {
==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html1 [- y0 n/ L( D" B, k7 }- L& {
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
' U$ u+ l4 _- q& \4 d Vm_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。
' N9 z0 z, n, Y' n' `+ r除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。; g6 p8 ~: t8 |; @; d2 f* y: N$ u; Y
通过以上方法可以实现.shp在matlab绘图中的应用。 $ v! N8 X% @% O% F0 {# { Y7 k
|