#!/usr/bin/python3
import pandas as pd
import numpy as np
from glob import glob
import os
import sys

#input_dir = "/home/disk/picea/mauger/2020_12_SnohoCounty_Flooding/DATA/stilly_wrf_results/pub/"
input_dir = "/home/disk/tsuga2/jswon11/workdir/2020-07_Stilly-autocalibration/hyak/stilly_el_Tvar/pub/"
#input_dir = "/home/disk/picea/mauger/2020_12_SnohoCounty_Flooding/DATA/pub/stilly_wrf_results/"
data_dir = "/home/disk/tsuga2/jswon11/workdir/2020-07_Stilly-autocalibration/hyak/stilly_el_Tvar/"
loc_file = "/home/disk/picea/mauger/2020_12_SnohoCounty_Flooding/DATA/stilly_wrf_results/scripts/loc_list.csv"
ldf = pd.read_csv(loc_file)

def setup2():
    locs = next(os.walk(input_dir))[1]
    durs = [ '1hour', '1day', '3day', '7day' ]
    futs = [ ("2050s","2040-2069"), ("2080s","2070-2099") ]

    gcms = sorted(glob("{}/data/*RCP85".format(data_dir)))
    gcms = [ os.path.basename(g) for g in gcms ]
    df = pd.DataFrame()
    print(gcms)
    
    for loc in locs:
        print(loc)
        for dur in durs:            
            for (pds, yrs) in futs:            
                cdf = pd.DataFrame()
                for gcm in gcms:
                    his = pd.read_csv("{}/{}/{}_{}_1990s_{}_PeakStats.csv".format(input_dir, loc, loc, gcm, dur))
                    cdf["Recurrance Interval"] = his['RtnYr']

                    fut = pd.read_csv("{}/{}/{}_{}_{}_{}_PeakStats.csv".format(input_dir, loc, loc, gcm, pds, dur))
                    his50 = his["50"]
                    fut50 = fut["50"]
                    pch = (fut50 - his50) / his50 * 100
                    cdf[gcm] = pch

                cdf.insert(0, "Future Years", yrs)
                cdf.insert(0, "Historical Years", "1981-2010")
                cdf.insert(0, "Duration", dur)
                cdf.insert(0, "Site ID", loc)

                fullname = ldf[ldf.loc2==loc]['loc3']
                fullname = fullname.values[0] if not fullname.empty else np.nan
                cdf.insert(0, "Site Name", fullname)
                df = df.append(cdf)
            
    df.to_csv("{}/Summary_PeakStats.csv".format(input_dir), index=False, float_format="%0.3f")

    
setup2()
