Esempio n. 1
0
    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