Esempio n. 1
0
def avi2hdf5(avifn,ofn,t0, P, cmdlog):
    """
    t0: starting time
    avifn: input AVI
    ofn: output HDF5 file
    P: parameters
    """
    avifn = Path(avifn).expanduser()


    finf = getaviprop(avifn)
    P['superx'] = finf['xpix']; P['supery'] = finf['ypix']; P['nframe'] = finf['nframe']
#%% time vector
    rawind = arange(P['nframe'])+1
    ut1 = frame2ut1(t0,P['kineticsec'],rawind)
#%% ingest data (consider RAM)
    #NOTE someday could do iterative read/write, would be smarter.
    vid = cv2.VideoCapture(str(avifn))
    img8 = zeros((P['nframe'],P['supery'],P['superx']), dtype='uint8') #zeros in case bad frame

    for i in range(P['nframe']):
        ret,img = vid.read() #a 3-D Numpy array, last axis is BGR: blue,green,red
        if not ret:
            print('error on frame {}'.format(i))
            continue
        img8[i,...] = img[...,0] #note assumes already grayscale

    vid.release()

    vid2h5(img8,ut1, rawind, ofn, P, cmdlog)
def main(flist,ofn, P,cmdlog):

    ut1_unix,rawind,kineticsec,header = fitsreadermulti(flist,ofn)

    P['kineticsec'] = kineticsec
    P['header'] = header

    vid2h5(None,ut1_unix, rawind, ofn, P, cmdlog)
Esempio n. 3
0
if __name__ == "__main__":
    from argparse import ArgumentParser
    p = ArgumentParser(description='Andor Neo Spool reader, plotter, converter')
    p.add_argument('path',help='path containing 12-bit Neo spool files in broken format (2008-spring 2011)')
    p.add_argument('-p','--pix',help='nx ny  number of x and y pixels respectively',nargs=2,default=(2544,2160),type=int)
    p.add_argument('-b','--bin',help='nx ny  number of x and y binning respectively',nargs=2,default=(1,1),type=int)
    p.add_argument('-k','--kineticsec',help='kinetic rate of camera (sec)  = 1/fps',type=float)
    p.add_argument('--rotccw',help='rotate CCW value in 90 deg. steps',type=int,default=0)
    p.add_argument('--transpose',help='transpose image',action='store_true')
    p.add_argument('--flipud',help='vertical flip',action='store_true')
    p.add_argument('--fliplr',help='horizontal flip',action='store_true')
    p.add_argument('-s','--startutc',help='utc time of nights recording')
    p.add_argument('-o','--output',help='extract raw data into this file [h5,fits,mat]')
    p.add_argument('-v','--verbose',help='debugging',action='count',default=0)
    p.add_argument('--fire',help='fire filename')
    p = p.parse_args()

    params = {'kineticsec':p.kineticsec,'rotccw':p.rotccw,'transpose':p.transpose,
              'flipud':p.flipud,'fliplr':p.fliplr,'fire':p.fire}

    path = Path(p.path).expanduser()

    if path.is_file() and path.suffix == '.h5':
        print('writing metadata')
        rawind,ut1_unix = h5toh5(path,p.kineticsec,p.startutc)
    else:
        rawind,ut1_unix = oldspool(path,p.pix,p.bin,p.kineticsec,p.startutc,p.output)

    vid2h5(None,ut1_unix,rawind,p.output,params)