Boucler un code sur une liste de fichiers
Bonjour à toutes et à tous,
Je viens demander un peu d'aide ici car depuis 2 jours je bloque sur l'execution de mon code concernant l'omportation d'une liste de fichiers.
Lorsque je procède de manière standard, avec un seul fichier, tout fonctionne parfaitement. Néanmoins, ayant 180 fichiers de données à traiter, j'aimerais automatiser la tâche. C'est-à-dire que le script importe le premier fichier, fasse tout ce qui est demandé, en ressort un fichier de sortie, puis passe au fichier suivant et ainsi de suite ..
Je possède un répertoire "Fields" comprenant mes fichiers au format .fits
Voici mon code :
Code:
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
| #!/usr/bin/python
# coding: utf-8
from astropy.io import fits
import numpy as np
import matplotlib.pyplot as plt
import os
indir = '/home/valentin/Desktop/Fields'
for root, dirs, filenames in os.walk(indir) :
for f in filenames :
reading = fits.open(filenames) # Ouverture du fichier à l'aide d'astropy
tbdata = filenames[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]
mask2 = tbdata_temp1['PROB'] > 0.01 # Création d'un second masque sur la condition PROB
tbdata_temp2 = tbdata_temp1[mask2]
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 tbdata_final # Affichage de la table après toutes les conditions
hdu = fits.BinTableHDU(data=tbdata_final)
hdu.writeto('{}_{}'.format(filename, 'traité')) # Ecriture du résultat obtenu dans un nouveau fichier fits
#################################################
# 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)
#######################################
# Traçage diagramme Couleur-Magnitude #
#######################################
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()
plt.show()
#reading.close() |
Je n'arrive pas à faire la liaison entre la première partie concernant l'importation des fichiers, et le code en lui-même :/