【发布时间】:2019-11-04 04:49:26
【问题描述】:
我是 python 新手,不知道如何处理这个任务: 我有 2 个数据帧,我需要为点数据帧中的每个点找到轨迹数据帧中的 2 个最近点
轨迹数据框:
datetime lon_deg lat_deg
2501 28.03.2018 11:58 13.35994653 48.59990204
2502 28.03.2018 11:58 13.35880586 48.60004335
2503 28.03.2018 11:59 13.35766636 48.600205100000004
2504 28.03.2018 11:59 13.35653218 48.60039648
2505 28.03.2018 12:00 13.35539451 48.60058775
2506 28.03.2018 12:00 13.35426064 48.60079647
2507 28.03.2018 12:01 13.3531299 48.60096096
2508 28.03.2018 12:01 13.352004 48.60099219
点数据框:
datetime lon_deg lat_deg
2018-01-29 08:08:59.000 13.359284659333333 48.600108882
29.01.2018 8:09 13.358371081166666 48.60023545666667
2018-01-29 08:09:19.000 13.358347605833334 48.600238692333335
29.01.2018 8:09 13.358324105166666 48.600241913333335
2018-01-29 08:09:20.000 13.358300611666667 48.600245154666666
29.01.2018 8:09 13.358277134 48.600248416
2018-01-29 08:09:21.000 13.358253648166666 48.60025165216667
2018-01-29 08:09:54.000 13.356701967 48.60046564733333
29.01.2018 8:09 13.356678427 48.6004688765
2018-01-29 08:09:55.000 13.356654635 48.6004718285
29.01.2018 8:09 13.356443313166666 48.600502414833336
2018-01-29 08:10:00.000 13.356419901333334 48.60050610933333
29.01.2018 8:10 13.356396262666667 48.600509612
2018-01-29 08:10:09.000 13.355999669 48.6005754975
29.01.2018 8:10 13.355976287333334 48.600579365
2018-01-29 08:10:10.000 13.355952748166667 48.60058305983333
29.01.2018 8:10 13.355929286666667 48.600586781666664
2018-01-29 08:10:11.000 13.355905869 48.6005904815
29.01.2018 8:10 13.355882745166667 48.60059446966667
2018-01-29 08:10:12.000 13.355859396333333 48.600598258666665
29.01.2018 8:10 13.3558361535 48.600602143
2018-01-29 08:10:13.000 13.355812639 48.600605769
29.01.2018 8:10 13.355789295666666 48.60060949333333
2018-01-29 08:10:14.000 13.355765727833333 48.60061298866667
29.01.2018 8:10 13.355742236833333 48.60061659483333
2018-01-29 08:10:15.000 13.3557187615 48.60062014216667
29.01.2018 8:10 13.355695496166666 48.60062391466667
2018-01-29 08:10:16.000 13.35567225 48.600627667833336
29.01.2018 8:10 13.355649023166666 48.600631406
2018-01-29 08:10:17.000 13.355625505 48.60063494533333
29.01.2018 8:10 13.3556019655 48.60063844983333
2018-01-29 08:10:18.000 13.355578551333334 48.60064199316667
29.01.2018 8:10 13.355461117166668 48.60065928433333
2018-01-29 08:10:21.000 13.355437626833334 48.600662660333334
2018-01-29 08:10:24.000 13.3552968655 48.600682845166666
29.01.2018 8:10 13.3552734295 48.600686212333336
2018-01-29 08:10:25.000 13.355249975 48.600689552333336
2018-01-29 08:10:29.000 13.355062269 48.6007157075
29.01.2018 8:10 13.355038871833333 48.60071868083333
2018-01-29 08:10:30.000 13.355015400166666 48.6007218995
29.01.2018 8:10 13.354991943833333 48.60072502533333
2018-01-29 08:10:31.000 13.354968547333334 48.60072815216667
29.01.2018 8:10 13.353912527 48.60085315883333
2018-01-29 08:10:54.000 13.353889066666667 48.60085595533333
2018-01-29 08:11:00.000 13.353607144333333 48.60088610016667
我将不胜感激!
【问题讨论】:
-
两个数据集的时间矩(最左边的名为 datetime 的列)似乎非常不同。它们有什么相关性还是可以忽略?第二,你想用什么样的地球模型:地球形状的球面近似还是更真实的大地测量椭球体表示(椭球体更复杂)?
-
在我的情况下,Datatime 就像点的 id 以知道这是什么意思。我在想把坐标转换成UTM坐标系,对吗?
-
你使用什么坐标并不重要,更重要的是你是否有正确的方法来测量距离。我个人认为转换为 UTM 是昂贵的、费力的和不必要的。您只需要使用球体或椭球体(无论您使用哪种地球模型)的度量张量来测量点之间的距离。对于您要检查的每个点与参考轨迹的距离,只需使用笛卡尔坐标和距离的线性校正,来自在该点评估的度量张量。
-
所以我可以使用地心(笛卡尔)坐标x,y?在这种情况下,我可以使用哪个公式来计算距离?
-
不,地心笛卡尔坐标是三维的。我的意思是二维坐标,可以认为是在给定点与地球表面相切的平面上的坐标。