#!/bin/env python # coding: utf-8 VERSION='1.2' # Version 1.2 : partie droite débute à 1086 et non 1087 import pyfits from optparse import OptionParser import numpy from scipy import * parser = OptionParser() parser.add_option("-n","--nobias",action="store_true", dest="nobias", default=False, help="no suppression of the bias (based on overscans)") (options, args) = parser.parse_args () if (len(args) !=2) : print "Usage : pre.py [-n --nobias] input.fits output.fits" exit(1) # Ouverture de l'image fits en argument hdulist = pyfits.open(args[0]) scidata = hdulist[0].data # suppression prescan/overscan/bord de plage gauche = scidata[:2048,50:1074] droite = scidata[:2048,1086:2110] # Suppression du fond selon moyenne des overscans if options.nobias : print "No bias substraction" else: bias_gauche = mean(scidata[:2048,:50])-10 bias_droite = mean(scidata[:2048,2110:])-10 print "Warning ! bias removed (%f / %f) " % (bias_gauche, bias_droite) gauche -= bias_gauche droite -= bias_droite scidata = numpy.hstack((gauche,droite)) dim = scidata.shape # Pixel min = 0 scidata = numpy.where(scidata<0,0,scidata) prihdr = hdulist[0].header prihdr.add_history('pre.py V'+VERSION) prihdr.add_history('Suppression os/ps') # Ajout du WCS prihdr.update('CRPIX1',1024,'crpix1') prihdr.update('CRPIX2',1024,'crpix2') prihdr.update('CRVAL1',0,'crval1') prihdr.update('CRVAL2',0,'crval2') prihdr.update('CD1_1',0,'crdelt1') prihdr.update('CD1_2',1.0593,'crdelt2') prihdr.update('CD2_1',-1.0593,'crota1') prihdr.update('CD2_2',0.0,'crota2') prihdr.update('CTYPE1',' ','ctype1') prihdr.update('CTYPE2',' ','ctype2') hdulist[0].data = scidata hdulist.writeto(args[1],clobber=True) hdulist.close()