Source code for paths_to_dataframe

# -*- coding: utf-8 -*-
"""
Created on Wed May  2 17:42:14 2018

@author: jpelda
"""


[docs]def paths_to_dataframe(gdf_nodes, gdf_edges): """Brings all paths to dataframe with values of edges Args: ----- gdf_nodes: geopandas.GeoDataFrame() gdf_nodes['path_to_end_node'] gdf_edges: geopandas.GeoDataFrame() gdf_edges['u'], gdf_edges['v'] Returns: -------- gdf: geopandas.GeoDataFrame() gdf contains all information of gdf_edges and only edges according to gdf_nodes['path_to_end_node'] with flow direction u -> v and its volume stream. """ # Forms a list of tuple from odd or uneven list. uv = [(x, arr[i+1]) if i < len(arr) - 1 else () for arr in gdf_nodes.path_to_end_node for i, x in enumerate(arr)] uv = set(uv) arr = [] list_V = [] for index, u, v in zip(gdf_edges.index, gdf_edges.u, gdf_edges.v): uv_item = (u, v) vu_item = (v, u) for vec in uv: if vec == uv_item: arr.append(index) list_V.append(gdf_nodes.V[u]) uv.remove(vec) break elif vec == vu_item: arr.append(index) list_V.append(gdf_nodes.V[v]) uv.remove(vec) break gdf = gdf_edges.iloc[arr].copy() gdf['V'] = list_V return gdf