Example #1
0
File: fits.py Project: kcsaff/CA
def read(filename, file=None):
    result = qdict.qdict()
    data = fits.read(file or open(filename, 'rb'))
    extra = ''.join([record[len(SPECIAL_RECORD_HEADER):] 
                     for record in data.special_records
                     if record.startswith(SPECIAL_RECORD_HEADER)])
    result.update(meta.decode(extra))

    result.reduce_quality(0.2) #We want these overridden by external data if necessary.
    result['palette', 0.1, filename] = views.palette.grays
   
    naxis = data.hdu[0]['NAXIS*']
    ctype = data.hdu[0]['CTYPE*']
    crpix = data.hdu[0]['CRPIX*']
    if crpix:
        result['center', 1.0, filename] = (crpix[0] - 1, crpix[1] - 1)
    if ctype and ctype[-1] == 'HISTORY' and ctype[-2] == 'CHART':
        atlases = []
        for atlasno in range(naxis[-1]):
            atlas = []
            atlases.append(atlas)
            for chartno in range(naxis[-2]):
                chart = data.hdu[0].data[atlasno, chartno, ...]
                atlas.append(chart.transpose())
        formats.set_atlases(result, atlases)
        
    else:
        chart = data.hdu[0].data.transpose()
        result['chart(%d,%d)' % formats.get_subscripts(filename), 1.0, filename] = chart
        
    return result
Example #2
0
File: png.py Project: kcsaff/CA
def read(filename, file=None):
    result = qdict.qdict()
    p = png.Reader(file=file or open(filename, 'rb'))
    width, height, pixels, pmeta = p.read()
    if 'text' in pmeta:
        for text_item in pmeta['text']:
            print text_item
            if text_item['key'] == META_TAG:
                result.update(meta.decode(text_item['value']))
    result['palette', 0.7, filename] = views.palette.from_rgb(p.palette())
    chart = numpy.zeros(shape=(width, height), dtype=numpy.uint8)
    chart[:,:] = numpy.transpose(list(pixels))
    result['chart(%d,%d)' % formats.get_subscripts(filename), 
           1.0, filename] = chart
    print result
    return result