gpt4 book ai didi

python - 如何检查形状文件多边形包含纬度和经度点的 numpy meshgrid

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:03 25 4
gpt4 key购买 nike

我有形状为 1750 X 1750 的纬度和经度点的 numpy 网格及其相同形状的相应数据(降雨量)。我需要找到落在多边形内的数据点的平均值,从形状文件中读取。

如果我的逻辑是正确的,我必须找出落在多边形内的纬度和经度点的索引,然后使用该索引过滤数据,然后进行平均。

我已经使用 Inpolygon 函数在 Matlab 中成功实现了它,但我想用 Python 重写代码。我使用了 matplotlib Path.contains_points 函数,但它不适用于 numpy ND 数组。

谁能推荐一种合适的方法?非常感谢您的帮助。

最佳答案

要检查多边形是否包含一些点,您可以简单地使用 matplotlib,更准确地说,Path.contains_pointsmatplotlib.path 中实现是解决方案。它确实接受 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模块,它具有更通用的处理地理空间数据的实现。

关于python - 如何检查形状文件多边形包含纬度和经度点的 numpy meshgrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com