#! /bin/bash


temp10="temp_dir10.txt"
name10=$(cat "$temp10")
cd $name10

/usr/local/external/astrobin/dfits UVES*fits | /usr/local/external/astrobin/fitsort OBS.PROG.ID DPR.CATG DPR.TYPE EXPTIME MJD-OBS INS.MODE INS.PATH DET.READ.SPEED DET.WIN1.BINX DET.WIN1.BINY INS.GRAT1.NAME INS.GRAT1.WLEN INS.FILT2.NAME INS.SLIT2.WID INS.SLIT2.LEN INS.GRAT2.NAME INS.GRAT2.WLEN INS.FILT3.NAME INS.SLIT3.WID INS.SLIT3.LEN OBS.TARG.NAME > archive.sof
#more archive.sof

echo
grep OBJECT archive.sof | sort -n -k5 > science.sof #tmp
#cat tmp | awk -v exp_science=$(sed -n -e "$(wc -l tmp | awk '{print $1}')p" tmp | cut -f5) 'NR>0 {if ($5>exp_science*0.02) {print $0}}' | sort -n -k1 > science.sof
#more science.sof

###
declare -i k=1
while [ $k -le $(wc -l science.sof | awk '{print $1}') ]
do

  echo $(sed -n -e "${k}p" science.sof | cut -f1) | awk -v a=`pwd` -v b=`echo SCIENCE_$(sed -n -e "${k}p" science.sof | cut -f8)` '{printf ("%s/%s\t%s\n",a,$1,b)}' > reduce.sof

  cat archive.sof | awk -v mjd_science=`echo $(sed -n -e "${k}p" science.sof | cut -f6)` 'NR>1 {if ($6<=mjd_science+5&&$6>=mjd_science-5) {print $0}}' > tmp

  cut -f1-6,9,10,11 tmp > tmp1
  grep CALIB tmp1 | grep "BIAS"          | grep "$(grep $(sed -n -e "${k}p" science.sof | cut -f1) tmp1 | cut -f7-)" | cut -f1 | awk -v a=`pwd` -v b=`echo BIAS_$(sed -n -e "${k}p" science.sof | cut -f8)`          '{printf ("%s/%s\t%s\n",a,$1,b)}' >> reduce.sof

  cut -f1-6,7,9-21 tmp > tmp1
  grep CALIB tmp1 | grep "LAMP,FLAT"     | grep "$(grep $(sed -n -e "${k}p" science.sof | cut -f1) tmp1 | cut -f7-)" | cut -f1 | awk -v a=`pwd` -v b=`echo FLAT_$(sed -n -e "${k}p" science.sof | cut -f8)`          '{printf ("%s/%s\t%s\n",a,$1,b)}' >> reduce.sof

  cut -f1-6,7,9-14,17-19 tmp > tmp1
  grep CALIB tmp1 | grep "LAMP,FMTCHK"   | grep "$(grep $(sed -n -e "${k}p" science.sof | cut -f1) tmp1 | cut -f7-)" | cut -f1 | awk -v a=`pwd` -v b=`echo ARC_LAMP_FORM_$(sed -n -e "${k}p" science.sof | cut -f8)` '{printf ("%s/%s\t%s\n",a,$1,b)}' >> reduce.sof


for (( ipopa=1; ipopa<=100; ++ipopa ))
do
    echo 
done


  cut -f1-6,7,9-14,17-19 tmp > tmp1
  grep CALIB tmp1 | grep "LAMP,ORDERDEF" | grep "$(grep $(sed -n -e "${k}p" science.sof | cut -f1) tmp1 | cut -f7-)" | cut -f1 | awk -v a=`pwd` -v b=`echo ORDER_FLAT_$(sed -n -e "${k}p" science.sof | cut -f8)`    '{printf ("%s/%s\t%s\n",a,$1,b)}' >> reduce.sof


for (( ipopa=1; ipopa<=100; ++ipopa ))
do
    echo 
done


  cat archive.sof | awk -v mjd_science=`echo $(sed -n -e "${k}p" science.sof | cut -f6)` 'NR>1 {if ($6<=mjd_science+1&&$6>=mjd_science-1) {print $0}}' > tmp
  cut -f1-6,7,9-21 tmp > tmp1
  grep CALIB tmp1 | grep "LAMP,WAVE"     | grep "$(grep $(sed -n -e "${k}p" science.sof | cut -f1) tmp1 | cut -f7-)" | cut -f1 | awk -v a=`pwd` -v b=`echo ARC_LAMP_$(sed -n -e "${k}p" science.sof | cut -f8)`      '{printf ("%s/%s\t%s\n",a,$1,b)}' >> reduce.sof


for (( ipopa=1; ipopa<=100; ++ipopa ))
do
    echo 
done


  echo '/u/slavon/uves_test/UV_GLRE_070222A_line_refer_table.fits' | awk -v b=`echo LINE_REFER_TABLE` '{printf ("%s\t%s\n",$1,b)}' >> reduce.sof
  echo '/u/slavon/uves_test/UV_GEXT_031013A_extcoeff_table.fits'   | awk -v b=`echo EXTCOEFF_TABLE`   '{printf ("%s\t%s\n",$1,b)}' >> reduce.sof

echo

for (( ipopa=1; ipopa<=100; ++ipopa ))
do
    echo 
done

echo 'NOW REDUCING EXPOSURE NO. '${k}' ...'
\rm tmp tmp1

#esorex --recipe-dir=/Users/cledoux/data/pipeCPLnew3 uves_obs_redchain --debug=TRUE --plotter='gnuplot -persist' reduce.sof
#esorex --recipe-dir=/Users/cledoux/data/pipeCPLnew3 uves_obs_redchain --uves_cal_orderpos.backsubradiusy=1.5 --uves_cal_mflat.backsub.radiusy=1.5 --uves_obs_scired.reduce.backsub.radiusy=1.5 --uves_cal_orderpos.defpol1=3 --uves_cal_orderpos.defpol2=5 --uves_obs_scired.reduce.extract.kappa=5.0 reduce.sof
#esorex --recipe-dir=/Users/cledoux/data/pipeCPLnew3 uves_obs_redchain --uves_cal_orderpos.backsubradiusy=1.5 --uves_cal_mflat.backsub.radiusy=1.5 --uves_obs_scired.reduce.backsub.radiusy=1.5 --uves_obs_scired.reduce.extract.kappa=5.0 reduce.sof

if [[ $(sed -n -e "${k}p" science.sof | cut -f18) == "760.0         " || $(sed -n -e "${k}p" science.sof | cut -f18) == "860.0         " ]]; then

  echo
  echo 'Flat-fielding is done in pixel-pixel space, before extraction (lambda_c=760 or 860nm):'
  esorex --recipe-dir=/usr/local/external/museDRS/lib/esopipes-plugins/uves-5.5.7/ uves_obs_redchain --debug=TRUE --uves_obs_scired.reduce.extract.kappa=5.0 --uves_obs_scired.clean_traps=TRUE --uves_obs_scired.reduce.ffmethod=pixel --uves_obs_scired.reduce.merge_delt1=14 --uves_obs_scired.reduce.merge_delt2=4 reduce.sof

else

  echo
  echo 'Flat-fielding is done in pixel-order space, after extraction:'
  esorex --recipe-dir=/usr/local/external/museDRS/lib/esopipes-plugins/uves-5.5.7/ uves_obs_redchain --debug=TRUE --uves_obs_scired.reduce.extract.kappa=5.0 --uves_obs_scired.clean_traps=TRUE --uves_obs_scired.reduce.objoffset=10 reduce.sof

fi

#esorex --recipe-dir=/Users/cledoux/data/pipeCPLnew3 uves_obs_redchain --uves_cal_orderpos.backsubradiusy=1.5 --uves_cal_orderpos.tracestep=3 --uves_cal_orderpos.mintresh=0.01 --uves_cal_orderpos.kappa=12 --uves_cal_mflat.backsub.radiusy=1.5 --uves_obs_scired.reduce.backsub.radiusy=1.5 --uves_obs_scired.reduce.extract.kappa=5.0 --uves_obs_scired.reduce.extract.oversample=10 reduce.sof

mkdir exp_${k}
mv *red_science_*.fits exp_${k}
mv resampled*.fits exp_${k} 
mv variance*.fits exp_${k}
mv mf*fits exp_${k}
mv *fits exp_${k}
mv          esorex.log exp_${k}
\rm *_b* *_r* reduce.sof

###
k=k+1
done
#\rm archive.sof science.sof esorex.log
