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 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.mfbz.cn/a/762686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装和微调大模型(基于LLaMA-Factory)

打开终端&#xff08;在Unix或macOS上&#xff09;或命令提示符/Anaconda Prompt&#xff08;在Windows上&#xff09;。 创建一个名为lora的虚拟环境并指定Python版本为3.9。 https://github.com/echonoshy/cgft-llm/blob/master/llama-factory/README.mdGitHub - hiyouga/…

教你如何在群晖上部署m3u8视频下载工具,支持浏览器一键添加下载任务

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 快速开始📝 群晖部署📝 部署浏览器一键添加任务🎈 常见问题 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在当今数字化时代,视频内容的下载和管理变得越来越重要。尤其是对于那些使用群晖NAS设备的用户,一…

Redis慢查询

Redis慢查询 目录 Redis慢查询慢查询配置慢日志操作返回参数介绍 Redis的慢查询就是当命令执行时间超过预定的阈值后将这条命令记录下来&#xff0c;与MySQL的功能类似 慢查询配置 默认阈值是10毫秒&#xff0c;即10000微秒 临时修改阈值为20毫秒 127.0.0.1:6379> confi…

旋转变压器软件解码simulink仿真

1.介绍 旋转变压器是一种精密的位置、速度检测装置&#xff0c;尤其适用于高温、严寒、潮湿、高速、振动等环境恶劣、旋转编码器无法正常工作的场合。旋转变压器在使用时并不能直接提供角度或位置信息&#xff0c;需要特殊的激励信号和解调、计算措施&#xff0c;才能将旋转变压…

Mysql 的账户管理,索引,存储引擎

目录 一.MySQL的账户管理 1.存放用户信息的表 2.查看当前使用的用户 3.新建用户 4.修改用户名称 5.删除用户 6.修改用户密码 7.破解密码 8. 远程登录 9.用户权限管理 9.1 权限类别 9.2 查看权限 9.3 授予权限 9.4 撤销权限 二.索引 1. 索引管理 1.1 查看索…

便签 Pro(Mac 智能便签工具)专业版怎么样,值得购买吗?

使用 Mac 的小伙伴平时都是怎么记录工作生活中的碎片信息&#xff1f;用聊天软件&#xff0c;还是系统备忘录呢&#xff1f; 实际体验下来&#xff0c;其实都难以称得上好用。 赶紧来了解一下 Mac 多彩思维速记工具便签 Pro&#xff01;拥有智能边框大小、iCloud 同步、历史记…

使用AI工具 Baidu Comate 辅助编码 快速定位修改Bug

一、Baidu Comate 概述 Baidu Comate&#xff08;百度智能编码助手&#xff09;是一款基于文心大模型的新一代编码辅助工具。它结合了百度多年积累的编程现场大数据和外部优秀开源数据&#xff0c;旨在为用户提供高质量的编程代码生成和优化服务。Comate的主要目标是提升编码效…

我在中东做MCN,月赚10万美金

图片&#xff5c;Photo by Ben Koorengevel on Unsplash ©自象限原创 作者丨程心 在迪拜购物中心和世界最高建筑哈利法塔旁的主街上&#xff0c;徐晋已经“蹲”了三个小时&#xff0c;每当遇到穿着时髦的年轻男女&#xff0c;他都会上前询问&#xff0c;有没有意愿成为…

AI时代的软件工程:挑战与改变

人工智能&#xff08;AI&#xff09;正以惊人的速度改变着我们的生活和工作方式。作为与AI关系最为密切的领域之一&#xff0c;软件工程正经历着深刻的转变。 1 软件工程的演变 软件工程的起源 软件工程&#xff08;Software Engineering&#xff09;是关于如何系统化、规范化地…

基于Tools体验NLP编程的魅力

大模型能理解自然语言&#xff0c;从而能解决问题&#xff0c;但是就像人类大脑一样&#xff0c;大脑只能发送指令&#xff0c;实际行动得靠四肢&#xff0c;所以LangChain4j提供的Tools机制就是大模型的四肢。 大模型的不足 大模型在解决问题时&#xff0c;是基于互联网上很…

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

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

6.x86游戏实战-C++实现跨进程读写-通过基址读取人物状态标志位

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;5.x86游戏实战-CE定位基地址 上一个内容找出了人物状态标志位的基址&#xff0…

ROS学习笔记(17):建图与定位(1)

目录 0.前言 1.定位和建图 1.里程计&#xff08;Odometry&#xff09; 2.扫描匹配&#xff08;Scan Matching&#xff09; 3.结尾 0.前言 好久不见各位&#xff0c;前段时间忙着考试&#xff08;6级和一些专业课&#xff09;和摆烂断更了近30天&#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…

《安全大模型技术与市场研究报告》发布,海云安榜上有名

近日&#xff0c;网络安全产业研究机构“数说安全”发布2024《安全大模型技术与市场研究报告》&#xff08;以下简称“报告”&#xff09;。 海云安凭借在开发安全领域的优秀业务能力以及在大模型相关技术研究方面的成就得到了认可&#xff0c;入选“安全开发大模型推荐供应商”…

【PYTORCH,TENSORFLOW环境配置,安装,自用代码】

conda -V&#xff08;查看版本&#xff0c;这步不要也罢&#xff09; conda create -n test python3.7&#xff08;创建环境&#xff09; conda activate test&#xff08;激活&#xff09; conda env list&#xff08;查看自己的环境&#xff09; nvidia-smi&#xff08;查…

钉钉开放AI生态战略的真正价值到底是什么?很多人都没看懂

来源&#xff1a; 首席数智官 hello 大家好&#xff0c;我们是数字化领军者都在看的首席数智官。 关注我&#xff0c;每天给你讲一个商业案例。 今天我们要给你讲的是&#xff1a;钉钉开放AI大模型生态的战略意义到底是什么&#xff1f; 「谁先赢得苹果&#xff0c;谁就赢得…

技术派全局异常处理

前言 全局的异常处理是Java后端不可或缺的一部分&#xff0c;可以提高代码的健壮性和可维护性。 在我们的开发中&#xff0c;总是难免会碰到一些未经处理的异常&#xff0c;假如没有做全局异常处理&#xff0c;那么我们返回给用户的信息应该是不友好的&#xff0c;很抽象的&am…

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

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