学术资讯 » 学界研圈

  • 首 页
  • 期刊选题
  • 期刊点评
  • 期刊大全
  • 学人博客
  • 编辑征稿
  • 投稿选刊
  • 万维群组
  • 学术会议
  • 万维读书
  • SCI/E期刊
  • SSCI期刊
  • AHCI期刊
  • MATLAB绘制地图超详细教程(建议收藏)

    阅读: 2022/4/6 9:17:16

    推荐:

    1、MATLAB科研数据可视化

    2、Python科研数据可视化

    worldmap和usamap是axesm的子类,worldmap是用于生成世界地图坐标区域,usamap用于生成美国地图坐标区域,本文先在worldmap函数基础上讲解如何导入各种数据绘制各种类型,略提一下如何使用usamap,再讲解axesm的各种属性以满足更多元化的地图绘制需求,并在最后总结地图绘制其他可用函数。

    Mapping Toolbox工具箱安装

    请通过如下步骤安装工具箱:

    点击附加功能:

    搜索Mapping Toolbox,并点击进入介绍界面:

    点安装一路点确定:

    worldmap及usamap

    首先是最简单的海岸线世界地图:

    附带陆地区域、湖泊、河流、城市的世界地图:

    可以看到绘制的主要流程就是:

    创建地图坐标区域(通过axesm、worldmap、usamap)

    导入数据(通过load或者shaperead)

    通过geoshow、plotm、scatterm绘制图像(大部分普通坐标区域axes中出现的函数加个m就变成了用于地图坐标区域的函数)

    worldmap创建地图坐标区域部分:

    大家肯定想知道worldmap()里面支持哪些参数,这个连官网都没有写,事实上只要无参数运行一下函数worldmap()就会蹦出来一个地区选择框,大家可以试一下啊:

    同时worldmap函数支持直接输入经纬度范围,例如:

    数据导入部分:

    其中可以通过load导入的MATLAB自带数据有:

    coastlines - 世界海岸线经纬度矢量

    conus - 用于连接的美国(conus)、五大湖、州际边界的经纬度阵列

    geoid60c - 全球大地水准面高度网格(以米为单位)/度

    greatlakes - 显示结构阵列中的北美五大湖

    korea5c - 朝鲜半岛的地形和水深测量

    koreaEQdata - 地震位置和震级

    layermtx - 用于教学的地理定位地形网格

    mapmtx - 用于教学的地理定位地形网格

    moonalb20c - 克莱门汀全球月球反照率图

    moontopo60c - 月球的克莱门汀激光雷达地形

    oceanlo - 显示结构数组中的海洋遮罩多边形

    russia - 网格化土地、水域、边界、外部区域

    seatempm -全球多通道海面温度网格

    stars - 4500+颗恒星的天体坐标和星等

    usamtx - 美国各州的数据网格,每度五个单元格

    usgslulegend - USGS 土地利用类别列表

    其中可以通过shaperead导入的MATLAB自带数据有:

    landareas.shp - 全球陆地区域多边形

    tsunamis.shp - 全球1950-2006 年中到大型海啸的百分比

    usastatehi.shp - 高分辨率多边形美国各州形状

    usastatelo.shp - 低多边形美国各州形状

    worldcities.shp - 全球318个城市或人口稠密位置坐标

    worldlakes.shp - 世界上 37 个最大的多边形湖泊和内陆海域

    worldrivers.shp - 世界主要河流的线条形状

    boston_placenames.shp - 美国马萨诸塞州波士顿地名

    boston_roads.shp - 美国马萨诸塞州波士顿道路

    concord_hydro_area.shp - 美国马萨诸塞州康科德水域

    concord_hydro_line.shp - 美国马萨诸塞州康科德水路

    concord_roads.shp - 美国马萨诸塞州康科德道路

    这些信息来自:

    \mcr\toolbox\map\mapdata\Contents.m

    局部区域陆地绘制

    首先绘制个南极洲,南极洲的陆地信息可以从landareas.shp中提取 :

    除此之外其他面积较大,可以通过如上方式获取的区域还有:

    ‘Antarctica’‘Africa and Eurasia’‘North and South America’‘Greenland’‘Australia’‘Baffin Island’‘Ellesmere Island’‘New Guinea’‘Great Britain’‘Borneo’‘Honshu’‘Victoria Island’‘Celebes’‘New Zealand North Island’‘Sumatra’‘Madagascar’‘Iceland’‘New Zealand South Island’‘Newfoundland’‘Luzon’‘Devon Island’‘Ireland’‘Cuba’‘Java’‘Mindanao’

    例如我绘制中国附近的亚欧非大陆陆地:

    映射贴图

    南美洲和中太平洋的大地水准面高度:

    要绘制高度映射图只需要将geoshow的’DisplayType’属性设置为’surface’。

    注意,官网的写法,[geoid60c,geoid60cR] = egm96geoid 2020a已经被移除,如果是之后的版本,请不要按照官网而是按照如下写法进行书写。

    要是觉得不好看,可以增添陆地区域和更改颜色,例如像下面这么做:

    我们发现有些大地水准面高度比0要高,就会画到板块上面,同时颜色插值不够密集,简单处理一下:

    纹理贴图

    朝鲜半岛为例:

    要绘制颜色映射图只需要将geoshow的’DisplayType’属性设置为’texturemap’。

    这个demcmap是一个可以描述为一个需要同时设置海洋色带和陆地色带的colormap,下面是MATHWORKS自带的例子:

    颜色可能不是太好看哈,下面给个我自己弄的配色:

    线路图绘制

    以美国马萨诸塞州康科德道路道路为例

    各种路径一共有六类,不但可以为不同设置线性,还可以设置颜色,粗细等各种信息:

    usamap

    再换个颜色叭

    axesm

    创建一个robinson样式,带框的地图坐标区域:

    创建好的axesm可以通过setm修改样式:

    展示一下所有类型的地图:

    展示一些网格设置:

    MLineLimit是经线的纬度范围,MLineException是不受经线长度范围影响的经线,通过设置这两个参数可以不让所有经线都汇集到极地以显的杂乱。

    与之相对应的还有PLineLimit、PLineException

    更多详细信息可以去这里查看:The Map Grid - MATLAB & Simulink - MathWorks 中国

    来个用axesm绘图的实例:

    一些地图绘制可用简易函数

    subplot

    首先值得一提的是subplot函数依旧适用:

    例如:

    tightmap

    取消图像的白边,非常好用

    边框标签网格快速开关函数

    边框,网格,经线标签,纬线标签快速设置,类似hold on\grid on:

    colormap

    还可以设置其他自带颜色

    colorbar

    ————————————————

    版权声明:本文为CSDN博主「slandarer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:MATLAB绘制地图超详细教程_slandarer的博客-CSDN博客_地图绘制

    如有侵权,请联系本站删除!

    浏览(811)
    点赞(0)
    收藏(0)
  • 上一篇:【数据分享】中国月度1KM植被指数(NDVI)空间分布数据集

    下一篇:“癌症大国”每天超一万人被诊断出癌症,“预防+治疗”是关键!

  • 首页

  • 文章

  • 期刊

  • 帮助

  • 我的

版权所有 Copyright@2023    备案号:豫ICP备2021036211号