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】 area:1000000 l: 620.403239 cellWidth: 1861.209718 cellHeight: 1074.569932 deltaX: 930.604859 deltaY: 537.284966
接下来介绍在Arcgis中的实现,分三步走。
第一步,生成 fishnet。设置模板范围为研究对象,像元宽度和高度值设置为cellWidth 和 cellHeight,注意勾选创建标注点,设置运行环境即可。
第二步,复制上一步生成的点文件,打开编辑,设置移动距离X = deltaX,Y=deltaY,对点进行偏移。然后将偏移后的点和第一步生成的点进行合并。至此,已完成前期所有工作。内容如下:

第三步,运用泰森多边形工具,生成网络,删去周边不需要的多边形,即可得到结果。经面积验证,基本上为1平方公里,会有很小的精度误差,这是由于计算过程中精度损失,可忽略不计。
在自己动手实现蜂窝网络过后,发现还是满有意思的操作。另外,如果不想这么麻烦去算的话,推荐一个直接生成的工具Create Hexagon Tessellation,适用于Arcgis 10.2版本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?