Я пытаюсь использовать ckdTree, чтобы найти все точки данных на указанном расстоянии (1500 м). У меня есть дата-центр центров и данных необработанных данных. Мой план состоял в том, чтобы использовать координаты x и y, извлеченные из кластеров, для создания нового кадра данных точек, которые соответствуют определенным критериям. Вот что у меня есть:
import numpy as np
import scipy.spatial as spatial
import matplotlib.pyplot as plt
points = perfed[['X', 'Y']].values
centres = producers[['X', 'Y']].values
x_list = []
y_list = []
point_tree = spatial.cKDTree(points)
cmap = plt.get_cmap('rainbow')
colors = cmap(np.linspace(0, 1, len(centres)))
for center, group, color in zip(centres, point_tree.query_ball_point(centres, 1500), colors):
cluster = point_tree.data[group]
x, y = cluster[:, 0], cluster[:, 1]
x_list.append(pd.Series(x))
y_list.append(pd.Series(y))
plt.scatter(x, y, c=color, s=10)
d = {'X': [x_list],
'Y': [y_list]}
output = pd.DataFrame.from_dict(d,orient='index').transpose()
# output = output.merge(producers, how='left', left_on='X', right_on='X')
plt.show()
Входным набором данных являются только координаты UTM x и y. Может кто-нибудь определить, где я делаю ошибку? Спасибо!