1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#!/usr/bin/python
# coding: utf-8
from astropy.io import fits
import numpy as np
import matplotlib.pyplot as plt
#########################################
# Fichier contenant la liste des champs #
#########################################
with open("liste_champs.txt", "r") as f :
fichier_entier = f.read()
files = fichier_entier.split("\n")
for fichier in files :
with open(fichier, 'r') :
reading = fits.open(fichier) # Ouverture du fichier à l'aide d'astropy
tbdata = reading[1].data # Lecture des données fits
#######################################################
# Application du tri en fonction de divers paramètres #
#######################################################
mask1 = tbdata['CHI'] < 1.0 # Création d'un masque pour la condition CHI
tbdata_temp1 = tbdata[mask1]
print "Tri effectué sur CHI"
mask2 = tbdata_temp1['PROB'] > 0.01 # Création d'un second masque sur la condition PROB
tbdata_temp2 = tbdata_temp1[mask2]
print "Tri effectué sur PROB"
mask3 = tbdata_temp2['SHARP'] > -0.4 # Création d'un 3e masque sur la condition SHARP (1/2)
tbdata_temp3 = tbdata_temp2[mask3]
mask4 = tbdata_temp3['SHARP'] < 0.1 # Création d'un 4e masque sur la condition SHARP (2/2)
tbdata_final = tbdata_temp3[mask4]
print "Création de la nouvelle table finale"
#print tbdata_final # Affichage de la table après toutes les conditions
fig = plt.figure()
plt.plot(tbdata_final['G'] - tbdata_final['R'], tbdata_final['G'], '.')
plt.title('Diagramme Couleur-Magnitude')
plt.xlabel('(g-r)')
plt.ylabel('g')
plt.xlim(-2,2)
plt.ylim(15,26)
plt.gca().invert_yaxis()
fig.savefig("graph du fichier en cours")
print "Création du Diagramme"
hdu = fits.BinTableHDU(data=tbdata_final)
hdu.writeto('{}_{}'.format(fichier, 'traité')) # Ecriture du résultat obtenu dans un nouveau fichier fits
print "Ecriture du nouveau fichier traité"
#################################################
# Détermination des valeurs extremales du champ #
#################################################
RA_max = np.max(tbdata['RA'])
RA_min = np.min(tbdata['RA'])
print "RA_max vaut : " + str(RA_max)
print "RA_min vaut : " + str(RA_min)
DEC_max = np.max(tbdata['DEC'])
DEC_min = np.min(tbdata['DEC'])
print "DEC_max vaut : " + str(DEC_max)
print "DEC_min vaut : " + str(DEC_min)
#########################################
# Calcul de la valeur centrale du champ #
#########################################
RA_central = (RA_max + RA_min)/2.
DEC_central = (DEC_max + DEC_min)/2.
print "RA_central vaut : " + str(RA_central)
print "DEC_central vaut : " + str(DEC_central) |
Partager