Source code for merge_points

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 27 14:25:23 2018

@author: jpelda
"""


[docs]def merge_points(list_of_tuples_point_ids, dist, crs="EPSG:4326"): """Merges points with distance <dist> to each other into one point. Args: ----- list_of_tuples_point_ids: list(tuples(id, shapely.Point((x, y)))) dist: float[meter] Returns: -------- remaining_points: list(tuples(id, shapely.Point((x, y)))) """ from transformations_of_crs_values import meter_to_crs_length dist = meter_to_crs_length(dist, crs=crs) points_f = [p[1] for p in list_of_tuples_point_ids] dict_of_points = {} # TODO Try nx.ego_graph() to speed up performance for index, point in enumerate(list_of_tuples_point_ids): points_near = [p for p in points_f if p.distance(point[1]) <= dist] dict_of_points[index] = points_near points_f = [p for p in points_f if p not in points_near] print(index) arr = [] for key in dict_of_points.keys(): for value in dict_of_points[key]: if value != []: arr.append([list_of_tuples_point_ids[key][0], list_of_tuples_point_ids[key][1]]) return arr
#from shapely.geometry import Point #import numpy as np #plist = [('a', Point((1,1))), # ('b', Point((0,0))), # ('c', Point((3,3))), # ('d', Point((4,4))), # ('e', Point((9,9)))] # # #arr = merge_points(plist, 1, crs='EPSG:32633') # # #import geopandas as gpd #import matplotlib.pyplot as plt #fig = plt.figure() #ax = fig.add_subplot(111) # #df = gpd.GeoDataFrame(arr, columns=['key', 'SHAPE'], geometry='SHAPE') ##df_f = gpd.GeoDataFrame( #print(df) ##gis_gdf.plot(ax=ax, color='black', linewidth=0.3, alpha=1) #df.plot(ax=ax, color='red')