Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中查找多边形(现在是2D数组)内的点_Python_Arrays_Polygon_Shape - Fatal编程技术网

在Python中查找多边形(现在是2D数组)内的点

在Python中查找多边形(现在是2D数组)内的点,python,arrays,polygon,shape,Python,Arrays,Polygon,Shape,我一直在寻找答案,但我认为没有答案 我有一个曾经在pcolormesh上绘制的二维数组,如下图所示: 它不是一个简单的多边形,即正方形,而是一个相当复杂的多边形。忽略边上的不同颜色,并假设它是0(白色)和1(红色)。它定义了一个lat/lon区域。 然后是黑点,这是点的位置 我需要确定哪个黑点落在该区域(红色部分,我有1个)。我只需要该区域的黑点总数 一定有一种简单的方法可以做到这一点,但我到目前为止还没有找到。为什么不在2D数组中迭代并检查每个点的颜色值呢。如果等于1,则增加一个计数器。想不

我一直在寻找答案,但我认为没有答案

我有一个曾经在pcolormesh上绘制的二维数组,如下图所示:

它不是一个简单的多边形,即正方形,而是一个相当复杂的多边形。忽略边上的不同颜色,并假设它是0(白色)和1(红色)。它定义了一个lat/lon区域。 然后是黑点,这是点的位置

我需要确定哪个黑点落在该区域(红色部分,我有1个)。我只需要该区域的黑点总数


一定有一种简单的方法可以做到这一点,但我到目前为止还没有找到。

为什么不在2D数组中迭代并检查每个点的颜色值呢。如果等于1,则增加一个计数器。想不出比这更简单的了。谢谢!二维阵列的分辨率为0.25度。lat/lon数据的分辨率可以更高。当然,我可以把他们围起来,做循环。我确实想过这个。然而,我有很多点和区域,我希望能找到一些简单的方法,比如在这些线上涂上口罩,否则会花很长时间。我想我的问题不清楚-我需要计算哪些黑点落在红色区域,而不是我有多少个红点。我已经更正了文本。如果你的多边形不是凸的,我认为没有简单的捷径。啊,我只是想到了另一种方法,但它应该是一种非常糟糕的(性能方面的)方法。可以将点分配到python集中。您应该存储在集合中的内容应该类似于包含x和y坐标的字符串(字符串可以散列),这样您就可以知道它是哪一点。如果您可以创建两个集合,一个是红点,另一个是黑点,那么它们之间的简单相交应该只提供两个集合的公共点,即红色区域上的黑点。检查这里如何创建集合