【发布时间】:2016-09-09 23:04:18
【问题描述】:
我目前有一个坐标列表
[(52.14847612092221, 0.33689512047881015),
(52.14847612092221, 0.33689512047881015),
(52.95756796776235, 0.38027099942700493),
(51.78723479900971, -1.4214854900618064)
...]
我想将此列表拆分为 3 个单独的列表/datafames,对应于它们最接近的城市(在这种情况下,坐标都在英国,3 个城市是曼彻斯特、加的夫和伦敦)
因此,在最终结果中,我希望将当前的单个坐标列表理想地拆分为单独的列表,或者它可以是具有 3 列的数据框,例如:
leeds cardiff london
(51.78723479900971, (51.78723479900971, (51.78723479900971,
-1.4214854900618064) -1.4214854900618064) -1.4214854900618064)
(这些显然不是正确的坐标!)
-希望这是有道理的。它不必过于准确(不必考虑地球的曲率或类似的东西!)
我真的不知道从哪里开始 - 我对 python 很陌生,如果有任何帮助,我将不胜感激! 提前致谢
【问题讨论】:
-
您能否展示一下您希望输出的样子?
-
我添加了更多详细信息,但我希望输出为 3 个列表(或者这可能是数据框中的列 - 这更容易),每个列表中的数据是最接近的坐标到城市(曼彻斯特、伦敦、加的夫)
-
@hsquared 到目前为止你做了什么?你搜索过SO还是谷歌? for example
-
是的,我已经看过了,但找不到可以为我的情况工作的另一个例子。例如,您发布的示例不会从一个列表中获取坐标并将坐标保存到不同的列表中,结果取决于它更接近哪个坐标。我也不需要考虑地球的曲率。
-
这是 KD-trees 的完美工作,尤其是在坐标数量很大的情况下:参见 scipy.spatial.cKDTree。它需要一些阅读和寻找关于 SO 的示例,但对于快速最近邻查找来说,这是一个非常有用的解决方案。
标签: python geospatial geopy