07 - matlab m_map地学绘图工具基础函数 - 绘制等高线

07 - matlab m_map地学绘图工具基础函数 - 绘制等高线

  • [0. 引言](#0. 引言)
  • [1. 关于绘制m_contour](#1. 关于绘制m_contour)
  • [2. 关于绘制m_contourf](#2. 关于绘制m_contourf)
  • [3. 关于绘制m_elev](#3. 关于绘制m_elev)
  • [4. 结语](#4. 结语)

0. 引言

本篇介绍下m_map中添加绘制等高线 的一系列函数及其用法,主要函数包括m_elevm_contourm_contourf还有一些函数也和绘制等高线有关(如:m_tbase、m_etopo2),但没有 合适的数据,未完成 调用测试,所以 进行展开

1. 关于绘制m_contour

m_contour 函数用于在地图投影上绘制等值线图。等值线图是一种常用的展示地理数据的方法,通过++连接相同数值的点来展示数据的变化趋势++ 。使用m_contour函数可以在地图上直观地 显示这些等值线,并帮助分析地理数据的特征。

m_contour 函数的一般调用形式

matlab 复制代码
 [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。

matlab 复制代码
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的一般形式:

matlab 复制代码
[cs,h]=m_contourf(long,lat,data,varargin)

其调用形式和m_contour基本一致,差异在varargin中部分属性是控制填充的,这个是m_contour中没有的。

示例 如下:测试数据在网盘中,提取码为n67r。

matlab 复制代码
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:
matlab 复制代码
[ELEV,LONG,LAT]=M_ELEV([LONG_MIN LONG_MAX LAT_MIN LAT_MAX])

形式1输入绘图区域经纬度四至即 [最小经度 最大经度 最小维度 最大维度],返回四至区域高程数据格点,分辨率为1°;

示例: 形式1的调用++主要用于++ 提取 研究范围的高程数据,并不 会绘制等高线,下面两图为有等高线和没等高线的对比

matlab 复制代码
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:
matlab 复制代码
M_ELEV(OPTN,args,...)

种调用形式,OPTN参数为功能选择参数,可以选择绘制等高线(contour)图、等高线填充(contourf)图、pcolor图、栅格图像(image)和阴影(shadedrelief)图共5种类型的地图; args表示其他可选项,可以控制绘图的线条样式、颜色等属性:

matlab 复制代码
%        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. 阴影地形图

下面示例 ,包含了上述五种类型 的有关命令,并展示了五种图的图示:

matlab 复制代码
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));

|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| contour | image |
| shadedrelief | pcolor |

4. 结语

本篇介绍m_map中绘制等高线的几个方法,通过示例展示了各函数的基本用法,对于绘制常见地学图 已经够用了,后面若发现还有其他和绘制等高线有关的函数再进行补充 。++希望对绘图的你有所帮助++

😜

😜😜

😜😜😜😜

相关推荐
咋(za)说8 天前
03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)
matlab·m_map绘图工具·m_coord坐标系初始化·地理/地磁坐标系设置·m_map函数