【发布时间】:2018-08-22 07:17:32
【问题描述】:
我有一个经纬度坐标数组,我正在尝试使用 KDTree 和 scipy 的 query_ball_point 返回指定纬度和经度 1 英里半径内的所有数据点。
问题在于query_ball_point 返回的点超出了指定的 1 英里半径。这是我的代码:
import pandas as pd
import scipy as sp
import geocoder
import pysal as psl
search_list = df['coordinates'].tolist()
tree = psl.cg.KDTree(search_list, distance_metric='Arc', radius=psl.cg.RADIUS_EARTH_MILES)
latlong = (39.698840000000004, -104.975916)
index = tree.query_ball_point(latlong,r=1)
结果是一个坐标数组,如下所示:
+---------------------------------------+
| coordinates |
+---------------------------------------+
| (39.676973877551, -104.966231826172) |
| (39.6777407534644, -104.988982458831) |
| ... |
+---------------------------------------+
当我尝试使用半正弦公式验证这些结果时,我看到第一个坐标是 1.6 英里
from haversine import haversine
haversine((39.676973877551, -104.966231826172),
(39.698840000000004, -104.975916),miles=True)
1.5961362762187963
【问题讨论】:
标签: python scipy geolocation geospatial latitude-longitude