Esempio n. 1
0
 def test_write_es_generic(self):
     parsed_file = loris.read_file(examples_path_es + 'generic.es')
     new_file = 'new_generic.es'
     loris.write_events_to_file(parsed_file, new_file)
     self.assertEqual(os.path.getsize(new_file),
                      os.path.getsize(examples_path_es + 'generic.es'))
     os.remove(new_file)
Esempio n. 2
0
def poker_to_es(filepath_in, filepath_out, verbose=False):
    """ Converts a file from the POKER-DVS dataset into the .es format with dimensions 35x35"""

    if filepath_in.split('.')[1] == 'dat':

        # create the output directory if it doesn't exist
        basepath_out = os.path.dirname(filepath_out)
        if not os.path.exists(basepath_out):
            os.makedirs(basepath_out)

        # read file
        data = loris.read_file(filepath_in)

        # parse data according to the POKER-DVS specs
        data['width'] = 35
        data['height'] = 35

        for event in data['events']:
            event[2] = 239 - event[2]

        # write to es
        loris.write_events_to_file(data, filepath_out)
    else:
        if verbose:
            print(filepath_in, "is not an accepted file")
Esempio n. 3
0
 def test_write_es_atis(self):
     file_atis = loris.read_file(examples_path_es + 'atis.es')
     new_file = 'new_atis.es'
     loris.write_events_to_file(file_atis, new_file)
     self.assertEqual(os.path.getsize(new_file),
                      os.path.getsize(examples_path_es + 'atis.es'))
     os.remove(new_file)
Esempio n. 4
0
 def __getitem__(self, index):
     events = loris.read_file(self.samples[index])["events"]
     events = np.array(structured_to_unstructured(events, dtype=np.float))
     events[:, 2] -= self.minimum_y_value
     target = self.targets[index]
     if self.transform is not None:
         events = self.transform(events, self.sensor_size, self.ordering)
     if self.target_transform is not None:
         target = self.target_transform(target)
     return events, target
Esempio n. 5
0
 def __getitem__(self, index):
     events, target = loris.read_file(
         self.samples[index]), self.targets[index]
     events = numpy.lib.recfunctions.structured_to_unstructured(
         events["events"], dtype=numpy.float)
     if self.transform is not None:
         events = self.transform(events, self.sensor_size, self.ordering)
     if self.target_transform is not None:
         target = self.target_transform(target)
     return events, target
Esempio n. 6
0
def read_aedat4(in_file):
    import loris
    """
    Get the aer events from version 4 of .aedat file

    Args:
        in_file: str The name of the .aedat file
    Returns:
        xytp:   numpy structured array of events
    """
    event_data = loris.read_file(in_file)
    events = event_data["events"]
    return events
Esempio n. 7
0
    def read_bin(file_name: str):
        '''
        :param file_name: NavGesture原始bin格式数据的文件名
        :return: 一个字典,键是{'t', 'x', 'y', 'p'},值是np数组

        原始的NavGesture提供的是bin格式数据,不能直接读取。本函数提供了一个读取的接口。
        原始数据以二进制存储:

        Events are encoded in binary format on 64 bits (8 bytes):
        32 bits for timestamp
        9 bits for x address
        8 bits for y address
        2 bits for polarity
        13 bits padding
        '''
        txyp = loris.read_file(file_name)['events']
        # txyp.p是bool类型,转换成int
        return {'t': txyp.t, 'x': txyp.x, 'y': txyp.y, 'p': txyp.p.astype(int)}
Esempio n. 8
0
 def inject_spikes(self, data):
     # if a container is given then convert that to deque
     if isinstance(data, (list, np.ndarray)):
         self.spikes = np.array(data)
     # if string is given then load data
     elif isinstance(data, str):
         # handles .es files containing events with the format (t,x,y,p)
         if data_path.endswith('.es'):
             data_file = loris.read_file(data_path)
             for event in data_file['events']:
                 self.spikes.append(
                     [event.t, event.x + data_file['width'] * event.y])
             self.spikes = np.array(self.spikes)
         # handles .npy files containing numpy arrays with the format (t,neuron_idx)
         elif data_path.endswith('.npy'):
             self.spikes = np.load(data_path)
     else:
         raise Exception("unsupported data format")
Esempio n. 9
0
def ncar_to_es(filepath_in, filepath_out, verbose=False):
    if filepath_in.split('.')[1] == 'dat':
        # create the output directory if it doesn't exist
        basepath_out = os.path.dirname(filepath_out)
        if not os.path.exists(basepath_out):
            os.makedirs(basepath_out)

        # read file
        data = loris.read_file(filepath_in)

        # parse data according to the N-CAR specs
        data['width'] = 64
        data['height'] = 56

        for event in data['events']:
            event[2] = 55 - event[2]

        # write to es
        loris.write_events_to_file(data, filepath_out)

    else:
        if verbose:
            print(filepath_in, "is not an accepted file")
Esempio n. 10
0
 def test_read_dat_without_td_in_filename(self):
     parsed_file = loris.read_file(examples_path + 'user01_do_3.dat')
     events = parsed_file['events']
     self.assertEqual(len(events), 723759)
     self.assertEqual(parsed_file['type'], 'dvs')
Esempio n. 11
0
 def test_read_dat_v2_dvs(self):
     parsed_file = loris.read_file(examples_path +
                                   'NCARS_obj_004397_td.dat')
     events = parsed_file['events']
     self.assertEqual(len(events), 4407)
     self.assertEqual(parsed_file['type'], 'dvs')
Esempio n. 12
0
 def test_read_aedat4(self):
     parsed_file = loris.read_file(examples_path + 'parramatta.aedat4')
     events = parsed_file['events']
     self.assertEqual(len(events), 78830)
     self.assertEqual(parsed_file['type'], 'dvs')
Esempio n. 13
0
 def test_write_dvs_from_event_array_xytp(self):
     new_file = 'new_dvs.es'
     loris.write_events_to_file(self.event_array_xytp, new_file,
                                self.ordering_xytp)
     parsed_file = loris.read_file(new_file)
     self.assertEqual(len(parsed_file['events']), 10000)
Esempio n. 14
0
 def test_read_es_atis(self):
     file_atis = loris.read_file(examples_path_es + 'atis.es')
     self.assertEqual(1326017, len(file_atis['events']))
     self.assertEqual('atis', file_atis['type'])
Esempio n. 15
0
 def test_read_es_generic(self):
     file_generic = loris.read_file(examples_path_es + 'generic.es')
     self.assertEqual(70, len(file_generic['events']))
     self.assertEqual('generic', file_generic['type'])
Esempio n. 16
0
 def test_read_es_dvs(self):
     file_dvs = loris.read_file(examples_path_es + 'dvs.es')
     self.assertEqual(473225, len(file_dvs['events']))
     self.assertEqual('dvs', file_dvs['type'])
Esempio n. 17
0
 def test_read_es_color(self):
     file_color = loris.read_file(examples_path_es + 'color.es')
     self.assertEqual(473225, len(file_color['events']))
     self.assertEqual('color', file_color['type'])
Esempio n. 18
0
 def test_write_dvs_from_event_array_txyp_without_ordering(self):
     new_file = 'new_dvs.es'
     loris.write_events_to_file(self.event_array_txyp, new_file)
     parsed_file = loris.read_file(new_file)
     self.assertEqual(len(parsed_file['events']), 10000)
Esempio n. 19
0
import argparse
import loris

parser = argparse.ArgumentParser(
    description=
    'Fix tcommon issues in recorded files, and mnormalize the timestamps')
parser.add_argument('input', type=str, help='the input .es file')
parser.add_argument('output', type=str, help='the output .es file')
arguments = parser.parse_args()

if arguments.input == arguments.output:
    raise Exception('the input and output files must be different')

stream = loris.read_file(arguments.input)
if len(stream['events']) > 0:
    previous_t = stream['events'][0][0]
    for index in range(1, 1000):
        t = stream['events'][index][0]
        if t - previous_t > 1000000:
            stream['events'] = stream['events'][index:]
            break
        previous_t = t
    stream['events']['ts'] -= stream['events'][0][0]
loris.write_events_to_file(stream, arguments.output)