#! /usr/bin/python

#from ini_read_spectrum import *
import string,sys
Spectrum={}
Spectrum_list=[]
Standard_star_spectrum={}
EW={}
Filter={}
Filter_list=[]
Atmosphere={}
Atmosphere_conditions={}
Water_list=[]
Airmass_list=[]
Background={}
Background_theo={}
Background_conditions={}
Hawaii={}
Hawaii_conditions={}
LBT={}
LUCIFER={}
Camera={}
Correction={}
Camera_list=[]
Dispersion={}
Grating={}
Grating_list=[]
Slit={}
Slit_list=[]

Temp=[]
	

def ini_read_main(filename):
	Fileobject = open(filename, 'r')
	Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read sample spectra
	#
	##############################################################
	while Data[0]<>'#':
		Row = string.split(Data)
		Spectrum[Row[0]]=[Row[2],0,0.0,0.0,0.0]
		Spectrum_list.append(Row[0])
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read standard-star spectrum
	#
	##############################################################
	while Data[0]<>'#':
		Row = string.split(Data)
		Standard_star_spectrum[Row[0]]=[Row[2],0,0.0,0.0,0.0]
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read filter information
	#
	##############################################################
	while Data[0]<>'#':
		Row=Data.split("|")
		Temp = map(string.strip,Row)
		Row = Temp
		Filter[Row[1]]=[Row[2],0,0.0,0.0,0.0,Row[0]]
		Temp = [Row[0],Row[3],Row[1]]
		Filter_list.append(Temp)
		Data = Fileobject.readline()
	Filter['U']=['filter/U.csv',0,0.0,0.0,0.0,'U']
	Filter['B']=['filter/B.csv',0,0.0,0.0,0.0,'B']
	Filter['V']=['filter/V.csv',0,0.0,0.0,0.0,'V']	
	Filter['R']=['filter/R.csv',0,0.0,0.0,0.0,'R']
	Filter['I']=['filter/I.csv',0,0.0,0.0,0.0,'I']
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read atmospheric transparency
	#
	##############################################################
	while Data[0]<>'#':
		Row=Data.split("|")
		Temp = map(string.strip,Row)
		Row = Temp
		Atmosphere[Row[0]]=[Row[0],0,0.0,0.0,0.0]
		Atmosphere_conditions[Row[0]]=[Row[0],float(Row[1]),float(Row[2])]
		k=0
		Data = Fileobject.readline()
	for i in Atmosphere_conditions.keys():
		for j in range(len(Water_list)):
			if Atmosphere_conditions[i][1] == Water_list[j]:
				k=1
		if k==0:
			Water_list.append(Atmosphere_conditions[i][1])
		k=0
	k=0	
	for i in Atmosphere_conditions.keys():
		for j in range(len(Airmass_list)):
			if Atmosphere_conditions[i][2] == Airmass_list[j]:
				k=1
		if k==0:
			Airmass_list.append(Atmosphere_conditions[i][2])
		k=0
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read background-spectrum filename
	#
	##############################################################
	while Data[0]<>'#':
		Row=Data.split("|")
		Temp = map(string.strip,Row)
		Row = Temp
		Background[Row[0]]=[Row[0],0,0.0,0.0,0.0]
		Background_conditions[Row[0]]=[Row[0],float(Row[1]),float(Row[2])]
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	HAWAII-2 Detector 1
	#
	##############################################################
	Row = string.split(Data)
	Hawaii[Row[0]]=[Row[2],0,0.0,0.0,0.0]
	Data = Fileobject.readline()
	while Data[0]<>'#':
		Row = string.split(Data)
		Hawaii_conditions[Row[0]]=float(Row[2])
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	HAWAII-2 Detector 2
	#
	##############################################################
	Row = string.split(Data)
	Hawaii[Row[0]]=[Row[2],0,0.0,0.0,0.0]
	Data = Fileobject.readline()
	while Data[0]<>'#':
		Row = string.split(Data)
		Hawaii_conditions[Row[0]]=float(Row[2])
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	LBT specifications
	#
	##############################################################
	while Data[0]<>'#':
		Row = string.split(Data)
		LBT[Row[0]]=float(Row[1])
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	Cameratypes
	#	Transmission and imagescale of LUCIFER without grating
	#
	##############################################################
	#Row = string.split(Data)
	#Data = Fileobject.readline()
	#LUCIFER[Row[0]]=[Row[1],Row[2],Row[3]]
	Temp=[]
	while Data[0]<>'#':
		Row = string.split(Data)
		LUCIFER[Row[0]]=[Row[1], float(Row[2])]
		Camera[Row[0]]=[Row[1],0,0.0,0.0,0.0]
		Temp.append(Row[0])
		Camera_list.append(Row[0])
		Data = Fileobject.readline()
	#LUCIFER['Cameratypes']=Temp
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read entrance-window information
	#
	##############################################################
	while Data<>"" and Data[0]<>'#':
		Row = string.split(Data)
		EW[Row[0]]=[Row[2],0,0.0,0.0,0.0]
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read correction information
	#
	##############################################################
	while Data<>"" and Data[0]<>'#':
		Row = string.split(Data)
		Correction[Row[0]]=[Row[2],0,0.0,0.0,0.0]
		Data = Fileobject.readline()
	Fileobject.close()

def ini_read_spectrum(filename):
	Fileobject = open(filename, 'r')
	##############################################################
	#
	#	read comment
	#
	##############################################################
	Data = Fileobject.readline()
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	grating parameter
	#
	#############################################################
	while Data[0]<>'#':
		Row=Data.split("|")
		Temp = map(string.strip,Row)
		Row = Temp
		Grating[Row[0]]=[Row[0],0,0.0,0.0,0.0]
		Temp = ["%s / %s" % (Row[1], Row[2]), Row[3], Row[4], Row[5], Row[6], Row[7]]
		Grating_list.append(Temp)
		String="N1.8_"+Row[1]+"_"+Row[2]+"_"+Row[3]
		Dispersion[String]=float(Row[5])
		String="N3.75_"+Row[1]+"_"+Row[2]+"_"+Row[3]
		Dispersion[String]=float(Row[6])
		String="N30_"+Row[1]+"_"+Row[2]+"_"+Row[3]
		Dispersion[String]=float(Row[7])
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read slit information
	#
	##############################################################
	while Data[0]<>'#':
		Row=Data.split("|")
		Temp = map(string.strip,Row)
		Row = Temp
		Slit_list.append([Row[0],Row[1],Row[2]])
		Data = Fileobject.readline()
	##############################################################
	#
	#	read comment
	#
	##############################################################
	while Data[0]=='#':
		Data = Fileobject.readline()
	##############################################################
	#
	#	read correction information
	#
	##############################################################
	while Data<>"" and Data[0]<>'#':
		Row = string.split(Data)
		Correction[Row[0]]=[Row[2],0,0.0,0.0,0.0]
		Data = Fileobject.readline()
	Fileobject.close()
