#!/usr/local/bin/perl # re-format Spitzer bandpass files to .par format @bands=("1", "2", "3", "4", "24", "70", "160"); $jegdir="spitzer"; foreach $band (@bands) { if ($band =~ /^\d$/){ $instrument= "IRAC"; $filename= "$jegdir/irac_tr$band.dat"; $outfilename= "./spitzer_irac_ch$band.par"; }else{ $instrument= "MIPS"; $filename= "$jegdir/MIPSfiltsumm\_$band.txt"; $outfilename= "./spitzer_mips\_$band.par"; } print "$filename -> $outfilename\n"; open(ofp,">$outfilename"); print ofp "# Units:\n"; print ofp "# \"lambda\" is in Angstroms\n"; print ofp "# \"pass\" is *probably* the contribution to the detector signal\n"; print ofp "# per photon\n"; print ofp "# Bandpass Name:\n"; print ofp "# ch$band\n"; print ofp "# Instrument:\n"; print ofp "# Spitzer $instrument\n"; print ofp "# Notes:\n"; print ofp "# - Original data from\n"; print ofp "# \"http://ssc.spitzer.caltech.edu/irac/spectral_response.html\"\n"; print ofp "# - \".par\" file built automatically by processspitzer.\n"; print ofp "\ntypedef struct {\n"; print ofp " double lambda;\n"; print ofp " double pass;\n"; print ofp "} KFILTER;\n\n"; open(ifp,"<$filename"); while() { if(/^\s*(\d+\.\d+)\s+(\d+\.\d+)\s+/){ $lambda= $1*10000.0; $pass= $2; printf ofp "KFILTER %8.1f %9.6f\n",$lambda,$pass; } } close(ifp); close(ofp); }