检查哪些地理点在哪个多边形中

时间:2021-01-21 20:45:34

标签: python geospatial gdal shapefile point-in-polygon

当点数很多时,如何有效地为一个点分配一个多边形的列值?

这是此处发现的问题的扩展(多对多版本):Check if a geopoint with latitude and longitude is within a shapefile

我有一组点(约 1.84 亿 x 2d numpy 数组)和一个包含 10 万个多边形的大型 shapefile(它们不重叠)。

在 R 中有一个 points %over% polygons 运算符,使得 SetSpatialFilter 返回一个长度为点的多边形数组,其中多边形是点所在的多边形或 NaN。 R 无法扩展、占用 RAM 并且速度很慢,因此不是一种选择。

问题是提到的相关问题中的解决方案很慢(1000分需要20秒)。如果不是更改 wkbMultiPoint 中的单点位置,而是先用点填充 CREATE TABLE [TABLE_1] ( ID decimal(28,6) NULL, S_DATE datetime NULL, NR decimal(28,6) NULL, ); INSERT INTO TABLE_1 (ID, S_DATE, NR) VALUES (1, '2020-01-01', 1), (1, '2020-01-01', 2), (1, '2020-05-02', 3); ,2000 万个点(大多数在多边形外)只需要 13 分钟。 速度很好,但我无法知道哪个特征属于哪个点。我将 2000 万个点放入多点,但只得到 1608 个特征,我需要这些特征等于输入的长度或至少通过索引相关。

不必是地理空间计算,因为投影是以米为单位的东西方和北方。

0 个答案:

没有答案