Esempio n. 1
0
    def export_network(self):
        '''
        export the network from Hydra
        '''
        write_progress(2, self.steps)
        net = self.connection.call(
            'get_network', {
                'network_id': self.network_id,
                'include_data': 'Y',
                'template_id': self.template_id,
                'scenario_ids': [self.scenario_id]
            })

        log.info("Network retrieved")
        attrs = self.connection.call('get_all_attributes', {})
        log.info("%s attributes retrieved", len(attrs))
        self.net = net
        self.network = HydraNetwork()
        self.network.load(net, attrs)
        log.info("Loading net into network.")
        nodes_map = dict()
        for node in net.nodes:
            nodes_map[node.id] = node.name
        self.get_longest_node_link_name()
        write_progress(3, self.steps)
        self.output_file_contents.append("# Network-ID:  " +
                                         str(self.network_id))
        self.output_file_contents.append("\n# Scenario-ID: " +
                                         str(self.scenario_id))
        self.output_file_contents.append("\n#" + "*" * 100)

        self.write_nodes()
        write_progress(4, self.steps)
        self.write_links(nodes_map)
        write_progress(5, self.steps)
        self.export_node_groups()
        nodes_types = self.network.get_node_types(template_id=self.template_id)
        links_types = self.network.get_link_types(template_id=self.template_id)
        self.export_node_types(nodes_types)
        self.export_links_types(links_types)
        write_progress(6, self.steps)
        if len(self.time_index) > 0:
            self.output_file_contents.append('\nset time_step:=')
            for timestep in self.time_index.keys():
                self.output_file_contents.append(" " + str(timestep))
            self.output_file_contents.append(';\n')

            self.output_file_contents.append('\nset actual_time_step:=')
            for timestep in self.time_index.values():
                self.output_file_contents.append(" " + str(timestep))
            self.output_file_contents.append(';\n')
        write_progress(7, self.steps)

        if self.export_by_type is True:
            self.export_data_using_types(nodes_types, links_types)
        else:
            self.export_data_using_attributes()