EDA365电子论坛网

标题: 怎样给matlab添加M_map工具箱 [打印本页]

作者: mytomorrow    时间: 2020-4-21 10:49
标题: 怎样给matlab添加M_map工具箱
本帖最后由 mytomorrow 于 2020-4-21 10:50 编辑 4 m" v6 W" ~  @: e

( P2 U# I2 K! ?4 h* m3 _5 o

首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。

( e$ g: l1 I+ N: j' f5 y4 b9 a; Q
$ X. S6 o3 n( s$ }8 d3 I0 a  n  I
查阅了些资料,请教了Liangjing,一致推荐m_map。为了达到想要的效果,这次只要不再偷懒,下载M-Map工具箱并进行安装。所幸过程比较顺利,现记录如下,回头把画出的效果图再添上。其他matlab的toolbox安装,也可参考进行。

----------------------------------------

M_map的User Guide教的,matlab安装目录请自行参考自己的电脑。

1、将M_map.zip工具箱内容解压缩,至'C: Program FilesMATLABR2009atoolboxmatlabm_map'

2、找到'C: Program FilesMATLABR2009atoolboxlocalpathdef.m'文件,打开,并把1中的路径添加到该文件中,保存。

matlabroot,'toolboxmatlabplottools;', ...
% c6 w  z1 V) {% z# k7 n9 q6 `matlabroot,'toolboxlocal;', ...5 u0 d9 W3 k' ^& z% N; ^
matlabroot,'toolboxsharedcontrollib;', ...
2 o9 m7 n& x. L  lmatlabroot,'toolboxshareddastudio;', ...# h- v1 S* N" e; n3 {& y2 _
matlabroot,'toolboxmatlabdatamanager;', ...
3 L- q' a3 r, B1 ]* B) e9 Pmatlabroot,'toolboxmatlabm_map',...           %这里不需加分号“;”, n9 H/ ^( y/ g7 i' F7 V+ W2 [
%%% 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        
+ K% W: A: n( E% c7 Z! q1 M. Bm_coast         m_gshhs         m_lldist        m_tba2b        
9 B/ m, u: x3 x4 }6 @0 _m_contour       m_gshhs_c       m_mag2geo       m_tbase        
# D$ d- N& K3 O; e9 Cm_contourf      m_gshhs_f       m_patch         m_text         
5 k. |( V! P. nm_coord         m_gshhs_h       m_pcolor        m_track        % c- ]5 ^3 B0 H& C$ X
m_demo          m_gshhs_i       m_plot          m_ungrid      
0 m1 y5 V# q- r3 ]) q0 wm_elev          m_gshhs_l       m_plotbndry     m_usercoast   
  t1 \1 N. n5 G+ \5 @m_etopo2        m_hatch         m_proj          m_vec          ! T2 U1 J; O' s1 q0 q. u, j+ e
m_fdist         m_idist         m_quiver        m_xy2ll        $ o  L; Z$ _# `6 E
m_geo2mag       m_legend        m_range_ring    m_xydist      
; T; }# e- t8 u0 [m_geodesic      m_line          m_ruler        

test2:测试demo

>>m_proj('oblique mercator');( Z! h/ j, u. n4 N: I+ s+ M+ ~
m_coast;
2 K0 A( [: }* l% J3 _1 bm_grid;

/ t( U8 \# d1 H& i3 O- y  Y4 {

% v1 o1 m$ G6 r( R

------------------------------

m_map工具箱画出的图(edit at 23:00 2011-04-28)

* k% _  p. Z# ^
% T& ?* {/ f  O


$ ~7 G5 U6 x, Y' E" ]2 m$ m %--------------------------------------------------------------------

figure
( P! r0 \5 C. Z2 ^- E# oP=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a(:,: )=grace(i,:,: );7 d& {& w; u: R
lo=0.5:359.5;% w) y* ?6 ]6 N5 N
la=-89.5:89.5;
- L5 ?$ E) F' d4 m) ~9 m0 E( ][lo,la]=meshgrid(lo,la);
* @* r5 x* U/ g3 k3 mm_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);0 c! U) ]7 ^% g. Q0 ?  ?/ x
m_pcolor(lo,la,P);hold on;
! c/ ~; t5 A7 \* d8 {: {! V3 Wshading flat;- \( s% O2 H4 j; o. O( O4 h
m_grid('box','fancy');
4 A6 e# E0 C, d$ ahold on;

-----------------------画出的图示-----------------------

  v/ ~3 P1 K9 H# I+ A4 {4 y

' l, A: `5 @. J4 P0 F

====================================

matlab的m_map工具箱及添加行政边界底图


8 B# }7 t# I) p$ I3 p) x

对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。
2 |& V* n5 q& t8 }$ {- X6 ^. Q- ?m_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。! x- f9 O6 _* V; T3 Y
除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。
3 W- O8 b# a$ B1 j3 m3 i0 Z, u通过以上方法可以实现.shp在matlab绘图中的应用。! D1 n1 \0 N/ j& P! h
+ Q+ b. q" {& A- Q

+ e  b. ^( M5 d


" Z: Q% s# ]7 I# g7 C+ S0 H
作者: NNNei256    时间: 2020-4-21 13:34
给matlab添加M_map工具箱




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2