Разница между функцией distm и distVincentyEllipsoid в R - PullRequest
4 голосов
/ 29 мая 2020

Не могли бы вы полностью объяснить большую разницу в использовании функции distm или distVincentyEllipsoid для вычисления расстояния геодезических c координат в R?

Я заметил, что использование distm для этого расчета , это займет гораздо больше времени. Не могли бы вы объяснить мне без разницы, почему это происходит?

Спасибо!

1 Ответ

2 голосов
/ 31 мая 2020

Следуя вашему предыдущему вопросу здесь: Оптимизация вычисления расстояния в R

Скорость относится к уровню вычислений, необходимых для создания возвращенного объекта, не обязательно разнице между вычислением расстояний (я не уверен, какое вычисление большого круга функция distm() использует по умолчанию). Действительно, документация geosphere:: здесь: https://cran.r-project.org/web/packages/geosphere/geosphere.pdf предполагает, что расчет distVincentyEllipsoid() является «очень точным», но «вычислительно более интенсивным», чем другие методы большого круга, хотя это может заставить вас подозревать более медленное вычисление, это это из-за того, как я структурировал код в моем ответе, чтобы возвращать вектор расстояний между каждой строкой (а не матрицу расстояний между каждой точкой).

И наоборот, расчет distm() в исходном коде возвращает матрицу из нескольких векторов между каждой точкой. Для вашей проблемы в этом нет необходимости, если данные упорядочены, поэтому я так и сделал. Кроме того, использование иерархической кластеризации для кластеризации точек на основе этих расстояний в 3 (определенное вами число) кластеров также не обязательно, поскольку мы можем использовать процентиль расстояний между значениями каждой точки, чтобы сделать то же самое. Опять же, выигрыш в скорости связан с вычислением кластеров по одному вектору, а не по матрице.

Обратите внимание: я аналитик данных с опытом работы в области бухгалтерского учета / финансов и ни в коем случае не специалист по ГИС. При этом мое использование функции distVincentyEllipsoid() исходит из моего общего понимания, что она возвращает довольно точную оценку расстояний большого круга в виде вектора (в отличие от матрицы). Более того, использовав это в прошлом для оптимизации логистических операций для целей ценообразования, я могу засвидетельствовать тот факт, что эти расчеты были протестированы на рынке и признаны надежными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...