matlab 地理网格数据显示的三种方式

matlab 地理网格数据显示方式

地图数据与经纬度坐标矩阵关系决定显示方式

首先确保matlab平台已经暗转Mapping Toolbox工具,它目前支持三种地理地图数据的显示,通过经纬度定位信息来决定采用何种显示方式,具体例子来自matlab帮助文档。

  • 第一种显示方式
    地图地理数据矩阵的尺寸为mxn,即是m行n列的二维数据;若经度纬度坐标信息的尺寸恰好也是mxn,那么会在相应的地理点(数据单元的中心)对数据进行地理定位。
  • 第一种显示方式的例子:
Z = [ ...
 1  2  3  4; ...
 5  6  7  8; ...
 9 10 11 12; ...
13 14 15 16];
lat = [ ...
  30  30  30  30; ...
   0   0   0   0; ...
 -30 -30 -30 -30; ...
 -60 -60 -60 -60];
lon = [ ...
 0 30 60 90;...
 0 30 60 90;...
 0 30 60 90;...
 0 30 60 90];

figure('Color','white','Colormap',autumn(64))
axesm('pcarree','Grid','on','Frame','on',...
    'PLineLocation',30,'PLabelLocation',30)
mlabel; plabel; axis off; tightmap
h = geoshow(lat,lon,Z,'DisplayType','surface');
set(h,'ZData',zeros(size(Z)))
ht = textm(lat(:),lon(:),num2str(Z(:)), ...
    'Color','blue','FontSize',14);
colorbar('southoutside')

第一种显示情况如下:
在这里插入图片描述

  • 第二种显示方式
    地图地理数据矩阵的尺寸为(m-1)x(n-1),即是m-1行n-1列的二维数据;经度纬度坐标信息的尺寸是mxn,地理数据的行的纬度以及列纬度恰好比坐标矩阵纬度小1,那么由四个相邻的纬度和经度组成的区域对应一个地图数据。请注意测试中”DisplayType“要为”texture“才能正常显示。
  • 第二种显示方式的例子:
%Z3by3为地图数据二维数组
Z3by3 = [ ...
 1  2  3; ...
 4  5  6; ...
 7  8  9];
%lat 与 lon分别为 纬度线和经度线的坐标矩阵
lat = [ ...
  30  30  30  30; ...
   0   0   0   0; ...
 -30 -30 -30 -30; ...
 -60 -60 -60 -60];
lon = [ ...
 0 30 60 90;...
 0 30 60 90;...
 0 30 60 90;...
 0 30 60 90];

figure('Color','white','Colormap',autumn(64))
axesm('pcarree','Grid','on','Frame','on',...
    'PLineLocation',30,'PLabelLocation',30)
mlabel; plabel; axis off; tightmap
h = geoshow(lat,lon,Z3by3,'DisplayType','texture');
%显示每个地图数据的对应的地理位置
tlat = [ ...
   15 15 15; ...
   -15 -15 -15; ...
   -45 -45 -45];
tlon = [ ...
    15 45 75; ...
    15 45 75; ...
    15 45 74];
textm(tlat(:),tlon(:),num2str(Z3by3(:)), ...
    'Color','blue','FontSize',14)

第二种显示情况如下图
在这里插入图片描述

  • 第三种显示方式
    地图地理数据矩阵的尺寸为mxn,即是m行n列的二维数据;纬度坐标矩阵的纬度都比地理数据行数小,即,纬度矩阵纬度可能是m-1,m-2,…1;而经度坐标矩阵纬度比地理数据列数小,即为n-1,n-2,…1。那么地图数据就会一起被框在最外围经度和纬度线所限定的网格内,有可能正常显示每个地图数据,也有可能扭曲全部地图数据,具体看经度坐标和纬度坐标的纬度,以下给出对应的例子
  • 第三种显示方式的例子:
%Z4by4为地图数据二维数组
Z4by4 = [ ...
 1  2  3 10; ...
 4  5  6 10; ...
 7  8  9 10;...
 10 10 10 10];
%lat 与 lon分别为 纬度线和经度线的坐标矩阵
lat = [ ...
  30  30  30; ...
   0   0  0;...
   -30 -30 -30];

lon = [ ...
 0 30 60;...
 0 30 60;...
 0 30 60];

figure('Color','white','Colormap',autumn(64))
axesm('pcarree','Grid','on','Frame','on',...
    'PLineLocation',30,'PLabelLocation',30)
mlabel; plabel; axis off; tightmap
h = geoshow(lat,lon,Z4by4,'DisplayType','texture');

第三种显示结果如下,注意到全部数据被限定在经度纬度内部,网格线内部有四个数据,这种显示模式是不准确的,不推荐使用。
在这里插入图片描述

数据显示顺序

应该从图中看出数据的显示顺序从图的第一行开始,但是matlab默认的数据显示模式是数据从图的底部开始,这所以有不同,是因为上面的三个例子里面,规定的lat和lon矩阵已经给定,全部地图数据按照给定的lat和lon指定的顺序进行排列。
地图方格图形标准生成函数为 meshgrat,用法参考相关手册,一般使用给定的数据矩阵和数据对应的地理光栅参考对象,即
[lat, lon] = meshgrat(Z, R) constructs a graticule for use in displaying a regular data grid, Z. In typical usage, a latitude-longitude graticule is projected, and the grid is warped to the graticule using MATLAB® graphics functions. In this two-argument calling form, the graticule size is equal to the size of Z. R can be a geographic raster reference object, a referencing vector, or a referencing matrix.

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: MATLAB 是一种用于数值计算、数据分析和可视化的软件环境,在处理三维数据高程方面也提供了丰富的功能和工具。首先,可以使用 MATLAB 中的函数来读取和处理高程数据MATLAB 支持多种数据格式,包括常见的地理信息系统 (GIS) 数据格式,如 TIF、GRD、ASC 等。通过读取这些数据文件,可以将高程数据加载到 MATLAB 的工作空间中,方便后续处理。 在处理高程数据时,MATLAB 提供了一系列的函数和工具箱。例如,可以使用 `meshgrid` 函数来创建一个网格,用来表示三维空间中的坐标点。然后,可以使用 `surf` 函数将高程数据绘制为三维曲面。这样可以直观地显示出地形的起伏情况。 除了显示高程数据的三维曲面,MATLAB 还提供了一系列的函数和工具,用于分析和处理三维高程数据。可以通过计算求取最大高程、最小高程、平均高程等统计信息。同时,还可以进行插值和网格化等操作,对高程数据进行进一步处理和分析。 此外,MATLAB 还支持对三维高程数据进行可视化和图像处理。可以使用各种绘图函数,如 `contour`、`imagesc` 等,将高程数据可视化为等高线图、热力图等形式。同时,还可以使用图像处理工具箱中的函数,对高程数据进行滤波、增强和修复等操作,以改善数据质量和可视化效果。 综上所述,MATLAB 在处理三维高程数据方面具备了丰富的功能和工具。通过 MATLAB,我们可以读取、处理、分析和可视化三维高程数据,从而更深入地了解地形变化和地理环境。同时,MATLAB 还支持与其他软件和工具的联动,方便在不同领域应用中的使用。 ### 回答2: MATLAB 是一种功能强大的数值计算和数据可视化软件,可以进行三维数据处理和分析。在处理高程数据方面,MATLAB提供了多种方法和函数来实现。 首先,可以使用MATLAB中的网格化函数将离散的三维数据点转化为网格状的高程表面。常用的函数有griddata和meshgrid。griddata函数可以根据输入的数据点生成具有一定分辨率的网格高程表面。而meshgrid函数可以根据给定的x和y坐标向量生成一个网格高程表面,用于显示和分析。 其次,MATLAB还提供了许多高程数据分析的函数。例如,可以使用contour函数绘制高程等值线图,用不同颜色表示不同高度的等高线。使用surfc和meshc函数可以绘制三维高程图,并通过不同的颜色、阴影和光照来表示高度差异。这些函数可以帮助我们更直观地观察和理解高程数据。 此外,MATLAB还提供了许多用于高程数据处理和分析的工具箱,如地理工具箱、映像处理工具箱等。这些工具箱提供了更丰富的功能和方法,可用于处理地理信息系统数据、处理图像数据和进行数学建模。 总而言之,MATLAB对于三维高程数据的处理和分析提供了丰富的函数和工具,能够帮助用户进行高效的数据处理、可视化和分析。无论是从事地理信息系统研究、数据分析还是科学计算,MATLAB都是一个非常有用的工具。 ### 回答3: MATLAB是一种功能强大的编程语言和数学计算软件。它提供了许多用于处理和分析多维数据的工具和函数。在MATLAB中,我们可以使用内置函数和工具箱来处理三维数据和高程数据。 对于处理三维数据MATLAB提供了许多函数和工具箱。我们可以使用3D图形函数来可视化三维数据,如plot3,mesh和surf等。这些函数可以在三维空间中绘制线条、曲面和网格等,以便更好地理解和分析数据。此外,还可以使用一系列的矩阵运算函数和统计函数来处理和分析三维数据。 对于处理高程数据MATLAB提供了一些特殊的函数和工具箱,如DEM和GIS工具箱。这些工具箱可以帮助我们读取和处理数字高程模型(DEM)数据,如地形和地表海拔等。我们可以使用这些工具来创建和修改DEM数据,计算地形指数(如坡度和坡向)以及进行可视化和分析。 此外,MATLAB还提供了一些用于数据插值和平滑的函数,如griddata和smoothn等。这些函数可以帮助我们在不规则的数据点之间进行插值和平滑,以便更好地展示和分析高程数据。 总之,MATLAB可以用来处理和分析三维数据和高程数据。我们可以使用内置的函数和工具箱来进行可视化、分析和修改数据,以便更好地理解和利用数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值