Пример #1
0
 def toxml(self,root):
     el = root.createElement('audio')
     el.setAttribute('name',self.get_name())
     el.setAttribute('file',self.fn)
     el.setAttribute('offset',str(_to_ordinalf(self.offset)))
     el.setAttribute('channels',",".join([str(c) for c in self.chans]))
     return el
Пример #2
0
 def get_time(self,sampled=False):
     nframes = self.get_frames()
     rate = self.get_rate()
     if sampled:
         skip = self.get_skipping()
     else:
         skip = 1
     roffset = _to_ordinalf(self.offset)
     return np.fromiter(( roffset + float(i) / rate / 86400
                          for i in range(0,nframes,skip)),dtype=np.dtype(np.float))
Пример #3
0
 def from_file(fn,name,sensor):
     res = {}
     h = open(fn)
     try:
         lines = h.readlines()
         sz = len(lines)
         for s in sensor:
             res[s] = (np.empty(sz,np.dtype(np.float)),np.empty((sz,3),np.dtype(np.float)))
         for i in range(sz):
             splt = lines[i].split()
             rest = len(splt) % 3
             if rest == 2:
                 timedata = _to_ordinalf(datetime.datetime.fromtimestamp(int(splt[0]),tz.tzutc())
                                        + datetime.timedelta(seconds = float("0."+splt[1])))
             elif rest == 1:
                 timedata = _to_ordinalf(datetime.datetime.fromtimestamp(float(splt[0]),tz.tzutc()))
             for s in sensor:
                 res[s][0][i] = timedata
                 res[s][1][i,0] = splt[rest + s*3]
                 res[s][1][i,1] = splt[rest + s*3 + 1]
                 res[s][1][i,2] = splt[rest + s*3 + 2]
     finally:
         h.close()
     return [ MovementSource(name+str(s)+".log",name+str(s),res[s][0],res[s][1],s) for s in sensor ]
Пример #4
0
 def from_annpkg(handle,rootname,attrs):
     fn = attrs['file'].nodeValue
     name = attrs['name'].nodeValue
     sensor = int(attrs['sensor'].nodeValue)
     member = handle.extractfile(fn)
     lines = member.readlines()
     sz = len(lines)
     timedata = np.empty(sz,np.dtype(np.float))
     ydata = np.empty((sz,3),np.dtype(np.float))
     for i in range(sz):
         (timestamp,x,y,z) = lines[i].split()
         timedata[i] = _to_ordinalf(datetime.datetime.fromtimestamp(float(timestamp),tz.tzutc()))
         ydata[i,0] = x
         ydata[i,1] = y
         ydata[i,2] = z
     return MovementSource(fn,name,timedata,ydata,sensor)
Пример #5
0
def import_file(fn):
    h = open(fn)
    try:
        mapping = {}
        anns = []
        cur_ann = None
        last_timestamp = None
        for ln in h:
            split = ln.split()
            timestamp = _to_ordinalf(datetime.datetime.utcfromtimestamp(float(split[0])))
            if last_timestamp is not None:
                if timestamp < last_timestamp:
                    print "Warning: timestamps not ordered"
            last_timestamp = timestamp
            cls = split[1]
            tp = split[2]
            data = map(float, split[3:])
            if tp in mapping:
                arrs = mapping[tp]
            else:
                arrs = (DynArray(), DynArray(len(data)))
                mapping[tp] = arrs
            arrs[0].append(timestamp)
            arrs[1].append(data)
            if cur_ann is None:
                cur_ann = (timestamp, cls)
            else:
                if cur_ann[1] != cls:
                    anns.append((cur_ann[1], cur_ann[0], timestamp))
                    cur_ann = (timestamp, cls)
        if cur_ann is not None:
            anns.append((cur_ann[1], cur_ann[0], timestamp))
        srcs = []
        for name, (timedata, data) in mapping.iteritems():
            srcs.append((sources.source_from_short_name(name, timedata.to_array(), data.to_array()), []))
        return model.AnnPkg(srcs, anns)
    finally:
        h.close()
Пример #6
0
 def get_time_bounds(self):
     return (_to_ordinalf(self.offset),_to_ordinalf(self.offset + datetime.timedelta(seconds = self.get_frames()/self.get_rate())))