精华内容
下载资源
问答
  • m_map matlab 地图工具箱大全 图形 地图,能够画出负责的图形
  • MATLAB地图工具箱学习总结(一)从地图投影说起 MATLAB地图工具箱学习总结系列: (一)从地图投影说起 (二)大圆和恒向线 (三)地图工具箱的基本知识 (四)自定义投影 前言 本学期地图投影课上,李连营...

     

    MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结系列:

    (一)从地图投影说起

    (二)大圆和恒向线

    (三)地图工具箱的基本知识

    (四)自定义投影

    前言

    本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业。从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会放过这次机会,每周找了点时间好好研究了一下,把作业比较轻松地就搞定了。不过由于网上相关的教程、资料比较少,在夹杂了多种专业词汇的同时,又没有中文翻译,也是让人感到头疼。在此想总结一下相关的函数,以帮助其他需要使用工具箱的人。作为一个学生,我所接触的仅仅是皮毛,也必然会有一些错误,希望看到的人能够指出,谢谢。

    PS:本文基于MATLAB  R2014a版本。

    1                    作业案例:地图投影作业5-7

    在作业5、6、7中,李老师分别要求我们在MATLAB中画出正轴、横轴、斜轴的方位、圆柱、圆锥投影(参数自定),查阅MATLAB帮助后,在其基础上完成了作业。以等角横轴圆柱投影为例,源代码及效果如下图所示:

    landareas = shaperead('landareas.shp','UseGeoCoords',true);
    axesm ('mercator', 'Frame', 'on', 'Grid', 'on','origin',[0 120 0]);
    geoshow(landareas,'FaceColor',[1 1 .5],'EdgeColor',[.6 .6 .6]);
    tissot;

      

    接下来我将详细解释一下各函数及其参数的意义和作用。

    2                    地图投影的分类:

    (1)          MATLAB中支持多种地图投影,查看具体支持哪些只需要在命令行中敲入maps,可以获得MATLAB中所有地图投影类型的分类属性(圆锥、圆柱、方位投影等),名称及MATLAB中使用时的简称。如下图:

    (2)          以下是我本人翻译的部分投影类型中英文翻译对照表。

    3                    shaperead的用法

    shaperead用于读取shapefile文件的数据,并将其进行存储。

    (1)          基本用法:shpaeread(filename,Name,Value)

    其中,filename指的是文件名,此项必设,后面可以跟多项设置。其生成一个结构体,包括Geometry几何对象,BoundingBox范围,X,Y坐标值等数据。

    (2)          常用设置

                                1)              BoundingBox:是一个2*2的数组,限定了读取文件要素的范围,只有该范围内的要素才能被选中。

                                2)              Attributes:读取属性设置,后面跟一个字符串数组,字符串即为所要读取的属性。当设置该属性后,shapefile文件中只有被选择的属性才可以被读取出来。

                                3)              UseGeoCoords:可以选择为true或者false(默认),即是否使用地理结构(GeoStruts)。如果数据已经被投影了就选择false,如果还未被投影,可以选择true以生成投影。

    4                    axesm的用法

    axesm是地图工具箱中最重要、最常用的函数之一,用来定义地图的坐标系,设置地图的属性。而地图投影的类型也可以在里面进行设置和调整。

    (1)          基本用法:axesm(projid,PropertyName,PropertyValue)

    其中,projid指的是投影类型的简称,此项必设,后面可以跟多项属性,包括属性名称和属性值。属性分为四大类:控制地图投影的属性,控制框架的属性,控制格网的属性,控制坐标轴标签的属性。下面就一一介绍一些常用的属性。此外,也可以直接在命令行中敲入axesm手动调整部分参数。

    (2)          常用属性:

                                1)              AngleUnits:包括degrees(默认)度和radians弧度两个属性,定义角度的单位。

                                2)              MapLatLimit[southern_limit northern_limit]和MapLonLimit[western_limit eastern_limit]:分别定义了经度和纬度的范围

                                3)              Origin[latitude longitude orientation]:定义了地图的中心区域。输入的经纬度将成为地图投影的中心。最后一个参数orientation则设置了地图旋转的角度。

                                4)              Frame:包括on和off(默认)两个属性。可以定义地图的边框是否显示。

                                5)              Grid:包括on和off(默认)两个属性。可以是否显示地图格网。

    5                    geoshow的用法

    geoshow是用来显示地图数据的函数,非常重要,大部分的地图都使用该函数进行显示。由于其使用的方法多种多样,在此仅仅介绍一小部分和本文开始案例相关的用法。

    (1)          基本用法:

                                1)              geoshow(lat,lon)直接输入经纬度,将以该经纬度为中心,生成一小片地图。

                                2)              geoshow(filename)直接输入地图文件名,生成该地图

                                3)              geoshow(_,Name,Value,)输入相关属性并设定参数,生成所需要的地图。

    (2)          常用属性:

                                1)              facecolor:定义了地图表面的颜色,需要输入三个参数且均在0至1之间。

                                2)              edgecolor:定义了海岸线边界的颜色,参数值同上。

    1 landareas=shaperead('landareas.shp','UseGeoCoords',true);
    2 axesm('mercator','Frame','on','Grid','on','origin',[0 120 0])
    3 geoshow(landareas,'FaceColor',[1 .2 .5],'EdgeColor',[.2 .6 .1]);
    4 tissot

    6                    tissot的用法

    tissot用来显示变形椭圆。

    (1)          基本用法:

                                1)              tissot可以自动显示变形椭圆,最小椭圆大小为显示范围的十分之一。

                                2)              tissot(radius)其中radius是最小椭圆的大小。

    1 landareas=shaperead('landareas.shp','UseGeoCoords',true);
    2 axesm('mercator','Frame','on','Grid','on','origin',[0 120 0]);
    3 geoshow(landareas,'FaceColor',[1 .2 .5],'EdgeColor',[.2 .6 .1]);
    4 tissot(0.05);

                                3)              tissot(linestyle)其中linestyle是椭圆线形。

                                4)              tissot(lineStyle,PropertyName,PropertyValue)可以设置关于线形的其他属性。

     

    7                    mdistort的用法

    mdistort用来显示等变形线。

    (1)          基本用法:

                                1)              mdistort可以自动显示等变形线。

                                2)              mdistort(parameter).可以对等变形线进行参数设置。

    (2)          常用属性:

                                1)              'area':后面跟数组,可以在相应的参数位置设置等变形线。

                                2)              'angle':根据角度设置等变形线的间隔。

                                3)              'parscale':和area类似,目前我本人也没有搞清楚两者之间具体的差异。

    1 landareas=shaperead('landareas.shp','UseGeoCoords',true);
    2 axesm('mercator','Frame','on','Grid','on','origin',[0 120 0]);
    3 geoshow(landareas,'FaceColor',[1 1 .5],'EdgeColor',[.6 .6 .6]);
    4 mdistort('parscale',[-500:100:500])

    今天关于MATLAB地图投影的相关知识就介绍这么多,看帮助才是最重要的,我这里仅仅挑出了相关的个别属性,但MATLAB功能实在强大,应该好好利用!下次准备讲一讲大圆和恒向线路径生成的问题。

    天靖居士

    2016.4.18

     

    4.24更新说明:添加mdistort等变形线说明。

    8.17更新说明:具体代码请参考:https://git.oschina.net/kkyyhh96/MapProjectInMatlab

    有关地图工具箱其他文章,请参看:

    MATLAB地图工具箱学习总结系列:

    (一)从地图投影说起

    (二)大圆和恒向线

    (三)地图工具箱的基本知识

    (四)自定义投影

    转载于:https://www.cnblogs.com/kkyyhh96/p/5405968.html

    展开全文
  • matlab 地图精细设置

    2014-07-11 13:24:45
    matlab绘制地图很方便,但是很多细节设置却需要试验才能掌握。本代码是在作者试验了基础之上所总结的基本设置代码,相信对于初级以及中级水平人会有帮助。
  • MATLAB地图障碍检测

    2021-04-15 14:34:00
    现在要实现地图障碍的检测,达到下面这个效果 <p style="text-align:center"><img alt="" height="501" src="https://img-ask.csdnimg.cn/upload/1618468155795.PNG" width="673" /></p>  </p>
  • MATLAB地图工具箱学习总结(四)自定义投影 MATLAB地图工具箱学习总结系列: (一)从地图投影说起 (二)大圆和恒向线 (三)地图工具箱的基本知识 (四)自定义投影 这是本系列的最后一篇文章,准备给大家讲...

    MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结系列:

    (一)从地图投影说起

    (二)大圆和恒向线

    (三)地图工具箱的基本知识

    (四)自定义投影

    这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做。在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码,就开始着手修改了。虽然也曾画出了一些奇形怪状的“艺术品”,但最终还是找到了画图的一些诀窍,使得自定义出来的投影即使会有bug,但大体上还算能看得过去。

    在这里呢,我就想以最简单的一个地图投影源文件开始介绍怎么修改。

    首先,让我们找到自己MATLAB安装目录,依次点击toolbox->map->mapproj目录,可以看到,里面是各种各样地图投影的源代码m文件呢。

    然后咱们就点开一个来看看。源代码有复杂的,也有简单的,这里我们点开一个最简单之一的代码看看:正射投影ortho

     

    接下来就要简单分析一下代码。

    第一段主要是调用3个需要的函数,包括orthoDefault,orthoFwd,orthoInv,设置投影的基本类型,最后applyProjection根据投影的类型,进行投影。

    所有的源代码中都会有Default、Fwd、Inv三个函数。让我们先看看Default函数。可以看到,传入了一个mstruct,这个在第三篇中讲到了,是投影的性质设置。这里设置了几个参数,其中fromDegrees设置了地图投影显示范围,这里纬度是从负无穷89度,经度是从-180度到180度。mapparallels则可以设定地图的标准纬线。方位投影没有标准纬线,因此我们看到这里nparallels为0,mapparallels为空。

    接下来的Fwd函数就是最重要的投影变换正解函数了。我们看到这个函数传入了三个值,分别是我们刚刚设定好的mstruct,rng和az。方位投影大多使用球面极坐标系。因此,rng和az的含义就很容易明白了,rng是天顶距,而az则是方位角。通过和书上正射投影的公式对比,可以发现两者形式很相似,仔细分析便能明白,在MATLAB中,x和y与书上的xy正好相反,而这里的a正是地球椭球体的半径。这里用到了一个函数ellipsoidprops,并不是MATLAB中可以找到的函数,那么就应该是一个隐藏的函数。事实上,这个函数在各个投影中都会见到,而其真身则同样在mapproj文件夹下,不过是在private文件夹中。但不管怎么样,现在可以推出,这个函数所获得的第一个值为地球椭球体半径。

    Inv函数和Fwd函数相反,是投影变换的反解函数公式。在这里可以不做修改。

    这样,当我们需要自定义投影的时候,只需要将投影公式替换Fwd中的公式即可。

    接下来我们再打开一个稍微复杂一点的看看:墨卡托投影mercator

    我们将代码拉到最后,会发现和正射投影相比,这里多了一个函数:deriveParameters。事实上,大多数的地图投影源文件都会带这个函数,这个函数用来求一些需要的参数。我们看一下代码,这里又用到了ellipsoidprops函数,但不同的是,这里还有一个e,也许是离心率。因此我最终还是找到了这个函数的代码,看了一下。

    从这段代码可以看出,a是椭圆的半长轴,ecc是椭圆的离心率。接下来的代码中有toRadians和convertlat,分别是角度转弧度和纬度转换。最终获得了标准纬线的弧度值,并传回Fwd中进行计算。接下来的步骤就和前面相似了。

    需要注意的是,不同地图投影中的Fwd函数传入的值不同,有的是Lat和Lon,有的是lambda和phi,有的是rng和az,所以需要仔细确认到底传入的是什么值,再进行计算。

    当公式写完之后,需要将投影注册,才能和其他的投影一样进行显示。这里需要看maplist文件。打开后大家便会明白为什么要这么做了。

    我们只需要仿照前面的格式,将我们投影的名称、类别等四个参数设置好,再将我们自己的投影文件保存在mapproj文件夹下即可。为了验证注册成功,还可以和我第一篇说的那样,在命令行输入maps查看最后是否有添加成功,然后就可以愉快地用自己的投影了。

    当然,真正的自定义投影设置过程中可能还会有各种各样的错误。所以大家只能不断地修改参数,如果一个地图模版不行,再换一个模版。在选择自定义投影的模版时,一定要选择相似的投影。现在我这里展示的不过是一些简单的投影文件,可能只有50行左右的代码,而一些复杂的投影可能会有100-200行的代码量,因此分析起来还是会存在很多的困难。对于Fwd函数传入的参数也一定要理解清楚究竟代表什么意思,然后才能知道究竟计算什么值,返回什么值。

    最后,再给大家分享几个我自己做的自定义投影图片。

    桑逊投影:

    乌尔马耶夫投影:

    金兹布尔格投影:

    三叶梅花投影:

    除了MATLAB自带的工具箱之外,还有一个m_map第三方工具箱可以用。只要细细研读其帮助文档,即可画出更多自己想要的地图。在这里就不一一介绍了。

    随着课程的结束,本系列关于MATLAB地图投影的学习总结也就算完结了。在我的学习过程中,所能反馈的信息不过是感觉自己需要弥补、扩充的知识点实在太多。即使是我现在所讲述和介绍的一些方法技巧,还是能够感受到很多地方自己仍然不懂。因此我的这四篇简短的介绍中也会存在错误,倘若发现了错误,希望能够告知,谢谢!

    天靖居士

    2016.5.16

    PS:6.11免考95分~

    8.17更新说明:具体代码请参考:https://git.oschina.net/kkyyhh96/MapProjectInMatlab

    有关地图工具箱其他文章,请参看:

    MATLAB地图工具箱学习总结系列:

    (一)从地图投影说起

    (二)大圆和恒向线

    (三)地图工具箱的基本知识

    (四)自定义投影

    转载于:https://www.cnblogs.com/kkyyhh96/p/5575265.html

    展开全文
  • %读取图片中的任意坐标点clear%选择要读取的文件,得到文件名file_name和文件路径path_name[file_name,path_name]=uigetfile(...{'*.txt;*.jpg;*.png;*.bpm;*.jsf','Files';'*.txt','txt-file(*.txt)';...

    %

    读取图片中的任意坐标点

    clear

    %

    选择要读取的文件,得到文件名

    file_name

    和文件路径

    path_name

    [file_name,path_name]=uigetfile(...

    {'*.txt;*.jpg;*.png;*.bpm;*.jsf','Files';

    '*.txt','txt-file(*.txt)';...

    '*.jpg','jpg-pic(*.jpg)';...

    '*.png','png-pic(*.png)';...

    '*.bpm','bpm-pic(*.bpm)';...

    '*.jsf','jsf-file(*.jsf)';...

    '*.*','All Files(*.*)' },...

    'Pick a file');

    pic_name=[path_name,file_name];

    imshow(pic_name);

    disp('

    请按顺序点击图片中的位置(

    X

    轴的最大值)

    ,(

    坐标原点,左上角

    ),(Y

    轴的最大值

    ),

    回车键结束

    :')

    [xo,yo]=ginput;

    X_max=input('

    输入图片

    X

    轴显示的最大值,按回车结束:

    ');

    Ox=input('

    输入图片原点处显示的

    x

    值:

    ');

    Oy=input('

    输入图片原点处显示的

    y

    值:

    ');

    Y_max=input('

    输入图片

    Y

    轴显示的最大值:

    ');

    k=1;

    Q=1;

    while Q==1

    txt_name=input('

    输入

    TXT

    文件名:

    ','s');

    imshow(pic_name);

    [x,y]=ginput;

    [m,n]=size(x);

    for i=1:m

    dx(i)=((x(i)-xo(2))/(xo(1)-xo(2)))*(X_max-Ox)+Ox;

    dy(i)=((y(i)-yo(2))/(yo(3)-yo(2)))*(Y_max-Oy)+Oy;

    dy(i)=-dy(i);

    end

    %

    file_ip=[path_name txt_name];

    file_ip=strcat(path_name,txt_name,'.txt');

    fp=fopen(file_ip,'w');

    for i=1:m

    fprintf(fp,'%f\t%f\r\n',dx(i),-dy(i));

    end

    fclose(fp);

    Q=input('

    如果继续,请按“

    1

    ”键,如果终止,请按“

    0

    ”键

    :');

    k=k+1;

    end

    clear

    展开全文
  • get&lowbar;object&lowbar;vars&lpar;&dollar;var&rpar; vs array&lpar;&...get_object_vars(\(var) vs array(\)var) test case class Test { public function action...

    get&lowbar;object&lowbar;vars&lpar;&dollar;var&rpar; vs array&lpar;&dollar;var&rpar;

    get_object_vars(\(var) vs array(\)var) test case class Test { public function actionGetObjectVarsVsA ...

    hdu 4352 XHXJ&&num;39&semi;s LIS 数位DP

    数位DP!dp[i][j][k]:第i位数,状态为j,长度为k 代码如下: #include #include #include

    安装免安装版的mysq服务的方法l

    1.将安装包解压到没有中文的目录文件夹下,例如:D:\workspace\mysql-5.6.25-win32. 2.打开cmd窗口,进入到安装目录下, C:\Windows\system32> ...

    【Android Studio安装部署系列】二、Android Studio开发环境搭建

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio开发环境安装步骤 下载Android Studio 下载地址: http://www.wanandroi ...

    java之JVM(一)

    内存模型: Java内存模型建立在自动内存管理的概念之上.当一个对象不再被一个应用所引用,垃圾回收器就会回收它,从而释放相应的内存. JVM从底层操作系统中分配内存,并将它们分为以下几个区域: 方法区 ...

    shiro课程的学习

    1.shiro的课程目标 (1)shiro的整体框架 各组件的概念 (2)shiro 认证 授权的过程 (3)shiro自定义的Reaml Filter (4)shiro session 管理 (5) ...

    网易的Airtest

    使用心得:https://testerhome.com/topics/12391 下载路径:https://airtest.netease.com/

    使用标准C读取文件遇到的结构体对齐问题及其解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 同事使用标准C库读取文件,发现总是读取不对,让我帮忙看一下. 原来他定义了如下一个结构体: // 定义块的结构 typ ...

    DeepID人脸识别算法之三代

    DeepID人脸识别算法之三代 转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/42091205 DeepID,眼下最强人脸识别算法.已经三 ...

    JQuery 对表格的详细操作

    展开全文
  • 最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的...关于matlab地图投影系列: MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接 一、定义坐标变换的方程 首先在matlab安装目录E:\MATLAB2016
  • 实用文档 图像伪彩色处理 近几年来 , 随着多媒体技术和因特网的迅速发展和普及 , 数字图像处理技术受到了前所未有的广泛重视 , 出现了许多新的应用领域最显著的是数字图像处理技术已经从工业领域实验室走入了商业...
  • 实用文档 图像伪彩色处理 近几年来,随着多媒体技术和因特网的迅速发展和普及 ,数字图像处理技术受到 了前所未有的广泛重视,出现了许多新的应用领域最显著的是数字图像处理技 术已经从工业领域实验室走入了商业领域及...
  • 二是利用MATLAB精确绘制中国地图(包含九段线和南海小图),并根据经纬度信息标记目标点。1 精确提取目标的经纬度信息。1.1 登录百度地图(https://map.baidu.com),点击“地图开放平台”。1.2 进入“地图开放平台”,...
  • 地理密度图是matlab2018以后才有的工具,对于更早版本,这里提出一种自编程的绘制方法。A、没有地图衬托的热力图已知的数据格式为坐标经纬度,数据量大概在200万行。图1:经纬度坐标,向量名gps基本思路:确定坐标的...
  • MeteoInfo与ArcGIS是处理地图文件时非常方便好用的两款软件,什么?你还没有用过它们?遇到问题还是到处求别人有没有现成的地图文件?来,今天一起学会这两款软件,从此作图不求人!MeteoInfo是由中国气象科学研究院...
  • 2、解压至 /Applications/MATLAB_R2020b.app/toolbox。根据实际版本2020a、2020b等调整路径。 3、matlab命令行输入: addpath /Applications/MATLAB_R2020b.app/toolbox/m_map 添加路径 4、matlab命令行输入: ...
  • ​物流技术的学习和应用不管对于学生还是对于物流从业人员来说都是提升物流基本功和系统与优化...MATLAB开发界面开发成为简易的本地物流网络规划软件样式1、地图制作地图是由无数个坐标点构成,也是网络规划的基础,...
  • 实用标准文案 目 一 程 目的? ? ? 3 二 程 要求? ? .3 三 程 的内容? . ? ? 3 四 目分析? ? .3 五 体 ? ? . .4 六 具体 ? . ?5 文件.5 1.1 打开?5 1.2 保存.5 1.3 退出.5 ?5 6.2.1 灰度.5 6.2.2 亮度.6 6.2.3 截 ?...9
  • 说说线性规划 双向Dijkstra算法 EndNote引文编排 泰勒图的MATLAB实现 利用GN算法进行社区发现 深度学习--卷积神经网络基础 Python爬取高德地图--瓦片图 全球植被年内逐月动态变化GIF ArcPy批量定义投影和批量投影...
  • 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习当中的一些心得,也为了给遇到同样问题的人提供一些可参考的思路。当然,限于时间和本人的能力,文章中必然会出现一些错误,希望大家发现之后能够指正,...
  • ...需要用一些地图工具,arcgis懒得装了,GMT(generic mapping tools)太复杂,因此搜到了m_map, 正好是MATLAB的工具箱。于是研究了一晚上。 一、m_map 工具箱的安装 https://www.eoas....
  • matlab 谷歌地图

    2018-02-11 01:01:23
    matlab 谷歌地图matlab 谷歌地图matlab 谷歌地图matlab 谷歌地图matlab 谷歌地图matlab 谷歌地图
  • matlab地图

    2014-08-10 22:44:53
    利用MATLAB自带的地图工具箱画地图,并举例子说明
  • MATLAB地图

    2018-07-23 12:11:30
    MATLAB在已有shape文件基础上画地图,出图;想求一份亚洲后者师姐的shape文件,特出程序
  • matlab地图

    2015-02-03 15:26:14
    matlab地图,可画四川地图,世界地图,亚洲地图
  • matlab_地图

    2019-09-28 02:03:51
    matlab_地图 %% 世界地图 figure; ax = worldmap('World'); % setm(ax, 'Origin', [0 180 0]) land = shaperead('landareas', 'UseGeoCoords', true); geoshow(ax, land, 'FaceColor', [0.5 0.7 0.5]) ...
  • matlab栅格地图绘制

    2019-01-05 18:53:29
    matlab栅格地图绘制,介绍了相关matlab程序,用户可根据需要学习 是太阳能光伏发电系统(Solar power system)的简称,是一种利用太阳电池半导体材料的光伏效应,将太阳光辐射能直接转换为电能的一种新型发电系统,...
  • matlab中国地图文件

    2019-03-19 16:08:43
    matlab代码,可以画出中国地图,并依据各个行政区的数量来设置其颜色
  • 利用matlab地图

    万次阅读 多人点赞 2018-09-30 13:08:16
    目录 方法一:利用 GIS画图 方法二:利用地图工具箱画图 方法一:利用 GIS画图 中国国家基础地理信息系统(GIS)... matlab地图工具箱其他作图效果如下 欢迎加群获取数据 https://www.jianshu.com/p/cb3ccbae9c88

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 723
精华内容 289
关键字:

matlab地图

matlab 订阅