EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 mytomorrow 于 2020-4-21 10:50 编辑
8 k# _( h" o& p& ^3 L" P1 V$ C5 z9 Z5 R; w# ?- R
首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱。如下图。
7 z. i; j6 Y" g& [9 n# o2 }6 w- i% d- M- k' j! u' o* R
查阅了些资料,请教了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;', ...$ _& T/ w) P7 R* m) m6 s
matlabroot,'toolboxlocal;', ...- a2 N J' ]8 `- S1 h
matlabroot,'toolboxsharedcontrollib;', ...( _- V, _$ U, @1 u' U( K
matlabroot,'toolboxshareddastudio;', ...
! R! y4 B! f: i0 K& x9 w6 X" Hmatlabroot,'toolboxmatlabdatamanager;', ...6 r7 {( S% b' e; ^+ D% z
matlabroot,'toolboxmatlabm_map',... %这里不需加分号“;”
7 e' S; j/ E8 r8 V/ U- L%%% 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 - i$ `/ H5 z" [, `% P4 t
m_coast m_gshhs m_lldist m_tba2b
# l: v1 q+ ^/ O* a nm_contour m_gshhs_c m_mag2geo m_tbase + A& k, F0 U4 ?4 a
m_contouRF m_gshhs_f m_patch m_text
3 x/ i C* l9 n* c! g4 bm_coord m_gshhs_h m_pcolor m_track ; Q* T/ W# g" }$ d( E' J. k
m_demo m_gshhs_i m_plot m_ungrid 9 e4 k1 v! Q9 M2 ]
m_elev m_gshhs_l m_plotbndry m_usercoast
% q2 W% `+ Z7 d- k. V9 |m_etopo2 m_hatch m_proj m_vec + }/ t( \8 ?: j' Z
m_fdist m_idist m_quiver m_xy2ll
0 I8 k& W( U* b3 im_geo2mag m_legend m_range_ring m_xydist
6 \, m* a& h2 |- L3 Mm_geodesic m_line m_ruler test2:测试demo >>m_proj('oblique mercator');7 c3 M! O" e1 z' S
m_coast;
, M: X0 m2 u* E! [0 rm_grid; ' t6 m; D$ C* \+ v' t; a# @7 s
@" G# `* V6 N' S& [------------------------------ m_map工具箱画出的图(edit at 23:00 2011-04-28) 0 r h9 |, I. G g( e7 B: z/ s
6 ^; E/ E3 s( I4 x8 B
9 F1 U+ P0 M$ B! j0 x) y
%-------------------------------------------------------------------- figure3 {+ [5 a7 j/ @1 `+ b: l1 m
P=A11;%%%%%%%%%%%%%%%这个就是你取出来的GRACE数据 如a(:,: )=grace(i,:,: );. y2 X/ e) H; J2 r& R
lo=0.5:359.5;9 D& P* F5 U- b* {
la=-89.5:89.5;
+ C& J/ b/ v; X$ ?. p[lo,la]=meshgrid(lo,la);9 G0 _2 _+ X4 u
m_proj('Equidistant Cylindrical','lon',[0.5,359.5],'lat',[-89.5,89.5]);2 `6 x- }9 E0 @" I0 B# O S
m_pcolor(lo,la,P);hold on;( r5 x$ m! j+ @' T- n" ^
shading flat;) \ A( j- C4 \7 J. f
m_grid('box','fancy');* K$ M9 v- q( Q/ s
hold on; -----------------------画出的图示-----------------------
8 L& `+ P1 o' |/ R- q5 R1 I
8 A/ C$ ~* y; C$ |7 f
==================================== matlab的m_map工具箱及添加行政边界底图
' D& @4 A. @' I对习惯使用matlab的人来说,m_map是一个很好的绘制地图的免费工具箱。可以选择的投影种类近20种,包括常用的Lambert、 Mercator、UTM等。可以测量距离( m_lldist, m_xydist ),绘制等值线(m_contour),等值线填充图(m_contourf),矢量图(m_quiver),栅格图(m_pcolor)等,并与相应的 matlab函数语法类似,很容易使用。9 U% N4 N8 a) S7 z
m_map通过m_coast提供1/4 degree分辨率的全球海岸线,通过下载GSHHS可以得到更高分辨率的海岸线数据。
0 z# \& Y. o; a4 ?0 d$ H9 w除海岸线外,还可以利用已有的GIS行政边界资料,在地图上添加行政边界底图。具体作法为:下载.shp格式的行政边界文件( 国家基础地理信息系统的下载服务),将下 载的.shp文件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入matlab空间, 可以直接m_plot,也可以调用m_plotbndry()。
& @1 J& u9 t9 S' T3 o) c通过以上方法可以实现.shp在matlab绘图中的应用。- J f p3 ?5 l8 F; [
5 ]5 F. ^5 a) R* V2 z
! A' C7 i# p1 R
" T! q2 D9 T% \- |+ c0 f2 z- j; W% @ |