如何检查形状文件多边形是否包含经纬点的numpy meshgrid

2024-09-28 01:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有了形状为1750 X 1750的lat和lon点的numpy meshgrid及其相应的数据(降雨)相同的形状。我需要从一个形状文件中找到多边形内的数据点的平均值。在

如果我的逻辑是正确的,我必须找出落在多边形内部的lat和lon点的索引,然后用这个索引过滤数据,然后求平均值。在

我已经用Inpolygon函数在Matlab中成功地实现了它,但是我想用Python重写代码。我用过matplotlib路径。包含\u点函数,但它在numpy ND数组上不起作用。在

有谁能提出一个合适的方法吗? 我们将非常感谢你的帮助。在


Tags: 文件数据函数代码numpy逻辑多边形平均值
1条回答
网友
1楼 · 发布于 2024-09-28 01:24:52

要检查多边形是否包含某些点,可以简单地使用matplotlib,更准确地说,matplotlib.path中实现的Path.contains_points就是解决方案。它接受ND阵列,你只需事先将它们展平

import numpy as np
from matplotlib.path import Path

X, Y = np.meshgrid(x, y)  # X, Y are 2D ndarrays
XY = np.dstack((X, Y))
XY_flat = XY.reshape((-1, 2))

mpath = Path( vertices ) # the vertices of the polygon
mask_flat = mpath.contains_points(XY_flat)
mask = mask_flat.reshape(X.shape)  

或者,您可以看看GeoPandas模块,它有更通用的实现来处理地理空间数据。在

相关问题 更多 >

    热门问题