Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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检查纬度/经度坐标是否在多边形内。(考虑到大圆。)_Python_Pandas_Numpy_Polygon_Geo - Fatal编程技术网

如何使用Python检查纬度/经度坐标是否在多边形内。(考虑到大圆。)

如何使用Python检查纬度/经度坐标是否在多边形内。(考虑到大圆。),python,pandas,numpy,polygon,geo,Python,Pandas,Numpy,Polygon,Geo,我有一个数据框,其中包含lat/lon坐标: Lat Lon 29.39291 -98.50925 29.39923 -98.51256 29.40147 -98.51123 29.38752 -98.52372 29.39291 -98.50925 29.39537 -98.50402 29.39343 -98.49707 29.39291 -98.50925 29.39556 -98.53148 以下是构成多边形的坐标: Lat

我有一个数据框,其中包含lat/lon坐标:

      Lat       Lon
 29.39291 -98.50925
 29.39923 -98.51256
 29.40147 -98.51123
 29.38752 -98.52372
 29.39291 -98.50925
 29.39537 -98.50402
 29.39343 -98.49707
 29.39291 -98.50925
 29.39556 -98.53148
以下是构成多边形的坐标:

       Lat        Lon
 29.392945 -98.507696
 29.406167 -98.509074
 29.407234 -98.517039
 29.391325 -98.517166
我想检查每个坐标(从第一个数据帧开始)是否在多边形内,使用Python并考虑大圆

预期结果:

      Lat       Lon  Within
 29.39291 -98.50925       1
 29.39923 -98.51256       1
 29.40147 -98.51123       1
 29.38752 -98.52372       0
 29.39291 -98.50925       1
 29.39537 -98.50402       0
 29.39343 -98.49707       0
 29.39291 -98.50925       1
 29.39556 -98.53148       0
从这里开始,假设多边形的数据帧为df_poly,点为df_points

from shapely.geometry import Point
from shapely.geometry.polygon import Polygon

polygon = Polygon([tuple(x) for x in df_poly[['Lat', 'Lon']].to_numpy()])
df_points['Within'] = df_points.apply(lambda x: polygon.contains(Point(x['Lat'], x['Lon'])), axis=1)