ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

时间:2020-11-30 19:32:05

经常有用户有这样的需求:手头有一堆离散点,想获取这堆点所覆盖的区域,即外包络面。


来看测试数据,如下图:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法


1、如果想获取外包络的凸面

那么在arcmap里有一个toolbox工具,叫”最小边界几何“,能够计算凸的外包络面,如下:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

其中参数选择CONVEX_HULL就是生成最小凸面

效果如下:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

2、如果我们想要的紧贴外边缘点的凹面怎么办呢?

1)首先使用3D分析中的“创建TIN”将这些点连成一个TIN

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

效果如下:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

2)使用“描绘TIN数据区”

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

这里需要注意的是:任何一个三角形的任何一条边,如果大于“最大边长”,那么这个三角形将被抹去,我们测量了一个边缘的三角形的边,大概为80米,尝试着把最小边长设置为略大于80的100,目的是避免把内部不该抹去的三角片也抹去了;另外方法里选择”PERIMETER_ONLY“,PERIMETER_ONLY 将从 TIN 的外部范围向内遍历各个三角形,如果边界三角形的边在当前迭代中小于最大边长,则将停止遍历。全部将按边长对整个 TIN 三角形集合进行分类。简而言之,这个参数决定是否抹掉边缘的三角片之后是否还去判断内部的三角片。

如果发现边缘还有未抹掉的多余三角片,可以将最小边长再设置小一点

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

最终设置成60之后效果如下:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

3)使用“TIN范围”工具将tin边界导出成面或者线

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

效果如图:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法


——————————————————————————————————————

对于线要素的处理完全一样,以常见的等高线为例,如下图:

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

先生成TIN

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

再描绘TIN去掉多余三角片

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法

然后导出包络多边形

ArcMap获取要素(点、线、面)外包络面(含凹面)的一个方法