我有一个农村宽带数据点(有多快等)的矢量数据集,我想探讨是否存在具有相似特征的点簇,并绘制包含它们的多边形。

例如,在一个分布在一个景观上的单个PostGIS数据集中,我可能有45,000个点。我想确定彼此位于x公里以内且速度低于y kbps的群集,并为每个合格群集生成凸包。

例如,在QGIS中是否有一种简单的方法?

评论

您可能要注意宽带的性质。市区内将发生高速行驶;工业集团;沿CO,调制解调器和其他光纤/电缆/ DSL基础设施的道路辐射;并从某些蜂窝塔广播(取决于您对“宽带”的定义)。因此,高速将看起来像是群集,而较低的速度看起来像是群集中的间隙。特别是,凸包不太可能成为对低速区域的恰当描述。最好知道您打算如何解释发现的任何“簇”。

谢谢您的帮助。我正在研究更多的农村地区,由于街道橱柜和电线杆上的直接馈电线路的分布以及区域的地理位置,有线宽带的体系结构可能引发更多不寻常的情况。结果,您确实找到了集群,它们可以作为构建本地解决方案的有用起点,并且可以是制定策略的重要步骤。实际上,您甚至可以在市区找到它们,这通常是由于工业遗产或铁路和河流之类难以穿越的东西。

#1 楼

我结合了一些建议,并添加了一些自己的建议,找到了一个对我来说很有效的解决方案-所有这些都来自QGis!具有正确的公共属性,并且彼此之间相距不超过x公里:


SELECT DISTINCT s1.postcode,s1.the_geom,s1.gid
FROM宽带数据AS s1加入宽带数据AS s2
ON ST_DWithin(s1.the_geom,s2.the_geom,1000)
s1.postcode!= s2.postcode
AND s1.fastest_broadband <= 2000


(与Manning的出色的PostGis in Action书籍相当,只添加了一个自我联接)。

然后我加载了Carson Farmer的ManageR插件,并导入了该图层。从这里开始,我遵循了建议的PAM聚类过程,并将结果导出到一个形状文件,使用fTools在几秒钟内计算了Convex Hulls(Carson确实可以解决!)。

评论


《 PostGIS in Action》第一版现已绝版。这是第二版manning.com/books/postgis-in-action-second-edition的链接,以及第一章的免费manning-content.s3.amazonaws.com/download/a/…的链接,该链接为非常适合开始获取PostGIS的图片

– MartinHügi
17 Mar 17 '17 at 23:01

#2 楼

尽管不是QGIS解决方案,我个人还是选择使用SaTScan进行一些探索性分析。它速度快,文档齐全且应用广泛,因此您在启动时不会遇到麻烦。 45k点可能需要一些RAM。

我不确定它是否可以直接从Postgres读取,但可以轻松地从dbf和文本文件导入。然后可以轻松地读回Postgres或QGIS。您可以决定搜索圆形群集或椭圆形(如果数据中存在特定类型的住区,例如长形的城市/山谷中的村庄等,则可能有用)。然后,您可以生成多边形或椭圆形,或仅显示集群成员的位置。

要在Google Earth中快速预览结果,您还可以使用NAACCR的SaTScan到Google Earth转换工具。 >
重要的是-如果您决定运行蒙特卡洛模拟(我认为最小为99),您还可以告诉您有关群集统计意义的信息。至少在过去的二十年中,这个聚类的解释和论证将是另一个问题,因为至少在过去的二十年中,它在空间科学中一直在争论(

)。高,低或高&低值。如果您的数据(每天,每周汇总)中有一些时间属性,那么我认为运行一些时空模型真的很有趣。

评论


看起来不错-很好的答案

– Mapperz♦
2011年6月22日14:11

#3 楼

SciPy有一个集群包(用于python),您可以在python控制台中使用它,编写一个简单的插件来做到这一点,或者在postgis中使用PL / python。 /doc/scipy/reference/cluster.html

分析之后,只需使用f-tools来创建凸包。

评论


我是一个简单的用户,几乎没有python经验,但是我来看一下-我知道我需要学习!

–阿德里安
2011年6月22日12:52

SciPy聚类是否考虑了点之间的空间关系?

– radek
2011年6月22日15:11

您只需为点的x和y坐标添加两个协变量即可。

–乔斯
2011年6月22日在16:44

#4 楼

这里有一个类似的示例,说明您想使用R和GRASS做什么。或者,您可能想要使用建议的scipy的聚类工具,然后使用此方法进行凸包计算。

#5 楼

您可以尝试使用Ftools插件。 Vector> Geoprocessing Tools> Convex Hulls

Create convex hulls based on input field有一个选项,输入字段参数应该来自输入点的属性。

评论


谢谢您的帮助。凸包壳位将创建多边形,但无法确定簇是否存在或它们可能在何处。我真的很想找到一种方法,将具有相似特征的点首先彼此关联。我猜想我需要运行一些脚本来唯一标识集群的存在并为每个集群的成员更新postgis表中的其他字段。例如,创建Delaunay三角剖分并过滤掉三角形的边长超过x km的所有点,但是我不知道该怎么做

–阿德里安
2011年6月22日10:49