from haversine import haversine import networkx as nx import geojson with open("D:/takensoft/project2/data/기타 가공/데이터/osm.geojson",encoding='utf-8') as f: gj = geojson.load(f) def swith_xy(tuples): x,y=tuples return (y,x) G = nx.Graph () total_data_num= gj['features'] for j in range(len(total_data_num)): features = gj['features'][j] lines=features['geometry']['coordinates'][0] print(j) for i in range(len(lines)-1): G.add_edge(swith_xy(lines[i]),swith_xy(lines[i+1]),flcass=features['properties']['fclass'],oneway=features['properties']['oneway']) sg = (G.subgraph(c) for c in nx.connected_components(G)) #가져올 수 없는 패키지가 있는 경우 sg = list(sg)[0] for n0, n1 in G.edges (): dist = haversine(n0, n1,unit='m') G.edges [n0,n1][" dist "] = dist df=nx.to_pandas_edgelist(G) li_source=list(df['source']) li_source_x= [] li_source_y=[] for i in li_source: li_source_x.append(str(i[0])) li_source_y.append(str(i[1])) df['source_x']=li_source_x df['source_y']=li_source_y li_target=list(df['target']) li_target_x= [] li_target_y=[] for i in li_target: li_target_x.append(str(i[0])) li_target_y.append(str(i[1])) df['target_x']=li_target_x df['target_y']=li_target_y df=df.drop(['source','target'],axis=1) df=df.reset_index() df.to_csv('node.csv',encoding='euc-kr')