欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ArcGIS 导入 xyz 序列并绘制地形图(计算等高线、表面积和点距离)

最编程 2024-04-01 12:48:44
...

目录

  • 一、前情概要
  • 二、在ArcGIS中绘制地形图
    • 2.1 导入xyz数据并转换为table
    • 2.2 显示xyz数据
    • 2.3 创建TIN
    • 2.4 转为栅格数据
    • 2.5加载地形图
  • 三、其他操作
    • 3.1 绘制等高线
    • 3.2 计算表面积
    • 3.3 计算目标点之间的距离(沿着曲面)

一、前情概要

数据格式为一些三维坐标点,如下图所示(部分):

在这里插入图片描述

需求:现在需要通过这些离散点,绘制出三维曲面(地形图)。

问题:这种离散点,使用MATLAB插值一下,在使用mesh()函数就可以绘制出三维曲面了。但是,我现在需要计算这个曲面的面积,这是个不规则的曲面,怎么计算呢?蒙特卡洛,好主意。但我在这里使用ArcGIS软件来解决。

matlab中做的图如下所示:
在这里插入图片描述

二、在ArcGIS中绘制地形图

2.1 导入xyz数据并转换为table

首先打开ArcMap软件,创建空的地图文档。在菜单栏“地图处理”选项下打开ArcToolbox工具:
在这里插入图片描述
打开转工具,使用excel转表工具,将相应的excel文件转换为table:
在这里插入图片描述
转换完毕后,会在内容荣列表中出现转换好的table文件:

在这里插入图片描述

2.2 显示xyz数据

在上诉table文件上右键显示xy数据,做相应的设置后确定:
在这里插入图片描述
在右侧的视图中,三维点即显示出来
在这里插入图片描述

2.3 创建TIN

创建TIN:
在这里插入图片描述
做如下设置:
在这里插入图片描述
生成TIN如下所示:

在这里插入图片描述

2.4 转为栅格数据

使用TIN转栅格工具:
在这里插入图片描述
创建栅格数据,类似于MATLAB中绘制三维图时的差值操作,在弹出的对话框做相应的设置即可。

在ArcMap中,栅格图像如下,该栅格数据已经经过了二维插值,包含高度信息。但,要想查看他的三维图像,需要使用ArcScene打开这个栅格数据:
在这里插入图片描述

2.5加载地形图

打开ArcScene,他和ArcMap都是在安装ArcGIS的时候一起安装好的。

ArcScene界面与ArcMap差不多,操作类似。

点击添加数据,选择刚刚生成的栅格数据:
在这里插入图片描述
此时加载出来的图像和ArcMap中的黑白图像一样,暂时还没有高度信息,像一个二维平面,但是可以进行三维转动了。

只需要在栅格数据上右键,设置高度信息即可:
在这里插入图片描述

选择好高程数据后就可以查看三维地形图了,双击色带还可以修改颜色:

在这里插入图片描述

三、其他操作

3.1 绘制等高线

在ArcMap和ArcScene中都可绘制,只是显示的二维和三维的区别。

该功能在3D Analyst下面的栅格表面等值线:

在这里插入图片描述
同样,双击名称可以修改等高线的数量、颜色等。

3.2 计算表面积

这里需要使用表面体积功能来计算:

在这里插入图片描述
其中,平面高度表示只计算这个高度以上的面积,我这里计算海拔200米以上的山地面积,结果输出为txt文本。

在这里插入图片描述
这里有三个“面积”,分别为表面2D面积、3D面积、体积。我这里需要的面积是3D面积。

3.3 计算目标点之间的距离(沿着曲面)

这里计算的是不规则曲面上2点之间的距离,不是简单的欧氏距离。如果只测两个点,可以使用菜单栏的测量功能,手动选择。

在这里插入图片描述

而要计算很多个目标点两两之间的距离,这种方法就不适用了。

首先将目标点的坐标数据整理到excel中,使用上文中相同的方法加载(转为table后加载xy数据即可):
在这里插入图片描述
使用分析工具>领域分析>点距离
在这里插入图片描述
结果如下所示:

在这里插入图片描述


我只是工作需要临时使用的ArcGIS的一些功能,这款软件还是十分强大的。