Python новичок здесь, я получил этот код из интернета (не могу вспомнить источник), и я не могу понять, как он работает.Я хочу заменить вывод таким образом, чтобы он отображал названия городов вместо координат.Они вообще связаны?То есть, когда мы вводим значения в алгоритм сканирования БД, они теряют свою идентичность?Есть ли способ сохранить это, чтобы я мог отображать названия городов? Любая помощь или предложение или редактирование вопроса приветствуется
Вот ссылка colab .
kms_per_radian = 63.710088
epsilon = 1.500 / kms_per_radian
db = DBSCAN(eps=epsilon, min_samples=1, algorithm='ball_tree', metric='haversine').fit(np.radians(coords))
cluster_labels = db.labels_
num_clusters = len(set(cluster_labels))
clusters = pd.Series([coords[cluster_labels == n] for n in range(num_clusters)])
print('Number of clusters: {}'.format(num_clusters))
clustersList = clusters.tolist()
def get_centermost_point(cluster):
centroid = (MultiPoint(cluster).centroid.x, MultiPoint(cluster).centroid.y)
centermost_point = min(cluster, key=lambda point: great_circle(point, centroid).m)
return tuple(centermost_point)
lats, lons = zip(*centermost_points)
rep_points = pd.DataFrame({'lon':lons, 'lat':lats})
rs = rep_points.apply(lambda row: df[(df['lat']==row['lat']) & (df['lon']==row['lon'])].iloc[0], axis=1)
centermost_points = clusters.map(get_centermost_point)