from gavo.helpers import processing

import os
import pyfits

class SpecExaminer(processing.HeaderProcessor):
	def _getAverage(self, srcName):
		hdus = pyfits.open(srcName)
		samples = hdus[0].data
		hdr = hdus[0].header
		return sum(samples)/float(len(samples))

	def classify(self, srcName):
		return self.getPrimaryHeader(srcName).get("FLUXCAL", "unknown")

	def _isProcessed(self, srcName):
		return "FLUXCAL" in self.getPrimaryHeader(srcName)

	def _mungeHeader(self, srcName, hdr):
		val = self._getAverage(srcName)
		if val >= 0.5 and val <= 1.5:
			hdr.set('FLUXCAL', 'NORMALIZED', "continuum-normalized spectrum")
		else:
			hdr.set('FLUXCAL', 'UNCALIBRATED', "uncalibrated spectrum")
		return hdr

if __name__=="__main__":
	processing.procmain(SpecExaminer, "flashheros/q", "import")
