import os

import numpy

from gavo.helpers import processing
from gavo.utils import imgtools
from gavo.utils import pyfits
from gavo import api
api.LoggingUI(api.ui)


def scaleUp(arr):
	res = []
	for row in arr:
		newRow = numpy.column_stack((row, row)).ravel()
		res.append(newRow)
		res.append(newRow)
	return numpy.array(res)


class PreviewMaker(api.PreviewMaker):
	def getPreviewData(self, srcName):
		arr = pyfits.open(
				os.path.join(api.getConfig("inputsDir"), srcName)
			)[0].data
		return imgtools.colorJpegFromNumpyArrays(
			scaleUp(arr[3, :, :]),
			scaleUp(arr[600, :, :]),
			scaleUp(arr[1699, :, :]), gamma=1)

if __name__=="__main__":
	processing.procmain(PreviewMaker, "califa/q", "import_cubes")
	processing.procmain(PreviewMaker, "califa/q2", "import_cubes")
	processing.procmain(PreviewMaker, "califa/q3", "import_cubes")
