пространственный, чтобы получить расстояние от 3D-точки и массив 3D-точек - PullRequest
0 голосов
/ 15 октября 2018

Проблема

У меня есть местоположение point = [(580991.4677, 4275267.6366, 192.2548)] Я хочу рассчитать расстояние от point до ближайшего местоположения в X и вставить его в точку.Это означает, что dist будет выглядеть примерно так: [(580991.4677, 4275267.6366, 192.2548, <distance value>)] Точка сопоставления не важна, но значение расстояния равно.

Пример данных: X

[(580991.4344, 4275267.6452, 192.3217),
 (580991.4369, 4275267.4457, 192.3945),
 (580991.4375, 4275267.4929, 192.396),
 (580991.4599, 4275267.5186, 192.3361),
 (580991.4644, 4275267.5889, 192.2631)]

Сценарий

Пока что я могу вычислить n-расстояния.Но это вычисление расстояний между точками в массиве X, а не по сравнению с точечным объектом.

import scipy.spatial.distance
dist = scipy.spatial.distance.pdist(X, metric='euclidean')

Результат

array([0.21238253, 0.16948566, 0.12994295, 0.08662361, 0.04722764,
   0.09619756, 0.19628665, 0.06892213, 0.16613856, 0.10144624])

Есть указатели?

1 Ответ

0 голосов
/ 15 октября 2018

Лунка из документов: https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html

scipy.spatial.distance.pdist вычисляет расстояние между каждой парой точек в одном списке.

Если вы хотите рассчитать расстояние между pointи для каждой записи в X вы, вероятно, захотите cdist, которая выполняет следующие действия:

Вычисляет расстояние между каждой парой из двух наборов входных данных.

, поэтомуВы бы позвонили: scipy.spatial.distance.cdist(point, X)

...