def create_edges(self, input_file_dir, input_file_name, output_file_name):
     storage = StorageFactory().get_storage(type='tab_storage', subdir='store', 
         storage_location=input_file_dir)
     dataset = Dataset(in_storage = storage, id_name = ['stop_id','sch_time'], in_table_name = input_file_name)
     
     n = dataset.size()
     trip_ids = dataset.get_attribute("stop_id")
     unique_trip_ids = unique(trip_ids)
     source_list = list()
     target_list = list()
     time_list = list()
     
     for trip in unique_trip_ids:
         idx = where(dataset.get_attribute("stop_id") == trip)[0]
         nodes = dataset.get_attribute_by_index("node_id", idx)
         times = dataset.get_attribute_by_index("sch_time", idx)
         for inode in range(nodes.size-1):
             source_list.append(nodes[inode])
             target_list.append(nodes[inode+1])
             time_list.append(times[inode+1] - times[inode])
    
     storage = StorageFactory().get_storage('dict_storage')
     
     storage.write_table(table_name='edges',
         table_data={
             'edge_id': arange(len(source_list))+1, 
             'source': array(source_list), #type=int64), # <<<< OUTPUT FIELD, USE array
             'target': array(target_list), #type=int64), # <<<< OUTPUT FIELD, USE array
             'cost': array(time_list, dtype=int32)
             }
         )
    
     edges = Dataset(in_storage=storage, in_table_name='edges', id_name = "edge_id")
     
     edges.write_dataset(attributes = ["source", "target", "cost"], out_storage = storage, out_table_name = output_file_name)
Example #2
0
    def create_edges(self, input_file_dir, input_file_name, output_file_name):
        storage = StorageFactory().get_storage(type='tab_storage',
                                               subdir='store',
                                               storage_location=input_file_dir)
        dataset = Dataset(in_storage=storage,
                          id_name=['stop_id', 'sch_time'],
                          in_table_name=input_file_name)

        n = dataset.size()
        trip_ids = dataset.get_attribute("stop_id")
        unique_trip_ids = unique(trip_ids)
        source_list = list()
        target_list = list()
        time_list = list()

        for trip in unique_trip_ids:
            idx = where(dataset.get_attribute("stop_id") == trip)[0]
            nodes = dataset.get_attribute_by_index("node_id", idx)
            times = dataset.get_attribute_by_index("sch_time", idx)
            for inode in range(nodes.size - 1):
                source_list.append(nodes[inode])
                target_list.append(nodes[inode + 1])
                time_list.append(times[inode + 1] - times[inode])

        storage = StorageFactory().get_storage('dict_storage')

        storage.write_table(
            table_name='edges',
            table_data={
                'edge_id': arange(len(source_list)) + 1,
                'source': array(
                    source_list),  #type=int64), # <<<< OUTPUT FIELD, USE array
                'target': array(
                    target_list),  #type=int64), # <<<< OUTPUT FIELD, USE array
                'cost': array(time_list, dtype=int32)
            })

        edges = Dataset(in_storage=storage,
                        in_table_name='edges',
                        id_name="edge_id")

        edges.write_dataset(attributes=["source", "target", "cost"],
                            out_storage=storage,
                            out_table_name=output_file_name)
Example #3
0
 def test_flt_dataset(self):
     import opus_core
     from opus_core.store.flt_storage import flt_storage
     
     attribute = 'little_endian'
     
     location = os.path.join(opus_core.__path__[0], 'data', 'flt')
     storage = flt_storage(storage_location=location)
     ds = Dataset(in_storage=storage, id_name=attribute, in_table_name='endians')
     
     self.assertAlmostEqual(11.0, ds.get_attribute_by_index(attribute, 0))
     self.assertEqual(None, ds.get_attribute_header(attribute))