# -*- coding: utf-8 -*-
"""
Created on Mon Jul 27 17:27:29 2015
@author: GraphicPrototype
Jorge Martinez Rey

"""
#from netCDF4 import Dataset, num2date
import numpy as np
import matplotlib.pyplot as pl
import pandas as pd
from datetime import date
from datetime import datetime
import re, datetime
from matplotlib.dates import DateFormatter

folder = '/Users/jmartinez/Sites/MGClimDeX/Dev_1/SC/'
root_begin = '/Users/jmartinez/Documents/Projects/MTQ/Daily/STA_PR/'

multikeysCAM=[]
multidate=[]
yearCAM=[]
counter=0
format_str = '%d-%b-%Y' # The format

container_date=[]
container_values=[]
container_name=[]

theyear=[]
themonth=[]

fp = open('/Users/jmartinez/Documents/Projects/MTQ/Extremes/Crosscheck_Cyc.txt','r') 
for i in fp.readlines():
    sdata = i.strip()
    ndata = sdata.split('/')
    pre = [int(i) for i in ndata[1:]]
    theyear.append(pre)
#    mneg.append(pre)
fp.close()


fp=open(root_begin+'All_Stations.txt','r')

for t in fp.readlines():
    qdata=t.strip()   
    nami=qdata[0:4]

    regionsCAM = root_begin+str(qdata)
    fw=open(regionsCAM,'r')
    
    for g in fw.readlines():
        sdata = g.strip()
        ndata = sdata.split("\t")
        date=ndata[0][1:-1]
        end=ndata[1]
        datefin = datetime.datetime.strptime(date, format_str)
        
        
        if (end=='-999'):
            multidate.append(datefin)
            multikeysCAM.append(np.nan)
            yearCAM.append(np.nan)
        else:
            multidate.append(datefin)
            multikeysCAM.append(np.float(end))
            yearCAM.append(np.float(ndata[0][-5:-1]))
    fw.close()
    
    #y=multikeys[::365]
    #x=range(1938,2017,1)
    
    dCAM=multidate
    yCAM=multikeysCAM
    xCAM=range(2000,2018,1)
    
#    yzero=[]
#    for i in range(0,79,1):
#        if (i<61):
#            yzero.append(999.0)
#        else:
#            yzero.append(yCAM[61-i])
    
    hs2=pd.DataFrame({"tas":yCAM[:],"stn":nami})
    hs2=hs2.fillna(999)
#    hs2.reset_index().to_json(orient='records',path_or_buf=folder+str(nami)+'_obs.json')
    
    multidate=[]
    multikeysCAM=[]
    yearCAM=[]
    yzero=[]
    counter=counter+1
    
    container_date.append(dCAM)
    container_values.append(yCAM)
    container_name.append(nami)

fp.close()  

myFmt = DateFormatter("%d") 
#for rr in range(0,len(container_date)):
    
""" ----------------------------- Filter for Pandas ------------------------- """    
for dd in range(0,len(theyear)):

    lowlim = datetime.datetime(theyear[dd][1], theyear[dd][0], 1)
    highlim = datetime.datetime(theyear[dd][1], theyear[dd][0], 28)
    
    for uu in range(0,len(container_name)):
        theindex=[]
        thevalue=[]
        theday=[]
        for tt in range(0,len(container_date[uu])):
            check = True if container_date[uu][tt] >= lowlim and container_date[uu][tt] <= highlim else False
            if check:
                theday.append(container_date[uu][tt])
                thevalue.append(container_values[uu][tt])
        
        hs2=pd.DataFrame({"values":thevalue,"day":theday})
        hs2=hs2.fillna(999)
#        hs2.reset_index().to_json(date_format='iso',orient='records',path_or_buf=folder+str(container_name[uu])+'_on_'+str(dd)+'.json') 
            
""" ------------------------------------------------------------------------- """
    
for rr in range(0,1):
  for dd in range(0,len(theyear)):

    fig, ax = pl.subplots(1,1)
    pl.rcParams['font.family'] = "Arial"
    pl.rcParams['xtick.labelsize'] = 8 

    ax.plot(container_date[rr],container_values[rr], color= "black",alpha=0.9,linewidth=2)

#    ax.plot(container_date[0],container_values[0], color= "black",alpha=0.2,linewidth=1)
#    ax.set_xlim([datetime.date(2017, 9, 1), datetime.date(2017, 9, 30)])
    ax.set_xlim([datetime.date(theyear[dd][1], theyear[dd][0], 1), datetime.date(theyear[dd][1], theyear[dd][0], 28)])

    ax.set_ylim([0,250])
    ax.xaxis.set_major_formatter(myFmt); 
    ax.tick_params(labelsize=8)
    newtitle=container_name[rr].upper()
    ax.set_title(newtitle,fontsize=16,loc='right')
    ax.set_xlabel(str(theyear[dd][0])+' '+str(theyear[dd][1])+' mm/yyyy')
    ax.set_ylabel('PR (mm/day)')
    ax.set_aspect('auto')
#    pl.savefig("/Users/jmartinez/Desktop/MARIA/MARIA_"+str(container_name[rr])+".pdf", dpi=300, bbox_inches='tight')
    
#    hs2=pd.DataFrame({"tas":yCAM[:],"stn":nami})
#    hs2=hs2.fillna(999)
#    hs2.reset_index().to_json(orient='records',path_or_buf=folder+str(nami)+'_obs.json')
    
#    ax.axhline(0, color='black',alpha=.5,linewidth=.75)
#    ax.legend(fontsize=6,frameon=False,loc="upper left", bbox_to_anchor=(1,1))

#    ax.minorticks_on()
#    ax.tick_params(axis='x',which='minor',bottom='off')
#    newtitle=good_names[rr].upper()
#    ax.set_title(newtitle,fontsize=16,loc='right')
#    ax.grid(linestyle='dotted')    
#    ax.set_xlabel('Month')
#    ax.set_ylabel('PgC/mth')
#    pl.savefig("/Users/jmartinez//Documents/Projects/BCOM/TMP/NBP_"+str(regions[rr])+".pdf", dpi=300, bbox_inches='tight')
#
#


