我有两个不同长度的数组。一个包含shapely多边形,另一个包含shapely点。我想办一个_多边形。包含(a_点)两个数组中每个可能的元素组合的shapely函数。在
我正在研究this post,因为构建一个包含行中所有可能组合的两列矩阵可能是一个理想的中间步骤。但是当输入数据很大时,'cartersian(arrays)'函数中的循环可能会影响性能。在
我试着广播其中一个数组,然后应用shapely函数:
Polygons_array[:,newaxis].contains(Points_array)
但这当然行不通。我知道最近发布的geopandas库,但它不是我的雨篷安装选项。在
下面的代码演示如何对包含在两个不同长度数组中的几何对象应用函数。这种方法避免使用循环。熊猫的应用和纽比的。矢量化和广播选项是必需的。在
首先考虑执行一些导入操作和以下两个数组:
通过以下步骤可以获得包含多边形和点的几何对象的数组:
^{pr2}$现在,要应用于两个数组的函数已定义并矢量化:
这样,函数就可以应用于向量中的每个元素。广播点数组处理成对求值:
返回以下数组:
列对应于多边形,行对应于点。该数组中的布尔值显示,例如,第一个点在第二个多边形内。没关系。映射多边形和点将证明这是正确的:
相关问题 更多 >
编程相关推荐