这可能是一个幼稚的问题,但作为QGIS的新用户,我一直在努力。
我有一个非常大的shapefile(275,000个点,但是可以将其分成大约10个子区域,以便进行更快的处理)。
我想识别200米之内没有其他点的所有点,然后在文件的字段中用值“ unique”对每个点进行编码。
然后,对于属于本地集群的所有其他点,我想将其编码为“集群”。
实现这一目标后,我想为每个群集随机选择一个,以保留在数据集中,而丢弃其他群集。
目前,我无法完成第1步,因此欢迎您提供任何帮助。
这可能是一个幼稚的问题,但作为QGIS的新用户,我一直在努力。
我有一个非常大的shapefile(275,000个点,但是可以将其分成大约10个子区域,以便进行更快的处理)。
我想识别200米之内没有其他点的所有点,然后在文件的字段中用值“ unique”对每个点进行编码。
然后,对于属于本地集群的所有其他点,我想将其编码为“集群”。
实现这一目标后,我想为每个群集随机选择一个,以保留在数据集中,而丢弃其他群集。
目前,我无法完成第1步,因此欢迎您提供任何帮助。
Answers:
您还可以尝试使用QGIS中的NNJoin插件进行自我连接。
对于输入层的每个要素,它将找到最接近的要素(如果是自连接,则不包括自身),并在生成的数据集中包括距离和最接近的要素的所有属性。您的数据集将需要一些时间(我尝试使用具有约175000个要素的点数据集,这需要几分钟的时间...)。
您可以使用“向量”>“分析工具”>“距离矩阵”,以及一个联接来实现您的要求。
我将以qgis示例数据机场的层为例。这是一个很小的数据集,所以我不确定如何使用275000点shapefile。
1.使用图层作为目标和目标创建距离矩阵。
不要忘记勾选“仅使用最近的(k)个目标点”并将其设置为1。
2.打开带有添加定界文本层的CSV文件
选择“逗号”作为分隔符,并将几何定义设置为“无几何”
3.使用新创建的表在原始层中创建联接
4.使用字段计算器填充所需值的字段
由于有了连接,我们现在可以从机场属性表中访问距离表值,因此创建新字段并根据距离矩阵值填充“聚集”和“唯一”值非常容易。由于我的示例数据我使用了值1200000(1200 km),因此您应该将其调整为适合您的情况(200)。
最后,您的图层应具有一个名为point_type的新字段,该字段根据到最近点的最小距离而具有不同的值。