I am trying to loop code over several FITS files to overlay several plots. At the moment I am only getting one graph (see pic) Ideally I would like to loop through several FITS that are in a folder on my Desktop. this is what I have so far.  Im thinking that I will need to define a function to be able to do this. import numpy as np import matplotlib.pyplot as plt from astropy.io import fits from astropy.wcs import WCS from mpl_interactions import ioff, panhandler, zoom_factory %matplotlib widget spec_list = ['~/Desktop/r.HARPN.2018-01-18T14:25:36.145_CCF_A.fits',             '~/Desktop/r.HARPN.2018-01-18T14:20:10.645_CCF_A.fits',             '~/Desktop/r.HARPN.2018-01-18T14:31:00.875_CCF_A.fits',             '~/Desktop/r.HARPN.2018-01-18T14:36:26.373_CCF_A.fits'] for i in spec_list:     hdul = fits.open(i)     data = hdul[1].data     h1 = hdul[1].header     flux = data[1]     w = WCS(h1, naxis=1, relax=False, fix=False)     lam = w.wcs_pix2world(np.arange(len(flux)), 0)[0]      plt.figure(figsize=(5,5)) plt.plot(lam, flux) plt.ylim(0, ) plt.xlabel('RV') plt.ylabel('Normalized CCF') plt.show()

Systems Architecture
7th Edition
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Stephen D. Burd
Chapter6: System Integration And Performance
Section: Chapter Questions
Problem 2PE
icon
Related questions
Question

Greetings

I am trying to loop code over several FITS files to overlay several plots. At the moment I am only getting one graph (see pic)

Ideally I would like to loop through several FITS that are in a folder on my Desktop.

this is what I have so far.  Im thinking that I will need to define a function to be able to do this.

import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from mpl_interactions import ioff, panhandler, zoom_factory
%matplotlib widget

spec_list = ['~/Desktop/r.HARPN.2018-01-18T14:25:36.145_CCF_A.fits',
            '~/Desktop/r.HARPN.2018-01-18T14:20:10.645_CCF_A.fits',
            '~/Desktop/r.HARPN.2018-01-18T14:31:00.875_CCF_A.fits',
            '~/Desktop/r.HARPN.2018-01-18T14:36:26.373_CCF_A.fits']


for i in spec_list:
    hdul = fits.open(i)
    data = hdul[1].data
    h1 = hdul[1].header
    flux = data[1]
    w = WCS(h1, naxis=1, relax=False, fix=False)
    lam = w.wcs_pix2world(np.arange(len(flux)), 0)[0]
    
plt.figure(figsize=(5,5))
plt.plot(lam, flux)
plt.ylim(0, )
plt.xlabel('RV')
plt.ylabel('Normalized CCF')
plt.show()

8
00
80000
60000
40000
20000
10
20
Figure 1
RV
30
1
40
50
Transcribed Image Text:8 00 80000 60000 40000 20000 10 20 Figure 1 RV 30 1 40 50
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Follow-up Questions
Read through expert solutions to related follow-up questions below.
Follow-up Question

Im getting three separate plots, rather than one plot with several graphs overlayed.

Can you advise?

Regards

Solution
Bartleby Expert
SEE SOLUTION
Knowledge Booster
Randomized Select Algorithm
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning