• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB 地图工具箱 m_map 的安装和入门技巧(转) - limanjihe

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

MATLAB 地图工具箱 m_map 的安装和入门技巧(转)

 

reference: http://blog.sina.com.cn/s/blog_8fc890a20102v6pm.html
 
需要用一些地图工具,arcgis懒得装了,GMT(generic mapping tools)太复杂,因此搜到了m_map, 正好是MATLAB的工具箱。于是研究了一晚上。
 
一、m_map 工具箱的安装
 
https://www.eoas.ubc.ca/~rich/map.html (若打不开链接,需要逐级访问)
以上网址是m_map工具箱的网站,找到m_map工具箱文件下下来,一共不到700k。名字叫 gzipped tar-file , or zip archive  下其中一个即可。(目前最新为1.4版本)
 
方法1
解压,得到 m_map文件夹,把他放到你的MATLAB安装目录下, 即放在(MATLAB装在其他盘的请将C改为其他盘符): C:Program Files\MATLAB\R2012b\toolbox\m_map
然后打开 C:Program Files\MATLAB\R2012b\toolbox\local\pathdef.m   (如果有权限问题,一般是win7且MATLAB装在C盘会出现权限问题,那就在开始菜单找到记事本,右键,管理员运行,然后打开pathdef.m 文件)
将下面一句话加到 %%% BEGIN ENTRIES %%% 下面
matlabroot,\'\toolbox\m_map\', ...
最后,打开MATLAB,输入 rehash toolboxcache,到此就安装好了m_map. 
但是我测试了一下,把MATLAB关了重开,由于C盘有权限,MATLAB访问toolbox文件夹有限,于是安装不成功,但是如果你的MATLAB是在D盘,就没事。
 
方法2
目前一定能成功。后来我就自己开发了一个方法,无论你的MATLAB安装在哪个盘,将m_map 复制到除了C盘以外的任意一个盘,比如 D:\mymatlabfiles\m_map,  然后用记事本打开那个 pathdef.m, 然后在
%%% BEGIN ENTRIES %%% 下面加入下面的话:
 \'D:\mymatlabfiles\m_map;\', ... 
这样就不用每次打开MATLAB添加path了。
测试安装好与否的方法是 输入 what m_map, 如果显示了一堆m文件名字,即装好了,如果显示 not found,则没装好,这时候在MATLAB界面上找到 set path,我的是2012b,直接在上面就有,在preference的下面,然后add folder, 浏览到C:Program Files\MATLAB\R2012b\toolbox\m_map,然后save即可。
 
二、m_map 如何入门
 
首先运行了一个例子,语句是
m_proj(\'oblique mercator\');
m_coast;
m_grid;
 

 

意思是定义一个投影系统,名叫oblique mercator,注意,定义这个投影系统的时候他已经默默的将地球上的范围给定义了,这个例子是哥伦比亚的一个海岸,然后 第二句和第三句就是画图用的,画出海岸线和网格,第一句是不画图的。那么如何定义地球上的范围呢,往下看。
 
m_map 里面嵌有19个投影系统,名字如下所示,你首先要明白这19个系统长什么样。
 
proj{1}=\'Stereographic\';proj{2}=\'Orthographic\';proj{3}=\'Azimuthal Equal-area\';
proj{4}=\'Azimuthal Equidistant\';proj{5}=\'Gnomonic\';proj{6}=\'Satellite\';
proj{7}=\'Albers Equal-Area Conic\';proj{8}=\'Lambert Conformal Conic\';proj{9}=\'Mercator\';
proj{10}=\'Miller Cylindrical\';proj{11}=\'Equidistant Cylindrical\';proj{12}=\'Oblique Mercator\';
proj{13}=\'Transverse Mercator\';proj{14}=\'Sinusoidal\';proj{15}=\'Gall-Peters\';
proj{16}=\'Hammer-Aitoff\';proj{17}=\'Mollweide\';proj{18}=\'Robinson\';
proj{19}=\'UTM\';
这是我在MATLAB里把这19个名字弄到一个cell中了。然后我用了下列语句
j=1;
m_proj(proj{j});
m_coast;
m_grid;
m_proj get
m_proj(\'set\',proj{j});
m_proj(proj{j},\'longitudes\',100, \'latitudes\',0,\'rad\',90,\'rec\',\'circle\',\'rot\',0);
m_coast(\'patch\',[.7 .6 .8],\'edgecolor\',\'r\');
m_grid(\'xlabeldir\',\'end\',\'fontsize\',10);

 

 
重点就在这里,我以第一个投影系为例,j=1嘛,前4行是把这个投影系画出来看看是什么样,然后
m_proj get 是获取这个投影系的默认地理范围,可以看出是
 

 

然后我再用m_proj(\'set\',proj{j}); 命令,得到

 

意思就是,如果你要是用\'stereographic\' 投影系的话,你可以定义\'longitude\', \'latitude\', \'radius\',
\'rectbox\' and \'rotangle\'. 当然,如上面我写的第7行那个,可以用 \'lon\'代替\'longitude\'。
 
然后我就再第7行把lon设置为100,这时候就可以让伟大的中国在中间了。就是这样一个一个系统的去看,每个投影系定义的方式都不一样,其中有些是重复的,但是意义不同。同理,m_coast 和 m_grid 也是这样学习,然后在继续看m_map 网站的用户说明即可,网址是:
http://www.eos.ubc.ca/~rich/private/mapug.html#p1
 
希望对你们有帮助,网上一些其他的教程太不负责任,只是将 User\'s guide 翻译了一下,翻译的还不怎么样。
MATLAB m_map toolbox

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap