def convert2graph(self, road_network=None, directed=True, edge_weighted_by_distance=True, node_weighted_by_dwelling=True): """ Return a graph representation of human mobility, one which is weighted by traveling distance for edge and dwelling time for node. **PerfStat** (PersonNum,Calls,AccTime): 100,1519,54.191s """ graph = seq2graph(self.coordinates, directed) if edge_weighted_by_distance: for edge in graph.edges_iter(): if road_network: dist = road_network.shortest_path_distance(edge[0], edge[1]) else: dist = greate_circle_distance(edge[0][0], edge[0][1], edge[1][0], edge[1][1]) graph.edge[edge[0]][edge[1]]['weight'] = dist if edge in self.freq: graph.edge[edge[0]][edge[1]]['frequency'] = self.freq[edge] else: graph.edge[edge[0]][edge[1]]['frequency'] = 1 if node_weighted_by_dwelling: for node in graph.nodes_iter(): graph.node[node]['weight'] = self.accdwelling.get(node) return graph
def convert2graph(self, road_network, directed=True, edge_weighted_by_distance=True, node_weighted_by_dwelling=True): """ Return a graph representation of human mobility, one which is weighted by traveling distance for edge and dwelling time for node. **PerfStat** (PersonNum,Calls,AccTime): 100,1519,54.191s """ graph = seq2graph(self.coordinates, directed) if edge_weighted_by_distance: for edge in graph.edges_iter(): graph.edge[edge[0]][edge[1]]['distance'] = \ road_network.shortest_path_distance(edge[0], edge[1]) if node_weighted_by_dwelling: for node in graph.nodes_iter(): graph.node[node]['dwelling'] = self.accdwelling.get(node) return graph