##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Lance Simms, Stanford University 2009
#! /usr/bin/env python

##This script will run through a given fits file trying various values of 
##C_threshold using DAOFIND

import sys,os
from pyraf import iraf 
import pyfits
from numarray import *
from pylab import *

#GET THE DATE
Fullpath=os.getcwd()
directory=Fullpath.split('/')
Date=directory[6]
Date_Parts=Date.split('-')
Year=Date_Parts[0]
Month=Date_Parts[1]
Day=Date_Parts[2]

#Import the good packages from IRAF
iraf.digiphot(_doprint=0)
iraf.daophot(_doprint=0)
filename='hr5132g_010_raw.fits'
#DATAPARS
datapars=iraf.datapars.getParList()
findpars=iraf.findpars.getParList()
centerpars=iraf.centerpars.getParList()

print datapars[0]
iraf.centerpars.setParam('cbox','10.0')
iraf.datapars.setParam('fwhmpsf','4.0')
iraf.centerpars.saveParList(filename='~/iraf/uparm/datcentes.par')
iraf.datapars.saveParList(filename='~/iraf/uparm/datdataps.par')

#Set up daofind to go without prompting for input
iraf.daofind.setParam('image',filename)			#Set filename
iraf.daofind.setParam('output','')
iraf.daofind.setParam('verify','no')			#Don't verify
iraf.daofind.saveParList(filename='daofind.par')	#Save values

imax=400
num_points=zeros(imax,Int32)
threshold_arr=zeros(imax,Int32)

for i in range(imax):
	threshold=i
	iraf.findpars.setParam('threshold',str(threshold))
	daostring=iraf.daofind(mode='h',Stdout=1)		#Run hidden
	lendaostring=len(daostring)
	print lendaostring
	num_points[i]=lendaostring
	threshold_arr[i]=i

	if i==0: first_string=daostring[1].split()[1]
	second_string=daostring[1]
	third_string=daostring[2]
	splitdao1=daostring[1].split()[1]	
	#header=splitdao1.split()		#[0] is empty [1] contains header
	splitdao2=daostring[3].split()		#[2] is empty [3]-end contain data

plot(threshold_arr,num_points)
title('For image: '+first_string)
xlabel('Threshold (Sigma)')
ylabel('Number of Points Detected')
savefig('/nfs/slac/g/ki/ki08/lsst/CPanalysis/IRAF_params/'+Month+'_'+Day+'_'+
	filename+'Threshold'+'_Num_spots.ps')
show()
