EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前转载过matlab画世界地图的文章。最近正好用到。首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
' {8 j" h3 h2 }* F, j
* u3 m& @* l) C; G1 h/ K3 p查阅了些资料,请教了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;', ..." U6 {; d: F" t6 c
matlabroot,'toolboxlocal;', ...% h* Y' l! O* u7 S4 ~ d: u
matlabroot,'toolboxsharedcontrollib;', ... g2 C3 x! }: c6 q1 a
matlabroot,'toolboxshareddastudio;', ...# e( L% ^* p9 `4 |$ b
matlabroot,'toolboxmatlabdatamanager;', ...
: o- [& K9 s6 C. `, Y0 M" v/ Mmatlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”) j6 U* f6 A, N
%%% 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 * f4 H Q/ ~9 w
m_coast m_gshhs m_lldist m_tba2b 7 i! v8 e: p% X! N) ^% N* b2 h; X
m_contour m_gshhs_c m_mag2geo m_tbase / C* w" {6 \/ C
m_contouRF m_gshhs_f m_patch m_text 1 o* W1 b1 G3 j2 R' O* y
m_coord m_gshhs_h m_pcolor m_track
& B1 f% R- t- @; C9 }- Am_demo m_gshhs_i m_plot m_ungrid
' P' x! ~" e- Q j; Um_elev m_gshhs_l m_plotbndry m_usercoast
1 _0 F% ^/ g" y; vm_etopo2 m_hatch m_proj m_vec
) O* i! }" L" i4 n: j% |7 }m_fdist m_idist m_quiver m_xy2ll 1 k1 V/ E5 I7 n& @7 X2 H/ @
m_geo2mag m_legend m_range_ring m_xydist & h. ~+ O1 [$ \& k7 \
m_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');
* K; e" w3 p( Mm_coast;
/ C( a2 q7 |, j9 \! _8 Rm_grid;
, F) ~- _& f/ p! R1 l3 n- M+ x! e! \& e- |$ Y
------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28) , }" V8 A/ u$ A- o4 X- P, T$ K
0 _5 q) w9 _" F+ P3 X
6 h) Y8 j+ Y) O- g7 b0 h/ _9 [
%-------------------------------------------------------------------- figure0 a& K, a- [1 l& v
P=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a( :,: )=grace(i,:,: );, _ o' m9 M, {# d
lo=0.5:359.5;
! z( l! E3 T7 z' u5 qla=-89.5:89.5;( _- n/ h+ d) @$ Z
[lo,la]=meshgrid(lo,la);
. e; K/ S* Y3 M% v2 ^m_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);$ a, [( V& ~0 r4 ]6 u% s0 C+ V4 X( P
m_pcolor(lo,la,P);hold on;* m/ u2 I* ]4 D
shading flat;( `5 \. E& P4 _: u D
m_grid('box','fancy');" w3 d2 ?- a( l
hold on; -----------------------画出的图示-----------------------
: L- y4 K6 p8 C
# m" L5 L$ o6 r, V$ f) F' h+ f ==================================== matlab的m_map工具箱及添加行政边界底图 转自:http://hi.baidu.com/blucas/blog/item/2f34c1fd48417087b901a014.html! Q- z8 G0 z1 z {
对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
! I; G) s7 [" H C, R/ i; C# bm_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。0 w, A4 L7 h+ f
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。) O' [0 t Z7 e2 K7 a2 y5 c
通过以上方法可以实现.shp在matlab绘图中的应用。
/ F3 j/ j/ E. k% |( Z) w! w7 g |