[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
编程语言
> 详细
ArcGIS中生成蜂窝多边形算法解析
时间:
2016-03-28 15:34:37
阅读:
823
评论:
0
收藏:
0
[点我收藏+]
近来有不少同学,都有问我关于蜂窝多边形的问题,也就是正六边形,也就是下面这个东东:
一般的问答模式如下:
亲们问:ArcGIS里面那个工具可以做这个东东?
虾神答:额,没有原生的工具。
亲们问:那我看很多人都做了啊,这个东东怎么做?
虾神答:嗯,算法很简单……巴拉巴拉巴拉……
亲们:
虾神:……
好吧,既然有如此,今天我们就用一篇文章来简单说说在ArcGIS里面如何做蜂窝六边形的方法。
话说我们做样方分析的时候,最简单的当然是采用矩形,样方样方……里面这个方字用得那是极好的。但是很多精益求
精的同学,觉得方形太图样图森破了,我们怎么能用这么简单的东西呢?我们要用正六边形!
实际上,六边形得几何描述确实要比方形完美得多,对比一下就知道了:
首先在几何里面有“平面镶嵌”这个概念(无间隙且不重叠地覆盖平面),正六边形是边数最多的平面镶嵌图形。(边
越多,越接近理论上的完美图形——圆)
然后正六边形延伸距离都是一样的。
当然,还有更多的好处,我就不列举了。下面进入正题,我们来说说,如何在ArcGIS里面做出正六边形来。
做法如下:
1、首先用ArcGIS里面的渔网工具生成渔网网格:
注意,渔网生成工具,在10.4之前,位置在:
ArcToolbox ——Data Management Tools ——
Feature Class工具箱
下面
但是在10.4之后,位置移动到了:
ArcToolbox ——Data Management Tools ——
Sampling 工具箱下面
在生成渔网的时候,一定要注意一个细节问题:
也就是高度宽度比,一定是1.5:1,如果不这样设置,那么你的六边形就会变成四边形了……切记切记。
另外我们使用的是Label Point(也就是渔网的中心点)。
生成完成之后,将这个渔网的中心点复制一份,如下:
然后把label2移动到label1的对角中心位置上去,可以用渔网的交点进行参考校正,如下:
移动完成之后,变成了下面这个样子:
接下去,把这个两个点图层合并起来,合并的工具用Merge或者append都可以,自选,合并完成之后,把这个合并完成的点图层,作为泰森多边形的中心点,生成太泰森多边形,如下:
泰森多边形工具在
ArcToolbox —— Analysis Tools —— Proximity —— Create Thiessen Polygons
生成完成之后,如下:
然后把周边多余的部分裁掉:
蜂窝多边形到此完成……
这一系列过程,可以通过脚本来实现,工具都已经给出了,有兴趣的同学可以自己写脚本来做。
有以下几个地方需要注意:
1、生成渔网得时候,需要大于你要覆盖的区域,根据80/20原则,你生成的渔网得extent最好
大于你区域的20%
左右。
2、渔网的高度和宽度比,大约在
1:1.5
左右,这个比例根据空间参考的不同,可以适当的微调。
3、最好用
投影坐标系
。
4、如果格网窗口太小,那么生成的渔网太多,会很慢很慢。
当然,里面还挖了一个坑……就是泰森多边形的算法,这个东东是我见过的最简单粗暴的算法……灰常灰常简单,有空
我们再说了。
蜂窝多边形的脚本工具,有需要的可以给我发邮件:allenlu2008@163.com。
ArcGIS中生成蜂窝多边形算法解析
原文:http://blog.csdn.net/allenlu2008/article/details/50996972
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!