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

#input_dir = "/home/disk/tsuga2/jswon11/workdir/2020-07_Snoho-autocalibration/WRF_runs/pub/"
#loc_file = "/home/disk/tsuga2/jswon11/workdir/2020-07_Snoho-autocalibration/WRF_runs/scripts/loc_list.csv"
input_dir = "/home/disk/rocinante/DATA/temp/chico/hyak/writeup/pub_stream/"
loc_file = "/home/disk/rocinante/DATA/temp/chico/hyak/writeup/scripts/loc_list.csv"

ldf = pd.read_csv(loc_file)

def setup2():
    locs = next(os.walk(input_dir))[1]
    dursP = [ '1hour', '1day' ]
    dursL = ['1day', '7day' ]
    prds = [ "1990s", "2050s", '2080s']    
    gcms = sorted(glob("/home/disk/rocinante/DATA/temp/chico/hyak/data_atmos/*RCP*"))
    gcms = [ os.path.basename(g) for g in gcms ]
    
    pkdf = pd.DataFrame()
    lwdf = pd.DataFrame()
    

    for loc in locs:
        print(loc)
        for dur in dursP:            
            for prd in prds:
                
                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']
                    gdf = pd.read_csv("{}/{}/{}_{}_{}_{}_PeakFlows.csv".format(input_dir, loc, loc, gcm, prd, dur))
                    cdf[gcm] = gdf['PeakFlow']
                cdf.insert(0, "WYear", gdf.WYEAR) 
                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)   
                pkdf = pkdf.append(cdf)

        for dur in dursL:
            for prd in prds:

                cdf = pd.DataFrame()
                for gcm in gcms:
                    gdf = pd.read_csv("{}/{}/{}_{}_{}_{}_LowFlows.csv".format(input_dir, loc, loc, gcm, prd, dur))
                    cdf[gcm] = gdf['LowFlow']
                cdf.insert(0, "WYear", gdf.WYEAR)
                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)
                lwdf = lwdf.append(cdf)


                
    pkdf.to_csv("{}/Summary_PeakFlows.csv".format(input_dir), index=False, float_format="%0.1f")
    lwdf.to_csv("{}/Summary_LowFlows.csv".format(input_dir), index=False, float_format="%0.1f")

    
setup2()

