gis六边形⽹格_ArcGIS中实现指定⾯积蜂窝(正六边形)⽅法本篇博⽂为博主(whgiser)原创,转载请注明。 空间聚集研究中,地理尺度⼤多数都是基于格⽹构建的,只需fishnet下就⾏了。也常有使⽤社区、交通⼩区(TZ)作为研究单元的。直到发现蜂窝⽹络做出的炫酷效果,迫不及待想试⼀下。六边形可以说其⼏何描述⾮常完美,但Arcgis并没有提供直接的⼯具⽣成正六边形。 受博⽂启发,该博⽂阐述了利⽤泰森多边形⽅法⽣成蜂窝,但是⽂章中没讲具体如何去算长度,只是基于⼤概绘制的,并且提到fishnet宽⾼⽐为1.5,其实是不精确的,画出来的并不是严格意义上的正六边形。经推理,假设需求的蜂窝单元为**平⽅公⾥或公顷,根据⼏何推导,可准确计算各个参数的值,从⽽能绘制出准确的蜂窝⽹络。具体推导如下: 现在实践检验下。假设现在需要⽣成1平⽅公⾥的蜂窝⽹络,按如上推导,其各个参数计算如下:
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】
mediaringtalkarea:1000000l:620.403239cellWidth:1861.209718cellHeight:1074.569932deltaX:930.604859deltaY:537.284966
氢键smzb接下来介绍在Arcgis中的实现,分三步⾛。
第⼀步,⽣成 fishnet。设置模板范围为研究对象,像元宽度和⾼度值设置为cellWidth 和 cellHeight,注意勾选创建标注点,设置运⾏环境即可。 第⼆步,复制上⼀步⽣成的点⽂件,打开编辑,设置移动距离X = deltaX,Y=deltaY,对点进⾏偏移。然后将偏移后的点和第⼀步⽣成的点进⾏合并。⾄此,已完成前期所有⼯作。内容如下:
特区报第三步,运⽤泰森多边形⼯具,⽣成⽹络,删去周边不需要的多边形,即可得到结果。经⾯积验证,基本上为1平⽅公⾥,会有很⼩的精度误差,这是由于计算过程中精度损失,可忽略不计。
在⾃⼰动⼿实现蜂窝⽹络过后,发现还是满有意思的操作。另外,如果不想这么⿇烦去算的话,推荐⼀个直接⽣成的⼯具Create Hexagon Tessellation,适⽤于Arcgis 10.2版本。