Je cherchais une réponse depuis hier mais pas de chance. J'ai donc un fichier spectre 1D (.fits) avec valeur de flux à chaque longueur d'onde. Je les ai convertis en un tableau 2D (x, y) = (longueur d'onde, flux) et je veux écrire un programme qui retournera le flux (y) à certaines longueurs d'onde assignées (x). J'ai essayé ceci:Python 2D array - Comment brancher x et récupérer y valeur?
#modules
import scipy
import numpy as np
import pyfits as pf
#Target Global Vaiables
hdulist_tg = pf.open('cutmask1-2.0001.fits')
hdr_tg = hdulist_tg[0].header
flux_tg = hdulist_tg[0].data
crval_tg = hdr_tg['CRVAL1'] #Starting wavelength
cdel_tg = hdr_tg['CDELT1'] #Wavelength axis width
wave_tg = crval_tg + np.arange(3183)*cdel_tg #Create an x-axis
wavelist = [6207,6315,6369,6438,6490,6565,6588]
wave_flux=[]
diff = 10
for wave in wave_tg:
for flux in flux_tg:
wave_flux.append((wave,flux))
for item in wave_flux:
wave = item[0]
flux = item[1]
#Where I got my actual wavelength that exists in wave_tg
diffmatch = np.abs(wave - wavelist[0])
if diffmatch < diff:
flux_wave = flux
diff = diffmatch
wavematch = wave
print wavelist[0],flux_wave,wavematch
mais le programme retourne toujours la même valeur de flux même si la longueur d'onde est différente. S'il vous plaît aider ...
pourriez-vous fournir un lien vers le fichier 'cutmask1-2.0001.fits'? –
Vous êtes ici http://www.filedropper.com/cutmask1-20001 –