0
点赞
收藏
分享

微信扫一扫

ArcGIS中生成蜂窝多边形算法解析

近来有不少同学,都有问我关于蜂窝多边形的问题,也就是正六边形,也就是下面这个东东:

ArcGIS中生成蜂窝多边形算法解析_ArcGIS


一般的问答模式如下:

亲们问:ArcGIS里面那个工具可以做这个东东?

虾神答:额,没有原生的工具。


亲们问:那我看很多人都做了啊,这个东东怎么做?

虾神答:嗯,算法很简单……巴拉巴拉巴拉……

亲们:

ArcGIS中生成蜂窝多边形算法解析_ArcGIS_02

虾神:……


好吧,既然有如此,今天我们就用一篇文章来简单说说在ArcGIS里面如何做蜂窝六边形的方法。


话说我们做样方分析的时候,最简单的当然是采用矩形,样方样方……里面这个方字用得那是极好的。但是很多精益求


精的同学,觉得方形太图样图森破了,我们怎么能用这么简单的东西呢?我们要用正六边形!


实际上,六边形得几何描述确实要比方形完美得多,对比一下就知道了:

首先在几何里面有“平面镶嵌”这个概念(无间隙且不重叠地覆盖平面),正六边形是边数最多的平面镶嵌图形。(边


越多,越接近理论上的完美图形——圆)


然后正六边形延伸距离都是一样的。

ArcGIS中生成蜂窝多边形算法解析_泰森多边形_03


当然,还有更多的好处,我就不列举了。下面进入正题,我们来说说,如何在ArcGIS里面做出正六边形来。


做法如下:

1、首先用ArcGIS里面的渔网工具生成渔网网格:

ArcGIS中生成蜂窝多边形算法解析_泰森多边形_04

注意,渔网生成工具,在10.4之前,位置在:

ArcToolbox ——Data Management Tools —— Feature Class工具箱下面


但是在10.4之后,位置移动到了:

ArcToolbox ——Data Management Tools ——Sampling 工具箱下面


在生成渔网的时候,一定要注意一个细节问题:

ArcGIS中生成蜂窝多边形算法解析_泰森多边形_05


也就是高度宽度比,一定是1.5:1,如果不这样设置,那么你的六边形就会变成四边形了……切记切记。


另外我们使用的是Label Point(也就是渔网的中心点)。


生成完成之后,将这个渔网的中心点复制一份,如下:

ArcGIS中生成蜂窝多边形算法解析_空间统计_06


然后把label2移动到label1的对角中心位置上去,可以用渔网的交点进行参考校正,如下:

ArcGIS中生成蜂窝多边形算法解析_泰森多边形_07



移动完成之后,变成了下面这个样子:

ArcGIS中生成蜂窝多边形算法解析_蜂窝多边形_08


接下去,把这个两个点图层合并起来,合并的工具用Merge或者append都可以,自选,合并完成之后,把这个合并完成的点图层,作为泰森多边形的中心点,生成太泰森多边形,如下:

ArcGIS中生成蜂窝多边形算法解析_蜂窝多边形_09


泰森多边形工具在

ArcToolbox —— Analysis Tools —— Proximity —— Create Thiessen Polygons


生成完成之后,如下:

ArcGIS中生成蜂窝多边形算法解析_空间统计_10


然后把周边多余的部分裁掉:

ArcGIS中生成蜂窝多边形算法解析_空间统计_11

蜂窝多边形到此完成……


这一系列过程,可以通过脚本来实现,工具都已经给出了,有兴趣的同学可以自己写脚本来做。


有以下几个地方需要注意:


1、生成渔网得时候,需要大于你要覆盖的区域,根据80/20原则,你生成的渔网得extent最好大于你区域的20%左右。


2、渔网的高度和宽度比,大约在1:1.5左右,这个比例根据空间参考的不同,可以适当的微调。


3、最好用投影坐标系。


4、如果格网窗口太小,那么生成的渔网太多,会很慢很慢。


当然,里面还挖了一个坑……就是泰森多边形的算法,这个东东是我见过的最简单粗暴的算法……灰常灰常简单,有空


我们再说了。


蜂窝多边形的脚本工具,有需要的可以给我发邮件:allenlu2008@163.com。



举报

相关推荐

0 条评论