source: pyraw2fits/pyraw2fits.py @ 2

Last change on this file since 2 was 2, checked in by meynadie, 16 years ago
  • Property svn:executable set to *
File size: 1.8 KB
Line 
1#!/bin/env python
2# coding: utf-8
3
4VERSION='1.0'
5
6import pyfits
7from optparse import OptionParser
8
9import numpy
10
11
12parser = OptionParser()
13parser.add_option("-i","--input",dest="InputFilename",
14                  help="Input filename (required)", metavar="RAWIMAGE")
15parser.add_option("-o","--output",dest="OutputFilename",
16                  help="Output Filename (required)", metavar="FITSIMAGE")
17
18
19(options, args) = parser.parse_args ()
20
21
22print len(options.keys())
23
24
25NX = 2160
26NY = 2053
27
28# Ouverture de l'image en mode lecture binaire (windows)
29try:
30    f= open(options.InputFilename,'rb')
31except IOError :
32    print "Impossible d'ouvrir l'image"
33    exit (1)
34
35# Creation de l'array d'entiers non signés + byteswap
36a = numpy.fromfile(file=f, dtype=numpy.uint16, count=-1)
37a.byteswap(True)
38f.close()
39
40# dispatch des parties du binaire + conversion en signed int
41gauche = numpy.cast[numpy.int16](a[NX*NY/2:NX*NY]-32768)
42droite = numpy.cast[numpy.int16](a[:NX*NY/2]-32768)
43observables = numpy.cast[numpy.int16](a[-5:-1]-32768)
44
45# Construction de l'image (flip de la partie droite)
46b=numpy.empty(NX,dtype=numpy.int16)
47gauche.resize(NY,NX/2)
48droite.resize(NY,NX/2)
49b = numpy.hstack((gauche,numpy.fliplr(droite)))
50
51
52# Creation de l'objet fits
53hdu = pyfits.PrimaryHDU(b)
54hdulist = pyfits.HDUList([hdu])
55
56prihdr = hdulist[0].header
57
58prihdr.update('BSCALE',1,'scale')
59prihdr.update('BZERO',32768,'origin of the scale')
60
61
62prihdr.update('OBS1',observables[0],'Observable 1')
63prihdr.update('OBS2',observables[1],'Observable 2')
64prihdr.update('OBS3',observables[2],'Observable 3')
65prihdr.update('OBS4',observables[3],'Observable 4')
66prihdr.update('Conv','pyraw2fits','Logiciel de conversion utilise')
67prihdr.update('ConvVer',VERSION,'Version de raw2fits')
68
69
70of = options.OutputFilename
71
72hdu.writeto(of,clobber=True)
Note: See TracBrowser for help on using the repository browser.