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

news2024/11/18 3:30:41

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 added

m_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.coloradmin.cn/o/1884278.html

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

相关文章

C++多态~~的两个特殊情况

目录 1.多态的概念 2.简单认识 &#xff08;1&#xff09;一个案例 &#xff08;2&#xff09;多态的两个满足条件 &#xff08;3&#xff09;虚函数的重写 &#xff08;4&#xff09;两个特殊情况 1.多态的概念 &#xff08;1&#xff09;多态就是多种形态&#xff1b; …

某腾X滑块验证码

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9wcm9kdWN0L2NhcHRjaGE= 1. 先整体分析一下 1_1. 验证码信息下发接口 cap_union_prehandle ua:…

AI绘画工具Midjourney:和Discord互相成就

前言 提到文生图&#xff0c;很多人都会想到植根于根植于Discord社区的Midjourney&#xff0c;本篇文章就基于作者的使用体验思考&#xff0c;并结合了Discord来对Midjourney进行探讨&#xff0c;感兴趣的朋友一起来看看吧。 如果要说现在最火的文生图&#xff0c;不得不说到Mi…

openmetadata1.3.1 自定义连接器 开发教程

openmetadata自定义连接器开发教程 一、开发通用自定义连接器教程 官网教程链接&#xff1a; 1.https://docs.open-metadata.org/v1.3.x/connectors/custom-connectors 2.https://github.com/open-metadata/openmetadata-demo/tree/main/custom-connector &#xff08;一&…

本周波动预警!7月将一路上涨,牛市“复苏“?低于6万美元的比特币,是熊市陷阱吗?

比特币在第三季度伊始发出了一些积极信号。随着上周末的涨势&#xff0c;BTC/USD最高一度达到63818美元&#xff0c;这让人对比特币能否重拾牛市信心满怀希望。不过&#xff0c;在冲破关键阻力位64000美元之前&#xff0c;市场参与者仍保持谨慎态度。比特币要想维系开头的牛市态…

掌握React与TypeScript:从零开始绘制中国地图

最近我需要使用reactts绘制一个界面&#xff0c;里面需要以中国地图的形式展示区块链从2019-2024年这五年的备案以及注销情况&#xff0c;所以研究了一下这方面的工作&#xff0c;初步有了一些成果&#xff0c;所以现在做一些分享&#xff0c;希望对大家有帮助&#xff01; 在这…

使用Qt制作一个简单的界面

1、创建工程 步骤一&#xff1a; 步骤二&#xff1a; 步骤三&#xff1a; 选择 build system&#xff0c;有qmake、CMake 和 Qbs 三个选项。 CMake 很常用&#xff0c;功能也很强大&#xff0c;许多知名的项目都是用它&#xff0c;比如 OpenCV 和 VTK&#xff0c;但它的语法繁…

heic格式转化jpg如何操作?heic转jpg,分享6款图片转化器!

随着苹果iOS 11系统的推出&#xff0c;HEIC格式作为一种新的图片格式逐渐走进大众视野&#xff0c;heic格式在保证照片质量的同时&#xff0c;能显著减少系统存储空间的占用。然而&#xff0c;这也给非苹果用户带来了一些困扰&#xff0c;因为HEIC格式的图片在Windows系统上并不…

深入理解C# log4Net日志框架:功能、使用方法与性能优势

文章目录 1、log4Net的主要特性2、log4Net框架详解配置日志级别 3、log4Net的使用示例4、性能优化与对比5、总结与展望 在软件开发过程中&#xff0c;日志记录是一个不可或缺的功能。它可以帮助开发者追踪错误、监控应用程序性能&#xff0c;以及进行调试。在C#生态系统中&…

探秘 Django 专业之道

一、Django项目开发 1.web框架底层 1.1 网络通信 注意&#xff1a;局域网 个人一般写程序&#xff0c;想要让别人访问&#xff1a;阿里云、腾讯云。 去云平台租服务器&#xff08;含公网IP&#xff09;程序放在云服务器 先以局域网为例 我的电脑【服务端】 import sock…

无法访问指向的web服务器(或虚拟主机)的目录,请检查网络设置

微信公众平台,进行业务域名、JS接口安全域名、网页授权域名配置时&#xff0c;遇到的问题中有&#xff1a;无法访问指向的web服务器&#xff08;或虚拟主机&#xff09;的目录&#xff0c;请检查网络设置&#xff0c;这里简单记录一下处理过程。 关于这个问题首先保证下载…

基于PHP技术的校园论坛设计的设计与实现08586

基于PHP技术的校园论坛设计的设计与实现 摘 要 本项目旨在基于PHP技术设计与实现一个校园论坛系统&#xff0c;以提供一个功能丰富、用户友好的交流平台。该论坛系统将包括用户注册与登录、帖子发布与回复、个人信息管理等基本功能&#xff0c;并结合社交化特点&#xff0c;增强…

2023软考中级《软件设计师》(备考冲刺版) | 数据库系统

目录 1.数据库的基本概念 1.1 数据库体系结构 1.2 三级模式结构 1.3 数据仓库 2.数据库设计过程 2.1 概念结构设计 2.1.1 概念设计过程 2.1.2 E-R图 2.2 逻辑结构设计 2.2.1 关系模式相关概念 2.2.2 E-R图转关系模式&#xff08;涉及下午题&#xff09; 2.2.3 关系…

SysML与MBSE的关系

SysML与MBSE的关系 对于任何基于模型的系统工程 &#xff08;MBSE&#xff09; 方法&#xff0c;推荐的最佳实践是基于模型的语言、基于模型的工具、基于模型的流程和基于模型的架构框架的协同应用&#xff0c;如下图所示 系统架构四元组 图。经过十年将SysML应用于棘手的系统…

海思NNIE部署yolov5-shufflenet

1.简要说明 由于NNIE上transpose支持的顺序是固定的,shufflenet那种x=torch.transpose(x,1,2).contiguous() 的操作一般是不支持的。需要进行调整。 2.使用工程以及修改 使用的是开源工程:GitHub - Lufei-github/shufflev2-yolov5: shufflev2-yolov5:lighter, faster and ea…

基于“香港世界”的SLAM技术介绍

在视觉感知技术中&#xff0c;理解和描述复杂的三维室外场景至关重要&#xff0c;尤其是自动驾驶技术的发展要求对陌生环境具有更强的适应能力和鲁棒性。传统上&#xff0c;使用“曼哈顿世界”和“亚特兰大世界”模型来描述具有垂直和水平结构的城市场景。 当遇到像香港这样地形…

python爬虫之scrapy框架基本使用

python爬虫之scrapy框架基本使用 1、环境安装&#xff1a;pip install scrapy 2、创建一个工程&#xff1a;scrapy startproject xxxPro 3、cd xxxPro 4、在spiders子目录中创建一个爬虫文件&#xff1a;scrapy genspider spiderName www.xxx.com 5、执行工程&#xff1a;scra…

当年很多跑到美加澳写代码的人现在又移回香港?什么原因?

当年很多跑到美加澳写代码的人现在又移回香港&#xff1f;什么原因&#xff1f; 近年来&#xff0c;确实有部分曾经移民到美国、加拿大、澳大利亚等地的香港居民选择移回香港。这一现象与多种因素相关&#xff0c;主要可以归结为以下几点&#xff1a; 疫情后的环境变化&#…

高通源代码版本ADK工具版本源代码release版本MDE版本介绍

0 Preface/Foreword 1 版本介绍 高通代码存放在chipcode中&#xff0c;网址URL&#xff1a;Chipcode 1.1 高通源代码版本 Bluetooth Audo芯片的高通源代码版本号&#xff08;类似于分类的类名&#xff09;&#xff1a;ADK.SRC.1.0 &#xff08;最新qcc307x系列及之后的芯片如…

如何用matplotlib绘制图像分类任务的类别特征空间分布

import matplotlib.pyplot as plt import numpy as np from sklearn.decomposition import PCA from sklearn.datasets import load_iris from mpl_toolkits.mplot3d import Axes3D# 加载示例数据&#xff08;Iris 数据集&#xff09; data load_iris() X data.data y data.…