网络营销网站推广方法/赣州seo排名
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 流处理基本…...

Centos7安装自动化运维Ansible
自动化运维Devops-Ansible Ansible是新出现的自动化运维工具,基于Python 开发,集合了众多运维工具(puppet 、cfengine、chef、func、fabric)的优点,实现了批量系统配置 、批量程序部署、批量运行命令 等功能。Ansible…...

element-ui 下拉菜单el-dropdown-item添加点击事件
使用element-ui下拉菜单组件Dropdown时绑定点击事件,事件不生效。 click 常见于其用在Vue中的事件绑定,而实际上是 v-on 的简写,而 v-on 则是对 vue 的事件体系封装之后的 API接口。 native修饰符用于处理DOM原生事件,由于组件 …...

Day45
Day45 jQuery动画 显示和隐藏 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script src"js/jquery-1.8.2.js" type"text/javascript" charset"utf-8"></script&…...

新媒体矩阵系统是什么?怎么搭建矩阵系统?
目录 前言: 一、新媒体矩阵分别是什么? 1、横向矩阵 2、 纵向矩阵 二、新媒体矩阵的作用? 1、多元化发展,吸引目标 2、多平台协同,放大宣传效果 3、多平台运营,分散风险 三、怎么做矩阵系统&…...

HarmonyOS应用开发——Hello World
下载 HUAWEI DevEco Studio: https://developer.harmonyos.com/cn/develop/deveco-studio/#download 同意,进入配置页面: 配置下载源以及本地存放路径,包括nodejs和ohpm: 配置鸿蒙SDK路径: 接受协议: 确认无误后&#…...

Ubuntu20.04使用Samba
目录 一、Samba介绍 Samba 的主要功能 二、启动samba 三、主机操作 四、Ubuntu与windows系统中文件互联 五、修改samba路径 一、Samba介绍 Samba 是一个开源软件套件,用于在 Linux 和 Unix 系统上实现 SMB(Server Message Block)协议…...

第9章:软件可靠性基础知识
随着软件复杂度的增加,软件设计的正确性验证成本也越来越高。可靠和可信的计算模型首先在军事和高要求的商业系统中开始研究,可靠性和其他质量属性一样是衡量软件架构的重要指标。实践证明,保障软件可靠性最有效、最经济、最重要的手段是在软…...

Go 语言学习笔记之通道 Channel
Go 语言学习笔记之通道 Channel 大家好,我是码农先森。 概念 Go 语言中的通道(channel)是用来在 Go 协程之间传递数据的一种通信机制。 通道可以避免多个协程直接共享内存,避免数据竞争和锁的使用,从而简化了并发程…...

第 133 场 LeetCode 双周赛题解
A 使所有元素都可以被 3 整除的最少操作数 遍历 n u m s nums nums ,每有一个不被 3 3 3 整除的数,则操作数加 1 1 1 class Solution {public:int minimumOperations(vector<int>& nums) {int res 0;for (auto x : nums)if (x % 3 ! 0)res…...

【仿真】UR机器人相机标定、立体标定、手眼标定、视觉追踪(双目)
实现在CoppeliaSim环境中进行手眼标定和目标追踪的一个例子。它主要涉及到机器人、机器视觉和控制算法的编程,使用了Python语言。接下来对该代码的主要类和方法进行解析: 1. 导入相关库 用于与CoppeliaSim模拟器通过ZeroMQ接口通信。包含Rotation类&…...