2017-01-05 16 views
0

나는 kdtree을 만드는 2 차원 좌표의 목록을 가지고 있습니다. 좌표는 double입니다. [508180.748, 195333.973]KDTree double 형 정수

나는 numpy를 사용하여 생성하고 배열 한 다음 scipy의 KDTree 함수를 사용합니다.

import numpy as np 
import scipy.spatial 

points_array = np.array(points) 
kdt = scipy.spatial.KDTree(points_array) 

# Query  
tester = kdt.query_pairs(20) 
tester = list(tester)  
print(tester[0]) 

이 반환

(109139, 109144)

결과는 원본 데이터의 해상도를 잃었다. 어떻게 배정도 부동 소수점 형식을 유지합니까?

답변

2

포인트 배열의 인덱스이며 포인트 자체의 좌표 값은 아닙니다. 튜플에는 두 개의 인덱스가 있습니다. 배열의 각 포인트는 좌표 공간에서 분리가 쿼리 거리보다 작은 한 쌍의 일부입니다.

tester = kdt.query_pairs(20) 
tester = list(tester)  
print(points_array[tester[0][0]], points_array[tester[0][1]]) 
+0

감사 :

는 다음 당신이 할 수있는, 당신의 쌍 점의 좌표 값을 볼 수 있습니다! 나는 이것을 시도하고 그것을 돌려 보냈다. (array ([527948., 169578.]), array ([527959., 169593.]))''.'을 지나서 무엇이 떨어지는 이유는 무엇인가? – LearningSlowly

+0

이 코드를 사용할 때 전체 정밀도를 얻을 수 있으므로이 동작을 왜 보는지 알 수 없습니다. 내 생각 엔'.' 뒤에 값이 없거나'dtype '과 관련이있는 다른 문제가 있다고 생각합니다. 문제를 해결하는 데 도움이되는 누군가를위한 추적을 게시해야합니다. – kiliantics