#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun Jun 18 00:11:41 2017

@author: Felix Henningsen
"""

'''
The MetroPy Header File:
    Generates the header of the Metrology Check plots.
'''
#### Initialization
from sys import argv
FITS_file = argv[1]
rmsLength = int(argv[2])
resolution = int(argv[3])
img = argv[4]

#### Importing
# necessary things from the init file
from MetroPy_Init import header, plotstyle

# import necessary packages
import os
import matplotlib.pyplot as plt
# plotstyle for Metrology data
plt.style.use(plotstyle)

#### decrypt the header contents 
# the file that was analyzed
file_name = FITS_file
# the physics data
def HeaderIn(i, k):
    try:
        var = header[i].strip()
        if k != None:
            var = header[i].strip()[k:]
    except IndexError:
        var = 'Not specified'
    return var

date_ph = HeaderIn(2, None)
# the start and end time
date_start = HeaderIn(0, 6)
date_end = HeaderIn(1, 6)
# the science object
met_object = HeaderIn(59, 9)
# type and swapped
met_type = HeaderIn(66, 8)
met_swapped = HeaderIn(60, 9)
# templ, number and exposures
met_templ = HeaderIn(58, 6)
met_no1 = HeaderIn(56, 6)
met_no2 = HeaderIn(57, 5)
met_exp1 = HeaderIn(64, 6)
met_exp2 = HeaderIn(65, 5)
# object specs
object_x = HeaderIn(61, 6)
object_y = HeaderIn(62, 6)
# array
met_array = HeaderIn(43, 9)
met_array1 = HeaderIn(52, 9)
met_array2 = HeaderIn(53, 9)
met_array3 = HeaderIn(54, 9)
met_array4 = HeaderIn(55, 9)
# delay lines
met_delay1 = HeaderIn(44, 4)
met_delay2 = HeaderIn(45, 4)
met_delay3 = HeaderIn(46, 4)
met_delay4 = HeaderIn(47, 4)

# plot and save
 
# file name
# date 
# from (time zero)
# to (time end)
# object
# type, swapped
# templ, number x of y, exposure a of b
# array
# delay lines

size = [10, 10]
    
fig = plt.gcf()
fig.set_size_inches(size)

ax = fig.add_subplot(111)

# big text
plt.rcParams['font.size'] = 12
# small text
smaller_text = 8

# text
ax.text(0.5, 9, 'METROPY Checkplots: %s' %FITS_file, color='red')
ax.text(0.5, 8.25, 'Date: %s' %date_ph)
ax.text(0.5, 7.5, 'from %s' %date_start,
        fontsize=smaller_text)

ax.text(0.5, 6.75, 'to %s' %date_end,
        fontsize=15)

ax.text(0.5, 6., 'Object: %s' %met_object)
ax.text(0.5, 5.25, 'Type: %s, Swapped: %s' %(met_type,
                                             met_swapped),
        fontsize=smaller_text)
    
ax.text(0.5, 4.5, 'Templ: %s' %(met_templ),
        fontsize=smaller_text)

ax.text(0.5, 3.75, 'No. %s of %s, Expos. %s of %s' %(met_no1,
                                                     met_no2,
                                                     met_exp1,
                                                     met_exp2),
        fontsize=smaller_text)

ax.text(0.5, 3., 'Object x = %s mas, y = %s mas' %(object_x,
                                                    object_y),
        fontsize=smaller_text)

ax.text(0.5, 2.25, 'Array %s, %s-%s-%s-%s' %(met_array,
                                          met_array1,
                                          met_array2,
                                          met_array3,
                                          met_array4))
ax.text(0.5, 1.5, 'Delay Lines %s %s %s %s' %(met_delay1,
                                             met_delay2,
                                             met_delay3,
                                             met_delay4))

ax.axis([0, 10, 0, 10])

ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)

plt.savefig('%s.hdr.%s' %(FITS_file, img), bbox_inches='tight')
