我有一个农村宽带数据点(有多快等)的矢量数据集,我想探讨是否存在具有相似特征的点簇,并绘制包含它们的多边形。
例如,在一个分布在景观上的单个PostGIS数据集中,我可能有45,000个点。我想确定彼此位于x公里以内且速度低于y kbps的群集,并为每个合格群集生成凸包。
例如,在QGIS中是否有一种简单的方法?
我有一个农村宽带数据点(有多快等)的矢量数据集,我想探讨是否存在具有相似特征的点簇,并绘制包含它们的多边形。
例如,在一个分布在景观上的单个PostGIS数据集中,我可能有45,000个点。我想确定彼此位于x公里以内且速度低于y kbps的群集,并为每个合格群集生成凸包。
例如,在QGIS中是否有一种简单的方法?
Answers:
我结合了一些建议中的一些内容,并添加了一些自己的建议,找到了一个对我来说非常有效的解决方案-所有这些都来自QGis!
我首先运行一个PostGis SELECT来查找具有正确公共属性并且位于彼此x公里之内的点:
SELECT DISTINCT s1.postcode,s1.the_geom,s1.gid从宽带数据AS s1加入宽带数据AS s2 ON ST_DWithin(s1.the_geom,s2.the_geom,1000)WHERE s1.postcode!= s2.postcode AND s1.fastest_bband
(从曼宁的出色的《PostGis in Action》一书中可以看出,只添加了一个自我联接)
然后,我加载了Carson Farmer的ManageR插件,并导入了该图层。在这里,我跟着建议PAM聚类过程在这里,并出口的结果是形文件上凸包上的是,使用fTools秒计算(卡森确实得到解决!)。
尽管不是QGIS解决方案,但我个人还是选择使用SaTScan进行一些探索性分析。它速度快,文档齐全且应用广泛,因此您在启动时不会遇到麻烦。45k点可能需要一些RAM。
我不确定它是否可以直接从Postgres读取,但可以轻松地从dbf和文本文件导入。
然后可以将分析的输出轻松地读回Postgres或QGIS。您可以决定搜索圆形群集或椭圆形(如果数据中存在特定类型的住区,例如长形的城市/山谷中的村庄等,则可能有用)。然后,您可以生成多边形或椭圆形,或仅显示属于聚类的位置。
为了在Google Earth中快速预览结果,您还可以使用NAACCR的SaTScan到Google Earth转换工具。
重要的是-如果您决定运行蒙特卡洛模拟(我认为最低限度为99),您还可以说出有关群集统计意义的一些信息。至少在过去的二十年中,对这些聚类的解释和论证将是另一个问题,因为它在空间科学中已经进行了辩论(至少我认为是)。
您可以尝试运行纯粹的空间分析,以查找高,低或高和低值的群集。如果您的数据(每天,每周汇总)中有一些时间属性,那么我认为运行一些时空模型真的很有趣。
SciPy有一个集群包(用于python),您可以在python控制台中使用它,编写一个简单的插件即可,也可以在postgis中使用PL / python。
http://docs.scipy.org/doc/scipy/reference/cluster.html
分析之后,只需使用f工具创建凸包。
您可以尝试使用Ftools插件。 Vector
> Geoprocessing Tools
> Convex Hulls
。
有一个选项Create convex hulls based on input field
,输入字段参数应来自输入点的属性。