本篇博文为博主(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版本。对象