from astropy.io import fits

f = open('list_fits_files_EXT.csv', 'r')
f2 = open('best_fits_2', 'a')

obj_arr={}
for line in f.readlines():
    ln=line
    data=line.split(',')
    obj_des=data[0].strip()
    collection=data[5].strip()
    filt=data[6].strip()
    camera=data[8].strip()
    allowed_filters = ['F110W','F435W','F438W','F439W','F450W','F555W','F606W','F814W']
    exp_time=data[7].strip()
    URL=data[13].strip()
    if ('HST' in collection) and ('_drz' in URL) and ('ACS' in camera) and (filt in allowed_filters):
      hdulist = fits.open(data[1].strip())
      nsets = hdulist['SCI'].header['NCOMBINE']
      nsets = 1 * nsets
      if nsets>1:
	if obj_des not in obj_arr:
	  obj_arr[obj_des]={}
	  obj_arr[obj_des][collection]={}
	  obj_arr[obj_des][collection][filt]={}
	  obj_arr[obj_des][collection][filt]["line"]=[]
	  obj_arr[obj_des][collection][filt]["exp_time"]=None
	  obj_arr[obj_des][collection][filt]["line"].append(line)
	  obj_arr[obj_des][collection][filt]["exp_time"]=exp_time
	else:
	  if collection not in obj_arr[obj_des]:
	    obj_arr[obj_des][collection]={}
	    obj_arr[obj_des][collection][filt]={}
	    obj_arr[obj_des][collection][filt]["line"]=[]
	    obj_arr[obj_des][collection][filt]["exp_time"]=None
	    obj_arr[obj_des][collection][filt]["line"].append(line)
	    obj_arr[obj_des][collection][filt]["exp_time"]=exp_time	
	  else:
	    if filt not in obj_arr[obj_des][collection]:
	      obj_arr[obj_des][collection][filt]={}
	      obj_arr[obj_des][collection][filt]["line"]=[]
	      obj_arr[obj_des][collection][filt]["exp_time"]=None
	      obj_arr[obj_des][collection][filt]["line"].append(line)
	      obj_arr[obj_des][collection][filt]["exp_time"]=exp_time	    
	    if obj_arr[obj_des][collection][filt]["exp_time"]<exp_time:
	      obj_arr[obj_des][collection][filt]["line"]=[line]
	      obj_arr[obj_des][collection][filt]["exp_time"]=exp_time
	    if obj_arr[obj_des][collection][filt]["exp_time"]==exp_time:
	      obj_arr[obj_des][collection][filt]["line"].append(line)
	      obj_arr[obj_des][collection][filt]["exp_time"]=exp_time
for (obj_design, item) in obj_arr.iteritems():
  for (collection, item2) in item.iteritems():
    for (filt, item3) in item2.iteritems():
      if ('CFHT' in collection) or ('HST' in collection):
	print collection
	for line in item3["line"]:
	  f2.write(line)  
f2.close()
f.close()
