09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数

  • 0. 引言
  • 1. 关于m_pcolor
  • 2. 关于m_image
  • 3. 关于m_shadedrelief
  • 4. 关于m_hatch
  • 5. 结语


0. 引言

   本篇介绍下m_map区域填充函数(m_hatch)、绘制伪彩色图的函数(m_pcolor)、地图上加载图像函数(m_image)、绘制阴影浮雕效果函数(m_shadedrelief)。

1. 关于m_pcolor

  m_pcolor函数用于在地图上绘制伪彩色图。它类似于matlab的pcolor函数,但是可以在地图投影上绘制。

  m_pcolor函数一般形式为:

function [h]=m_pcolor(long,lat,data,varargin)

  其中:long、lat绘图区域经纬度坐标点;data绘图数据,每个数据点的值决定了对应位置的颜色。

  下面是一个简单示例,使用了GLDAS水文数据为数据源,测试数据在网盘中,提取码为n67r。

% 解析数据
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);% 定义投影
m_proj('mercator','long',[69.5 105.5],'lat',[24.5 40.5]);% 在地图上绘制伪彩色图
m_pcolor(LN,LT, soilmoi_data');% 添加边界
m_gshhs('ic','color',[.5 .5 .5]) % 中等分辨率海岸线
m_gshhs('ir2','color','k')   % 中等分辨率河流
m_grid('linestyle','none','tickdir','out');
colorbar;

2. 关于m_image

  m_image函数用于在地图投影上显示图像。这个函数可以将图像数据投影到地图坐标系上,以便与其他地图数据进行比较或叠加。借助谷歌地图、高德地图等一些列地理数据库API,可以将一些卫星数据加载到绘图区域

  m_image函数一般形式为:

m_image(lon,lat,C,varargin)

  其中,lon、lat图像数据配准到地图上的位置;C图像的颜色数据矩阵,可以是RGB彩色图像,也可以是灰度图像;varargin可选参数,如resolution可以控制图像显示精度,通过插值方式将图像的显示像素转化到 N ∗ N N*N NN

  m_map官网提供了一个加载谷歌地图的示例,经过尝试未能复现,这里用了一个普通图片作为,将图片加载到地图的指定位置,以下是一个简单示例

clc;clear;
% % 读取图像文件
lms=[ -123-[14 8]/60  49+[10 13.5]/60 ];
m_proj('utm','lat',lms(3:4),'lon',lms(1:2));imageData = imread('m_coast.jpg');
% 定义图像在地图上的经纬度范围
lonRange = [-123.12 -123.23];
latRange = [49.16 49.22];
% 在地图上显示图像
m_image(lonRange, latRange, imageData);
% 添加网格
m_grid('linestyle','none','tickdir','out');

3. 关于m_shadedrelief

  m_shadedrelief函数用于在地图投影上绘制阴影浮雕效果以展示地形。这个函数可以帮助你将地图呈现为立体感强烈的样式,增强地图的视觉效果。

  m_shadedrelief函数一般形式为:

[Truecol,x,y]=m_shadedrelief(x,y,Z,varargin)

  其中,x、y为水平竖直方向向量,z为高度数据,x y z的单位需统一;varargin为可选参数。需要注意的是m_shadedrelief函数调用之前必须先执行caxiscolormap两个函数,且为了显示立体效果,需要计算对位点的度。

  m_shadedrelief函数的一些可选参数比较讲究,理解比较浅,需要进一步了解的可以在m_map中查看有关资料或注释。

  下面是来自官网的一个示例,数据的链接可以在网盘中获取,提取码为:tgvf。

clat=[48+46/60 49+5/60];clon=[-125-15/60 -124-55/60]; % Barkley Sound
%% Read data from a netcdf file
fname='barkley_sound_1_navd88_2016.nc';
lat=ncread(fname,'lat');
lon=ncread(fname,'lon');
ilat=lat>=clat(1) & lat<=clat(2);
ilon=lon>=clon(1) & lon<=clon(2);
Z=ncread(fname,'Band1',[ find((ilon),1,'first') find((ilat),1,'first')],...[ sum(ilon) sum(ilat)],[1 1]);m_proj('equidistant','lon',clon,'lat',clat);   % Projection%   The shaded relief version (right hand plot))subplot(1,2,2);
caxis([-300 1210]);  % 1210 chosen by manual adjustment% since  'waterline" appears to be at about Z=2 (vertical datum for% bathymetry is 'lowest normal tide')
colormap([m_colmap('blues',32);m_colmap('gland',128)]);   % Colormap sizes chosen because...% ... 32/128 = (300+2)/(1210-2)
m_shadedrelief(lon(ilon),lat(ilat),Z');   
m_grid('box','fancy','grid','none','fontsize',14);
m_contfbar( [.3 .7],.98, Z',[-300:1210],...'axfrac',.02,'endpiece','no','levels','match','edgecolor','none');          
% The normal contour version (left hand plot))subplot(1,2,1);
m_contourf(lon(ilon),lat(ilat),Z',[-300:25:-25 2 50:50:200 300:100:1200 1210]);
caxis([-300 1210]);   
colormap([m_colmap('blues',32);m_colmap('gland',128)]);
m_grid('box','fancy','tickdir','out','grid','none','fontsize',14);
m_contfbar( [.3 .7],.98, Z',[-300:25:-25 2 50:50:200 300:100:1200 1210],...'axfrac',.02,'endpiece','no','levels','match');     

在这里插入图片描述

  对比两幅图,第二幅图加了阴影浮雕效果,视觉效果更好

4. 关于m_hatch

  m_hatch函数用于在地图上填充指定区域。这个函数通常与其他 m_map 函数一起使用,比如 m_contourf 用于填充等值线区域,m_patch 用于绘制多边形区域等。

m_hatch(lon,lat,hatchpattern)

  其中,lon 和 lat 分别是指定区域的经度和纬度坐标,hatchpattern是填充图案的类型,常用的填充图案包括:

  • 'single', 45, 5 用单线条填充,线条朝向45°,控制每2根单线条之间的间距为5;
  • 'cross', 45, 5 用交叉线填充,线条朝向45°,控制每2根单线条之间的间距为5;
  • 'speckle',7,1 斑点填充到研究区内,离内边界7个单位的距离作为填充区域,填充散点的密度为1;
  • 'outspeckle',7,1 斑点填充到研究区外,离外边界7个单位的距离作为填充区域,填充散点的密度为1;

  除此之外,还有一些控制线条样式、颜色等的参数也可以被设置。

  下面为m_hatch函数的使用示例,并展示了四种不同图案填充的效果:

bndry_lon=[-128.8 -128.8 -128.3 -128 -126.8 -126.6 -128.8];
bndry_lat=[49      50.33  50.33  50   49.5   49     49];clf;
m_proj('lambert','long',[-130 -121.5],'lat',[47 51.5],'rectbox','on');m_gshhs_i('color','r');              % Coastline...
m_gshhs_i('speckle','color','k');    % with speckle addedm_line(bndry_lon,bndry_lat,'linewi',2,'color','m');     % Area outline ...
% m_hatch(bndry_lon,bndry_lat,'single',30,5,'color','k'); % 单线填充
% m_hatch(bndry_lon,bndry_lat,'speckle',7,1,'color','k'); % 区域内斑点填充
% m_hatch(bndry_lon,bndry_lat,'outspeckle',7,1,'color','k'); % 区域外斑点填充
m_hatch(bndry_lon,bndry_lat,'cross',30,5,'color','k'); % 双线填充m_grid('linewi',2,'linest','none','tickdir','out','fontsize',12);
title({'Speckled Boundaries','for nice B&W presentation','(best in postscript format)'});
m_text(-128,48,{'Pacific','Ocean'},'fontsize',18);m_northarrow(-122.5,50.2,.8,'type',3,'linewi',2);  
contour
image
shadedrelief
pcolor

5. 结语

  本篇介绍m_map中绘制多边形区域函数(m_patch)、区域填充函数(m_hatch)、绘制伪彩色图的函数(m_pcolor)、地图上加载图像函数(m_image)、绘制阴影浮雕效果函数(m_shadedrelief),通过示例展示了各函数的基本用法,对于绘制常见地学图已经够用了,后面若发现还有其它相关函数再进行补充希望对绘图的你有所帮助






😜
😜😜
😜😜😜😜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.2章节python的变量和常量

在Python中&#xff0c;变量和常量有一些基本的概念和用法&#xff0c;但需要注意的是&#xff0c;Python本身并没有内置的“常量”类型。然而&#xff0c;程序员通常会遵循一种约定&#xff0c;即使用全部大写的变量名来表示常量。 一、变量 在Python中&#xff0c;变量是一…

毫米波雷达深度学习技术-2.1~2.2深度度量学习和成对方法

2 深度度量学习 有几种雷达应用程序旨在对一组预定义的类别进行分类&#xff0c;例如不同的人类活动或手势。然而&#xff0c;在实际环境中&#xff0c;存在的类不仅仅是预定义的类&#xff0c;这就把问题变成了一个开放集的分类任务。开放集分类意味着网络应该能够检测输入是否…

Chapter 8 Feedback

Chapter 8 Feedback 这一章我们介绍feedback 反馈运放的原理. 负反馈是模拟电路强有力的工具. 8.1 General Considerations 反馈系统如下图所示 Aolamp open-loop gain即开环增益. Aolxo/xi β \beta β 是 feedback factor, 注意方向. β x f x o \beta\frac{x_{f}}{x_{o…

一、课程介绍,基础—环境安装、判断、循环语句等(爬虫及数据可视化)

一、课程介绍&#xff0c;基础—环境安装、判断、循环语句等&#xff08;爬虫及数据可视化&#xff09; 1. 课程介绍1.1 相关内容1.2 学习目标1.3 学习内容安排 2. python2.1 环境配置2.2 标识符和关键字2.3 运算符2.4 判断语句2.5 循环语句 1. 课程介绍 1.1 相关内容 10天的…

【pytorch11】高阶操作

高阶操作 WhereGather where 三个参数&#xff0c;第一个是condition&#xff0c;第二个参数是源头A&#xff0c;第三个参数是源头B&#xff0c;也就是说有两项数据A和B&#xff0c;C有可能来自于A也有可能来自于B&#xff0c;如果全部来自于A的话直接赋值给A&#xff0c;如果…

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在现代自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Transformer 模型的出现带来了革命性的变…

无线物联网练习题

文章目录 选择填空简答大题 选择 不属于物联网感知技术的是(A) A:ZigBee B:红外传感器 C:FRID D:传感器 ZigBee是一种无线通信技术&#xff0c;虽然它常用于物联网中作为设备之间的通信手段&#xff0c;但它本身并不是一种感知技术 关于物联网于与互联网的区别的描述&#xff…

【机器学习】基于Transformer的迁移学习:理论与实践

引言 在机器学习领域&#xff0c;迁移学习已成为提升模型训练效率和性能的重要策略&#xff0c;特别是在标注数据稀缺的场景下。Transformer模型自2017年由Google提出以来&#xff0c;在自然语言处理&#xff08;NLP&#xff09;领域取得了突破性进展&#xff0c;并逐渐扩展到…

Zuul介绍

Zuul 是 Netflix 开源的一个云平台网络层代理&#xff0c;它主要用于路由、负载均衡、中间件通信和动态路由。Zuul 本质上是一个基于 JVM 的网关&#xff0c;它提供了以下功能&#xff1a; 1.路由&#xff1a;Zuul 允许客户端和服务器之间的所有入站和出站请求通过一个中心化的…

小红书怎么保存无水印图?

使用小红书APP长按保存的图片代有水印&#xff0c;很多人想知道保存小红书无水印图片的方法。本文教你如何保存到无水印的小红书图片&#xff0c;但是请注意不要侵犯作者图片的版权。 小红书怎么保存无水印图&#xff1f; 1、手机上打开小红书APP&#xff1b; 2、打开后&#…

昇思25天学习打卡营第13天|BERT

一、简介&#xff1a; BERT全称是来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff0c;它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自…

2.3章节Python中的数值类型

1.整型数值 2.浮点型数值 3.复数   Python中的数值类型清晰且丰富&#xff0c;主要分为以下几种类型&#xff0c;每种类型都有其特定的用途和特性。 一、整型数值 1.定义&#xff1a;整数类型用于表示整数值&#xff0c;如1、-5、100等。 2.特点&#xff1a; Python 3中的…

卡尔曼滤波公式推导笔记

视频见B站上DR_CAN的卡尔曼滤波器 【卡尔曼滤波器】3_卡尔曼增益超详细数学推导 &#xff5e;全网最完整_哔哩哔哩_bilibili

动手学深度学习5.6 GPU-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;17 使用和购买 GPU【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;5.6. GPU —…

数据库定义语言(DDL)

数据库定义语言&#xff08;DDL&#xff09; 一、数据库操作 1、 查询所有的数据库 SHOW DATABASES;效果截图&#xff1a; 2、使用指定的数据库 use 2403 2403javaee;效果截图&#xff1a; 3、创建数据库 CREATE DATABASE 2404javaee;效果截图&#xff1a; 4、删除数据…

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器&#xff08;Linear Quadratic Regulator&#xff0c;LQR&#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下&#xff0c;线性系统在LQR 控制方法中用状态空间方程描…

Android super.img结构及解包和重新组包

Android super.img结构及解包和重新组包 从Android10版本开始&#xff0c;Android系统使用动态分区&#xff0c;system、vendor、 odm等都包含在super.img里面&#xff0c;编译后的最终镜像不再有这些单独的 image&#xff0c;取而代之的是一个总的 super.img. 1. 基础知识 …

鸿蒙:页面动画-属性动画、显示动画

1.属性动画是通过设置组件的animation属性来给组件添加动画&#xff0c;当组件的width、height、backgroundColor、scale等属性变更时可以实现过渡渐变效果。 2.显示动画是通过全局animateTo函数来修改组件的属性&#xff0c;实现属性变化时的渐变过渡效果。 核心属性

【你也能从零基础学会网站开发】关系型数据库中的表(Table)设计结构以及核心组成部分

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 关系型数据库中…

【Git 学习笔记】Ch1.1 Git 简介 + Ch1.2 Git 对象

还是绪个言吧 今天整理 GitHub 仓库&#xff0c;无意间翻到了几年前自学 Git 的笔记。要论知识的稳定性&#xff0c;Git 应该能挤进前三——只要仓库还在&#xff0c;理论上当时的所有开发细节都可以追溯出来。正好过段时间会用到 Git&#xff0c;现在整理出来就当温故知新了。…