
# Pipeline for Target redflat

GAIN := $(shell python -c 'import FITS;f=FITS.FITS("../blueflat/blueflat.fits");print f["newgain"];f.close()')

all: stage-overscan stage-ydist-copy stage-orders-copy stage-xdist-copy stage-wdist-copy stage-subscat stage-normalize stage-combine ../targ_redflat

stage-overscan:
# Overscan Subtraction, Trimming, and Image Reorientation.
	echo Stage:  Overscan Subtraction, Trimming, and Image Reorientation.
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0001.fits redflat_redflat0001.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0002.fits redflat_redflat0002.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0005.fits redflat_redflat0005.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0006.fits redflat_redflat0006.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0031.fits redflat_redflat0031.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0032.fits redflat_redflat0032.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0033.fits redflat_redflat0033.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0034.fits redflat_redflat0034.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0035.fits redflat_redflat0035.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0036.fits redflat_redflat0036.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0037.fits redflat_redflat0037.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0038.fits redflat_redflat0038.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0039.fits redflat_redflat0039.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0040.fits redflat_redflat0040.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0041.fits redflat_redflat0041.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0042.fits redflat_redflat0042.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0043.fits redflat_redflat0043.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0044.fits redflat_redflat0044.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0045.fits redflat_redflat0045.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0046.fits redflat_redflat0046.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0047.fits redflat_redflat0047.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0048.fits redflat_redflat0048.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0049.fits redflat_redflat0049.fits
	magebias /data1/Data/MagE/processed_2d/../ut170530_31/mage0050.fits redflat_redflat0050.fits
	touch stage-overscan

stage-ydist-copy: stage-overscan
# Copying the Y Distortion.
	echo Stage:  Copying the Y Distortion.
	copyrect -ydist lamp.fits redflat_redflat0001.fits
	copyrect -ydist lamp.fits redflat_redflat0002.fits
	copyrect -ydist lamp.fits redflat_redflat0005.fits
	copyrect -ydist lamp.fits redflat_redflat0006.fits
	copyrect -ydist lamp.fits redflat_redflat0031.fits
	copyrect -ydist lamp.fits redflat_redflat0032.fits
	copyrect -ydist lamp.fits redflat_redflat0033.fits
	copyrect -ydist lamp.fits redflat_redflat0034.fits
	copyrect -ydist lamp.fits redflat_redflat0035.fits
	copyrect -ydist lamp.fits redflat_redflat0036.fits
	copyrect -ydist lamp.fits redflat_redflat0037.fits
	copyrect -ydist lamp.fits redflat_redflat0038.fits
	copyrect -ydist lamp.fits redflat_redflat0039.fits
	copyrect -ydist lamp.fits redflat_redflat0040.fits
	copyrect -ydist lamp.fits redflat_redflat0041.fits
	copyrect -ydist lamp.fits redflat_redflat0042.fits
	copyrect -ydist lamp.fits redflat_redflat0043.fits
	copyrect -ydist lamp.fits redflat_redflat0044.fits
	copyrect -ydist lamp.fits redflat_redflat0045.fits
	copyrect -ydist lamp.fits redflat_redflat0046.fits
	copyrect -ydist lamp.fits redflat_redflat0047.fits
	copyrect -ydist lamp.fits redflat_redflat0048.fits
	copyrect -ydist lamp.fits redflat_redflat0049.fits
	copyrect -ydist lamp.fits redflat_redflat0050.fits
	touch stage-ydist-copy

stage-orders-copy: stage-ydist-copy
# Copy the Order Edges.
	echo Stage:  Copy the Order Edges.
	copyslit -fwhm 20.000000 -ydist -fft lamp.fits redflat_redflat0001.fits
	copyslit redflat_redflat0001.fits redflat_redflat0002.fits
	copyslit redflat_redflat0001.fits redflat_redflat0005.fits
	copyslit redflat_redflat0001.fits redflat_redflat0006.fits
	copyslit redflat_redflat0001.fits redflat_redflat0031.fits
	copyslit redflat_redflat0001.fits redflat_redflat0032.fits
	copyslit redflat_redflat0001.fits redflat_redflat0033.fits
	copyslit redflat_redflat0001.fits redflat_redflat0034.fits
	copyslit redflat_redflat0001.fits redflat_redflat0035.fits
	copyslit redflat_redflat0001.fits redflat_redflat0036.fits
	copyslit redflat_redflat0001.fits redflat_redflat0037.fits
	copyslit redflat_redflat0001.fits redflat_redflat0038.fits
	copyslit redflat_redflat0001.fits redflat_redflat0039.fits
	copyslit redflat_redflat0001.fits redflat_redflat0040.fits
	copyslit redflat_redflat0001.fits redflat_redflat0041.fits
	copyslit redflat_redflat0001.fits redflat_redflat0042.fits
	copyslit redflat_redflat0001.fits redflat_redflat0043.fits
	copyslit redflat_redflat0001.fits redflat_redflat0044.fits
	copyslit redflat_redflat0001.fits redflat_redflat0045.fits
	copyslit redflat_redflat0001.fits redflat_redflat0046.fits
	copyslit redflat_redflat0001.fits redflat_redflat0047.fits
	copyslit redflat_redflat0001.fits redflat_redflat0048.fits
	copyslit redflat_redflat0001.fits redflat_redflat0049.fits
	copyslit redflat_redflat0001.fits redflat_redflat0050.fits
	touch stage-orders-copy

stage-xdist-copy: stage-orders-copy
# Copying the X Distortion.
	echo Stage:  Copying the X Distortion.
	copyrect -xdist lamp.fits redflat_redflat0001.fits
	copyrect -xdist lamp.fits redflat_redflat0002.fits
	copyrect -xdist lamp.fits redflat_redflat0005.fits
	copyrect -xdist lamp.fits redflat_redflat0006.fits
	copyrect -xdist lamp.fits redflat_redflat0031.fits
	copyrect -xdist lamp.fits redflat_redflat0032.fits
	copyrect -xdist lamp.fits redflat_redflat0033.fits
	copyrect -xdist lamp.fits redflat_redflat0034.fits
	copyrect -xdist lamp.fits redflat_redflat0035.fits
	copyrect -xdist lamp.fits redflat_redflat0036.fits
	copyrect -xdist lamp.fits redflat_redflat0037.fits
	copyrect -xdist lamp.fits redflat_redflat0038.fits
	copyrect -xdist lamp.fits redflat_redflat0039.fits
	copyrect -xdist lamp.fits redflat_redflat0040.fits
	copyrect -xdist lamp.fits redflat_redflat0041.fits
	copyrect -xdist lamp.fits redflat_redflat0042.fits
	copyrect -xdist lamp.fits redflat_redflat0043.fits
	copyrect -xdist lamp.fits redflat_redflat0044.fits
	copyrect -xdist lamp.fits redflat_redflat0045.fits
	copyrect -xdist lamp.fits redflat_redflat0046.fits
	copyrect -xdist lamp.fits redflat_redflat0047.fits
	copyrect -xdist lamp.fits redflat_redflat0048.fits
	copyrect -xdist lamp.fits redflat_redflat0049.fits
	copyrect -xdist lamp.fits redflat_redflat0050.fits
	touch stage-xdist-copy

stage-wdist-copy: stage-xdist-copy
# Copying the Wavelength Solutions.
	echo Stage:  Copying the Wavelength Solutions.
	copyrect -wdist lamp.fits redflat_redflat0001.fits
	copyrect -wdist lamp.fits redflat_redflat0002.fits
	copyrect -wdist lamp.fits redflat_redflat0005.fits
	copyrect -wdist lamp.fits redflat_redflat0006.fits
	copyrect -wdist lamp.fits redflat_redflat0031.fits
	copyrect -wdist lamp.fits redflat_redflat0032.fits
	copyrect -wdist lamp.fits redflat_redflat0033.fits
	copyrect -wdist lamp.fits redflat_redflat0034.fits
	copyrect -wdist lamp.fits redflat_redflat0035.fits
	copyrect -wdist lamp.fits redflat_redflat0036.fits
	copyrect -wdist lamp.fits redflat_redflat0037.fits
	copyrect -wdist lamp.fits redflat_redflat0038.fits
	copyrect -wdist lamp.fits redflat_redflat0039.fits
	copyrect -wdist lamp.fits redflat_redflat0040.fits
	copyrect -wdist lamp.fits redflat_redflat0041.fits
	copyrect -wdist lamp.fits redflat_redflat0042.fits
	copyrect -wdist lamp.fits redflat_redflat0043.fits
	copyrect -wdist lamp.fits redflat_redflat0044.fits
	copyrect -wdist lamp.fits redflat_redflat0045.fits
	copyrect -wdist lamp.fits redflat_redflat0046.fits
	copyrect -wdist lamp.fits redflat_redflat0047.fits
	copyrect -wdist lamp.fits redflat_redflat0048.fits
	copyrect -wdist lamp.fits redflat_redflat0049.fits
	copyrect -wdist lamp.fits redflat_redflat0050.fits
	touch stage-wdist-copy

stage-subscat: stage-wdist-copy
# Subtract the Scattered Light.
	echo Stage:  Subtract the Scattered Light.
	interOrder redflat_redflat0001.fits
	interOrder redflat_redflat0002.fits
	interOrder redflat_redflat0005.fits
	interOrder redflat_redflat0006.fits
	interOrder redflat_redflat0031.fits
	interOrder redflat_redflat0032.fits
	interOrder redflat_redflat0033.fits
	interOrder redflat_redflat0034.fits
	interOrder redflat_redflat0035.fits
	interOrder redflat_redflat0036.fits
	interOrder redflat_redflat0037.fits
	interOrder redflat_redflat0038.fits
	interOrder redflat_redflat0039.fits
	interOrder redflat_redflat0040.fits
	interOrder redflat_redflat0041.fits
	interOrder redflat_redflat0042.fits
	interOrder redflat_redflat0043.fits
	interOrder redflat_redflat0044.fits
	interOrder redflat_redflat0045.fits
	interOrder redflat_redflat0046.fits
	interOrder redflat_redflat0047.fits
	interOrder redflat_redflat0048.fits
	interOrder redflat_redflat0049.fits
	interOrder redflat_redflat0050.fits
	touch stage-subscat

stage-normalize: stage-subscat
# Normalizing the Flatfields.
	echo Stage:  Normalizing the Flatfields.
	procFlash -sx 48 redflat_redflat0001o.fits
	procFlash -sx 48 redflat_redflat0002o.fits
	procFlash -sx 48 redflat_redflat0005o.fits
	procFlash -sx 48 redflat_redflat0006o.fits
	procFlash -sx 48 redflat_redflat0031o.fits
	procFlash -sx 48 redflat_redflat0032o.fits
	procFlash -sx 48 redflat_redflat0033o.fits
	procFlash -sx 48 redflat_redflat0034o.fits
	procFlash -sx 48 redflat_redflat0035o.fits
	procFlash -sx 48 redflat_redflat0036o.fits
	procFlash -sx 48 redflat_redflat0037o.fits
	procFlash -sx 48 redflat_redflat0038o.fits
	procFlash -sx 48 redflat_redflat0039o.fits
	procFlash -sx 48 redflat_redflat0040o.fits
	procFlash -sx 48 redflat_redflat0041o.fits
	procFlash -sx 48 redflat_redflat0042o.fits
	procFlash -sx 48 redflat_redflat0043o.fits
	procFlash -sx 48 redflat_redflat0044o.fits
	procFlash -sx 48 redflat_redflat0045o.fits
	procFlash -sx 48 redflat_redflat0046o.fits
	procFlash -sx 48 redflat_redflat0047o.fits
	procFlash -sx 48 redflat_redflat0048o.fits
	procFlash -sx 48 redflat_redflat0049o.fits
	procFlash -sx 48 redflat_redflat0050o.fits
	touch stage-normalize

stage-combine: stage-normalize
# Combine the Flats.
	echo Stage:  Combine the Flats.
	combineFlats -o redflat.fits -s 60e3 -n 1 redflat_redflat0001oflt.fits redflat_redflat0002oflt.fits redflat_redflat0005oflt.fits redflat_redflat0006oflt.fits redflat_redflat0031oflt.fits redflat_redflat0032oflt.fits redflat_redflat0033oflt.fits redflat_redflat0034oflt.fits redflat_redflat0035oflt.fits redflat_redflat0036oflt.fits redflat_redflat0037oflt.fits redflat_redflat0038oflt.fits redflat_redflat0039oflt.fits redflat_redflat0040oflt.fits redflat_redflat0041oflt.fits redflat_redflat0042oflt.fits redflat_redflat0043oflt.fits redflat_redflat0044oflt.fits redflat_redflat0045oflt.fits redflat_redflat0046oflt.fits redflat_redflat0047oflt.fits redflat_redflat0048oflt.fits redflat_redflat0049oflt.fits redflat_redflat0050oflt.fits

	touch stage-combine

../targ_redflat:
	touch ../targ_redflat

clean:
	rm -f lamp_lamp0007.fits blueflat_flat0016.fits blueflat_flat0017.fits blueflat_flat0018.fits blueflat_flat0019.fits blueflat_flat0020.fits blueflat_flat0016o.fits blueflat_flat0017o.fits blueflat_flat0018o.fits blueflat_flat0019o.fits blueflat_flat0020o.fits blueflat_flat0016oflt.fits blueflat_flat0017oflt.fits blueflat_flat0018oflt.fits blueflat_flat0019oflt.fits blueflat_flat0020oflt.fits redflat_redflat0001.fits redflat_redflat0002.fits redflat_redflat0005.fits redflat_redflat0006.fits redflat_redflat0031.fits redflat_redflat0032.fits redflat_redflat0033.fits redflat_redflat0034.fits redflat_redflat0035.fits redflat_redflat0036.fits redflat_redflat0037.fits redflat_redflat0038.fits redflat_redflat0039.fits redflat_redflat0040.fits redflat_redflat0041.fits redflat_redflat0042.fits redflat_redflat0043.fits redflat_redflat0044.fits redflat_redflat0045.fits redflat_redflat0046.fits redflat_redflat0047.fits redflat_redflat0048.fits redflat_redflat0049.fits redflat_redflat0050.fits redflat_redflat0001o.fits redflat_redflat0002o.fits redflat_redflat0005o.fits redflat_redflat0006o.fits redflat_redflat0031o.fits redflat_redflat0032o.fits redflat_redflat0033o.fits redflat_redflat0034o.fits redflat_redflat0035o.fits redflat_redflat0036o.fits redflat_redflat0037o.fits redflat_redflat0038o.fits redflat_redflat0039o.fits redflat_redflat0040o.fits redflat_redflat0041o.fits redflat_redflat0042o.fits redflat_redflat0043o.fits redflat_redflat0044o.fits redflat_redflat0045o.fits redflat_redflat0046o.fits redflat_redflat0047o.fits redflat_redflat0048o.fits redflat_redflat0049o.fits redflat_redflat0050o.fits redflat_redflat0001oblz.fits redflat_redflat0002oblz.fits redflat_redflat0005oblz.fits redflat_redflat0006oblz.fits redflat_redflat0031oblz.fits redflat_redflat0032oblz.fits redflat_redflat0033oblz.fits redflat_redflat0034oblz.fits redflat_redflat0035oblz.fits redflat_redflat0036oblz.fits redflat_redflat0037oblz.fits redflat_redflat0038oblz.fits redflat_redflat0039oblz.fits redflat_redflat0040oblz.fits redflat_redflat0041oblz.fits redflat_redflat0042oblz.fits redflat_redflat0043oblz.fits redflat_redflat0044oblz.fits redflat_redflat0045oblz.fits redflat_redflat0046oblz.fits redflat_redflat0047oblz.fits redflat_redflat0048oblz.fits redflat_redflat0049oblz.fits redflat_redflat0050oblz.fits redflat_redflat0001oflt.fits redflat_redflat0002oflt.fits redflat_redflat0005oflt.fits redflat_redflat0006oflt.fits redflat_redflat0031oflt.fits redflat_redflat0032oflt.fits redflat_redflat0033oflt.fits redflat_redflat0034oflt.fits redflat_redflat0035oflt.fits redflat_redflat0036oflt.fits redflat_redflat0037oflt.fits redflat_redflat0038oflt.fits redflat_redflat0039oflt.fits redflat_redflat0040oflt.fits redflat_redflat0041oflt.fits redflat_redflat0042oflt.fits redflat_redflat0043oflt.fits redflat_redflat0044oflt.fits redflat_redflat0045oflt.fits redflat_redflat0046oflt.fits redflat_redflat0047oflt.fits redflat_redflat0048oflt.fits redflat_redflat0049oflt.fits redflat_redflat0050oflt.fits

veryclean:
	rm -f 

