07 - matlab m_map地学绘图工具基础函数 - 绘制等高线
07 - matlab m_map地学绘图工具基础函数 - 绘制等高线
- 0. 引言
- 1. 关于绘制m_contour
- 2. 关于绘制m_contourf
- 3. 关于绘制m_elev
- 4. 结语

0. 引言
本篇介绍下m_map
中添加绘制等高线的一系列函数及其用法,主要函数包括m_elev
、m_contour
、m_contourf
还有一些函数也和绘制等高线有关(如:m_tbase、m_etopo2),但没有合适的数据,未完成调用测试,所以不进行展开。
1. 关于绘制m_contour
m_contour 函数
用于在地图投影上绘制等值线图。等值线图是一种常用的展示地理数据的方法,通过连接相同数值的点来展示数据的变化趋势。使用m_contour函数
可以在地图上直观地显示这些等值线,并帮助分析地理数据的特征。
m_contour 函数
的一般调用形式:
[cs,h]=m_contour(long,lat,data,varargin)
其中,long,lat
为绘制数据的一系列经纬度坐标,data
为高度起伏数据,long,lat和data
都是矩阵形式,且行列必须一致,long,lat和data
可以理解为投影区域的一系列3维点,m_contour
是将相同或相近起伏的点进行连接的过程;varargin
为可选参数,控制绘制的等高线的样式,如linecolor
线的颜色、linewidth
线宽、edgecolor
边缘颜色等;返回的cs
存储等高线矩阵,h
包含了绘制等高线的一些其它参数,cs和h
如果没用,可以省略输出。
示例: 示例中使用的外部数据是全球的GLDAS水文模型,绘制了下图区域的水文等高线图。测试数据在网盘中,提取码为n67r。
clc;clear;
ncFilePath = 'GLDAS_NOAH10_M.A200602.021.nc4';
lon = ncread(ncFilePath,'lon');
lat = ncread(ncFilePath,'lat');
soilmoi_data = ncread(ncFilePath,'SoilMoi0_10cm_inst'); [LN,LT]=meshgrid(lon,lat);figure;
m_proj('mercator','lon',[0 105.5],'lat',[0 60]);% 绘制填充的等值线图
[cs,h] = m_contour(LN,LT, soilmoi_data', 'linecolor', 'r', 'linewidth', 1);
%m_contour(LN,LT, soilmoi_data','edgecolor','r','facecolor','g');% 添加地图边界和海岸线
m_coast('line', 'color', 'k');
m_grid('linestyle', 'none', 'box', 'fancy');% 添加颜色条
colorbar;

2. 关于绘制m_contourf
m_contourf函数
用于在地图上绘制填充等值线图。它与Matlab
自带的contourf函数
相似,差异是m_contourf
在制图中应用,能够基于投影直接绘制地理图件。
m_contourf
的一般形式:
[cs,h]=m_contourf(long,lat,data,varargin)
其调用形式和m_contour
基本一致,差异在varargin中部分属性是控制填充的,这个是m_contour
中没有的。
示例如下:测试数据在网盘中,提取码为n67r。
clc;clear;
ncFilePath = 'GLDAS_NOAH10_M.A200602.021.nc4';
lon = ncread(ncFilePath,'lon');
lat = ncread(ncFilePath,'lat');
soilmoi_data = ncread(ncFilePath,'SoilMoi0_10cm_inst'); [LN,LT]=meshgrid(lon,lat);figure;
m_proj('mercator','lon',[0 105.5],'lat',[0 60]);% 绘制填充的等值线图
[CS,CH] = m_contourf(LN,LT, soilmoi_data');% 添加地图边界和海岸线
m_coast('line', 'color', 'k');
m_grid('linestyle', 'none', 'box', 'fancy');% 添加颜色条
colorbar;

3. 关于绘制m_elev
m_elev函数
可以利用1°高程数据集绘制多种类型的地图,上面提到m_contour
(绘制等高线) 和m_contourf
(填充等高线)两个函数都可以看作是 m_elev函数
功能的一部分。
m_elev函数
有多种调用形式,主要形式如下:
一般形式1:
[ELEV,LONG,LAT]=M_ELEV([LONG_MIN LONG_MAX LAT_MIN LAT_MAX])
形式1输入绘图区域经纬度四至即 [最小经度 最大经度 最小维度 最大维度]
,返回四至区域高程数据格点,分辨率为1°;
示例: 形式1的调用主要用于提取研究范围的高程数据,并不会绘制等高线,下面两图为有等高线和没等高线的对比:
m_proj('mercator','long',[-160 -40],'lat',[30 80]);
m_coast('patch',[1 .85 .7]);%m_elev('contourf',[500:500:6000]);
% 提取范围内高程数据
[ele,lon,lat] = m_elev([-160 -100 30 60]);m_grid('box','fancy','tickdir','in');
colormap(flipud(copper));
![]() | ![]() |
一般形式2:
M_ELEV(OPTN,args,...)
第二种调用形式,OPTN
参数为功能选择参数,可以选择绘制等高线(contour
)图、等高线填充(contourf
)图、pcolor
图、栅格图像(image
)和阴影(shadedrelief
)图共5种类型的地图; args
表示其他可选项,可以控制绘图的线条样式、颜色等属性:
% OPTN: 'contour' - contour lines are drawn.
% 'contourf' - filled contours are drawn.
% LEVELS are the levels used, and ARGS
% are optional patch arguments of line types,
% colors, etc.
% 'pcolor' - pcolor call
% 'image' - displays pixellated image 展示栅格图像
% 'shadedrelief' - shaded relief map. 阴影地形图
下面示例,包含了上述五种类型的有关命令,并展示了五种图的图示:
m_proj('mercator','long',[-160 -40],'lat',[30 80]);
m_coast('patch',[1 .85 .7]);% 一般形式1
%[ELEV,LONG,LAT]=m_elev([-100 -40 50 80]);
% 一般形式2
%m_elev('contourf',[500:500:6000]); % 绘制等高线
%m_elev('contour',[500:500:6000]); % 绘制等高线填充
%m_elev('image');
m_elev('shadedrelief','gradient',.5);
%m_elev('pcolor')m_grid('box','fancy','tickdir','in');
colormap(flipud(copper));
![]() | ![]() |
![]() | ![]() |
4. 结语
本篇介绍了m_map
中绘制等高线的几个方法,通过示例展示了各函数的基本用法,对于绘制常见地学图已经够用了,后面若发现还有其他和绘制等高线有关的函数再进行补充。希望对绘图的你有所帮助
😜
😜😜
😜😜😜😜
相关文章:

07 - matlab m_map地学绘图工具基础函数 - 绘制等高线
07 - matlab m_map地学绘图工具基础函数 - 绘制等高线 0. 引言1. 关于绘制m_contour2. 关于绘制m_contourf3. 关于绘制m_elev4. 结语 0. 引言 本篇介绍下m_map中添加绘制等高线的一系列函数及其用法,主要函数包括m_elev、m_contour、m_contourf还有一些函数也和绘制…...

Kotlin设计模式:享元模式(Flyweight Pattern)
Kotlin设计模式:享元模式(Flyweight Pattern) 在移动应用开发中,内存和CPU资源是非常宝贵的。享元模式(Flyweight Pattern)是一种设计模式,旨在通过对象重用来优化内存使用和性能。本文将深入探…...
java压缩pdf
<!-- PDF操作,itext7全家桶 --><dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.1.15</version><type>pom</type></dependency>package org.example; import…...
[AIGC] ClickHouse:一款高性能列式数据库管理系统
轮流探索数据库的世界,我们不得不提到一个重要的角色——ClickHouse。ClickHouse是一个开源的列式数据库管理系统(DBMS),以其卓越的性能,高效的查询能力和易扩展性而被业界广泛关注,尤其在大数据分析方面。 文章目录 1. 什么是 Cl…...

深度学习21-30
1.池化层作用(筛选、过滤、压缩) h和w变为原来的1/2,64是特征图个数保持不变。 每个位置把最大的数字取出来 用滑动窗口把最大的数值拿出来,把44变成22 2.卷积神经网络 (1)conv:卷积进行特征…...

google浏览器无法访问大端口的处理方式
属性的目标中添加后缀内容或者修改后台端口为常用端口,比如8080等。 “C:\Program Files\Google\Chrome\Application\chrome.exe” --explicitly-allowed-ports8888...
微信小程序余额退费
需求:用户充值使用后的剩余金额,需要退回到用户原路。 参考文档:微信支付-开发者文档 pom.xml配置: <!--微信支付SDK--> <dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId&g…...
宁波银行票据案例解读,要注入科技赋能票据新形式
随着科技的飞速发展,金融行业正迎来一场前所未有的变革。作为一家以科技创新为驱动的现代化银行,宁波银行在这场变革中积极探索,宁波银行票据案例之后持续通过引入先进技术,为客户提供更加高效、智能的金融服务。 宁波银行推出的…...
博客已迁移
迁移至 烧烤er (makkapakka996.github.io)...

大模型应用研发基础环境配置(Miniconda、Python、Jupyter Lab、Ollama等)
老牛同学之前使用的MacBook Pro电脑配置有点旧(2015 年生产),跑大模型感觉有点吃力,操作起来有点卡顿,因此不得已捡起了尘封了快两年的MateBook Pro电脑(老牛同学其实不太喜欢用 Windows 电脑做研发工作&am…...
24年嘉兴市索贝进出口有限公司--信息安全实施项目
截至24年6月24日,oms生产环境订单数12万5673条。 索贝是一家致力于成为竹木小家具头部企业的公司,截至24年6月24日,在册员工数130人,产值10个亿。 由于信息安全人才和能力的缺失,导致部署在阿里云生产环境的系统处于…...

亚马逊云科技官方活动:一个月拿下助理架构师SAA+云从业者考试认证(送半价折扣券)
为了帮助大家考取AWS SAA和AWS云从业者认证,小李哥争取到了大量考试半价50%折扣券,使用折扣券考试最多可省75刀(545元人民币)。 领取折扣券需要加入云师兄必过班群,在群中免费领取。目前必过班群招募到了超过200名小伙伴,名额有限…...

【山东】2024年夏季高考文化成绩一分一段表
文末有图片版,可直接保存下载!! 2024年夏季高考文化成绩一分一段表分数段全体-选考物理-选考化学-选考生物-选考思想政治-选考历史-选考地理分数段本段人数累计人数本段人数累计人数本段人数累计人数本段人数累计人数本段人数累计人数本段人…...
栈与队列 Leetcode 347 前k个高频元素
栈与队列 Leetcode 347 前k个高频元素 Leetcode 347 灵活运用C库函数,使用匿名函数排序,sort可以替换为快排实现(面试感觉可能会手撕,机考直接使用sort) class Solution { public:vector<int> topKFrequent(v…...
windchill 相关配置
-Dhttp.proxyHostproxy.acme.com -Dhttp.proxyPort8080 -Dwt.rmi.clientSocketFactorywt.boot.WTRMIMasterSocketFactory -Dwt.rmi.javarmicgiservlet/JavaRMIServlet...
XGBoost算法深度解析:原理、实现与应用
摘要 XGBoost(eXtreme Gradient Boosting)是一种高效的机器学习算法,以其出色的预测性能和计算效率在众多数据科学竞赛和实际应用中取得了巨大成功。本文将深入探讨XGBoost算法的基本原理、实现机制、优化技巧以及在不同领域的应用案例。 1…...
27-29、redis优化(令牌主动失效机制)-controllert额外添加参数接收请求头、拦截器
1、SpringBoot集成redis <!--redis坐标--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> @SpringBootTest//如果在测试类上添加了这个注解,那么…...
【Linux】性能分析器 gperftools 详解
1、安装 1.1 源码安装 1)源码下载 最新版本:https://github.com/gperftools/gperftools 稳定版本:https://github.com/gperftools/gperftools/releases 2)编译 ./configure make -j83)安装,默认安装在/usr/local/lib目录下 sudo make install1.2 命令安装 以Ubuntu…...

C语言基础——函数(2)
ʕ • ᴥ • ʔ づ♡ど 🎉 欢迎点赞支持🎉 文章目录 前言 一、return语句 二、数组做函数参数 三、嵌套调用和链式访问 3.1 嵌套调用 3.2 链式访问 四、函数声明和定义 4.1 单个文件 4.2 多个文件 总结 前言 大家好啊,继我们上一…...
Kafka Stream 流处理设计概述
Kafka Stream 流处理设计概述 Kafka 流处理是指使用 Kafka 及其生态系统中的组件来处理实时数据流。Kafka Streams 是 Kafka 官方 提供的流处理库,它简化了构建流处理应用程序的过程,并与 Kafka 无缝集成。以下是 Kafka 流处理的设 计原理和相关概念。 1. Kafka 流处理基本…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...