使用Python在球坐标中接近大地测量线的点

时间:2018-08-16 13:10:44

标签: python geospatial haversine spherical-coordinate

我正在使用球坐标(lon / lat,haversine metric),并试图找到一种有效的方法来查找所有都靠近大地测量线且其投影在该线上的点。我见过几个可以对空间进行索引或对几何执行动作的库,例如计算相交以及某个几何是否包含另一个几何,但是我没有找到一个可以对球坐标中的几何进行空间索引和动作的库。因此,我自己尝试了一些方法。使用scikit-learn的BallTree对具有hasrsine度量的点进行空间索引和查询,我执行了以下操作:

  • 输入:点,line_point1,line_point2,distance_threshold
  • 对点执行空间索引
  • 通过line_point1和line_point2之间的SLERPing以最大distance_threshold的间隔找到线上的点
  • 对于包括line_point1和line_point2在内的每个插值点,请执行sqrt(2)* distance_threshold的半径查询(以保证没有假负数)。删除重复项并在query_points中获取结果
  • 删除query_points中距离该直线远于distance_threshold的所有点,或将其投影到该直线不在该直线上的位置。可以通过简单的封闭式解决方案来完成。

我想知道是否存在不需要重新发明轮子的更有效,更简单的解决方案。

我在lon / lat -1到1之间的赤道周围均匀分布的10000个坐标上测试了我的实现。我在接收到的输出中附加了image。线本身是青色,蓝色是靠近线的点,橙色棕色是不靠近线的点。

0 个答案:

没有答案