Понимание функции R и поиск ее эквивалента в Python 3 - PullRequest
0 голосов
/ 14 июня 2019

У меня есть функция R, которую я не могу полностью понять, и я также хотел бы знать, что будет ее точным эквивалентом в Python. Это код:

distGeo(as.matrix(all_df[,c('longitude','latitude')]), c(0,0))

Я знаю, что здесь используется библиотека geosphere, и я также знаю, что этот код используется для получения геодезического расстояния между 2 точками. Но я не могу понять, как это работает здесь. в документации geosphere для этой функции distGeo говорится, что p1 может быть вектором координат широты или матрицей из 2 столбцов.

Я вижу, что широту здесь принимают за матрицу с этими 2 столбцами с широтой и долготой, но позже у нас есть часть p2, они говорят, что это должна быть вторая контрольная точка для расчета геодезического расстояния от. А если отсутствует p2, то расстояние вычисляется между точками, указанными в p1.

Теперь вопрос: каково будет значение p2 в этом случае? Это вектор c(0,0)? или вычисляется расстояние между широтой и долготой, переданное в p1? если да, то как это вообще возможно, поскольку расстояние будет рассчитываться между одним вектором координат широты и одним вектором координат долготы? чтобы получить что-то осмысленное, нужно рассчитать расстояния между 2 парами полных координатных векторов, верно?

И самое главное, какова роль вектора c(0,0) здесь? и что будет точным эквивалентом этой строки кода в Python 3?

Я видел 2 пакета, которые могут справиться с этим, один пакет Geopy, а второй пакет pyproj. Но здесь мы должны указать тип эллипсоида, который мы используем для проецирования наших координат, и в фрагменте кода R не указан тип эллипсоида, кажется, что это не обязательный аргумент для передачи в функцию distGeo для вычисления расстояния.

Любая помощь с этим будет высоко ценится. Заранее большое спасибо

...