ArcGIS中实现指定面积蜂窝(正六边形)方法

  本篇博文为博主(whgiser)原创,转载请注明。html

  空间汇集研究中,地理尺度大多数都是基于格网构建的,只需fishnet下就好了。也常有使用社区、交通小区(TZ)做为研究单元的。直到发现蜂窝网络作出的炫酷效果,火烧眉毛想试一下。六边形能够说其几何描述很是完美,但Arcgis并无提供直接的工具生成正六边形。网络

  受博文启发,该博文阐述了利用泰森多边形方法生成蜂窝,可是文章中没讲具体如何去算长度,只是基于大概绘制的,而且提到fishnet宽高比为1.5,实际上是不精确的,画出来的并非严格意义上的正六边形。经推理,假设需求的蜂窝单元为**平方千米或公顷,根据几何推导,可准确计算各个参数的值,从而能绘制出准确的蜂窝网络。具体推导以下:工具

 

  如今实践检验下。假设如今须要生成1平方千米的蜂窝网络,按如上推导,其各个参数计算以下:spa

area = 1000000 ## 面积
l = np.sqrt((2*area)/(3*np.sqrt(3))) ##蜂窝边长
cellWidth = 3*l ## 渔网宽度
cellHeight = (np.sqrt(3))*l ## 渔网高度
deltaX = 1.5 * l ## 横向偏移
deltaY = (np.sqrt(3)/2)*l ## 纵向偏移
out】
area:1000000  
l: 620.403239 
cellWidth: 1861.209718 
cellHeight: 1074.569932 
deltaX: 930.604859  
deltaY: 537.284966

   接下来介绍在Arcgis中的实现,分三步走。.net

  第一步,生成 fishnet。设置模板范围为研究对象,像元宽度和高度值设置为cellWidth 和 cellHeight,注意勾选建立标注点,设置运行环境便可。3d

  第二步,复制上一步生成的点文件,打开编辑,设置移动距离X = deltaX,Y=deltaY,对点进行偏移。而后将偏移后的点和第一步生成的点进行合并。至此,已完成前期全部工做。内容以下:code

  第三步,运用泰森多边形工具,生成网络,删去周边不须要的多边形,便可获得结果。经面积验证,基本上为1平方千米,会有很小的精度偏差,这是因为计算过程当中精度损失,可忽略不计。htm

  在本身动手实现蜂窝网络事后,发现仍是满有意思的操做。另外,若是不想这么麻烦去算的话,推荐一个直接生成的工具Create Hexagon Tessellation,适用于Arcgis 10.2版本。对象

相关文章
相关标签/搜索