import pandas as pd
import sys
import os
import numpy as np

# Apply precip and tmin delta using gridpoint deltas

args = sys.argv
ifile = args[1]
fn = os.path.basename(ifile).replace('delta', 'data').replace('.csv', '')
#opath = "/home/disk/rocinante/DATA/temp/WRF/scripts/regrid_c2c/longwave/output/rawWRF_ptmin_delta/"
#opath = "/home/disk/rocinante/DATA/temp/WRF/scripts/regrid_c2c/longwave/output/prism_grid_kndy/"
#opath = "/home/disk/rocinante/DATA/temp/WRF/scripts/regrid_c2c/longwave/output/prism_grid_cedar/"
opath = "/home/disk/rocinante/DATA/temp/WRF/scripts/regrid_c2c/longwave/metfile/green/prism_grid_green_v2/"
ddir = "/home/disk/rocinante/DATA/temp/WRF/validation/forc3/"
#deltaf = "/home/disk/tsuga2/jswon11/workdir/2021_09_KingCounty-Phase3/scripts/lelv/delta_livneh_15km/low_elev_delta.csv"
#delta_dir = "/home/disk/tsuga2/jswon11/workdir/2021_09_KingCounty-Phase3/scripts/lelv/delta_che/"
#delta_dir = "/home/disk/tsuga2/jswon11/workdir/2021_09_KingCounty-Phase3/scripts/lelv/delta/prism_delta_green_tzfix/"
delta_dir = "/home/disk/tsuga2/jswon11/workdir/2021_09_KingCounty-Phase3/scripts/lelv/delta/green_v2/"

dtfmt = "%m/%d/%Y-%H:%M:%S"
os.makedirs(opath, exist_ok=True)

ifile = "{}/{}".format(ddir, fn)

df = pd.read_csv(ifile, header=None, sep=' ')
df.columns = ['date', 'temp', 'wind', 'rh', 'sw', 'lw', 'prec']
df.index = pd.to_datetime(df.date, format=dtfmt)
deltaf = "{}/{}.csv".format(delta_dir, fn.replace('data', 'delta'))
dlt = pd.read_csv(deltaf)
mons = df.index.month.values
delta = [dlt.Tmin[x-1] for x in mons]
prec = np.array([dlt.Prec[x-1] for x in mons])
df.temp += delta
df.prec *= prec
df.index = df.index.shift(-8, freq='H')
df.date = df.index.strftime(date_format=dtfmt)

opath = "{}/{}".format(opath, fn)
print(opath)
df.to_csv(opath, header=False, index=False, sep=' ')


#def read_rf(ifile):
#    dtfmt = "%m/%d/%Y-%H:%M:%S"
#    df = pd.read_csv(ifile, header=None, sep=' ')
#    df.columns = ['date', 'temp', 'wind', 'rh', 'sw', 'lw', 'prec']
#    df.drop['date', axis=1]
#    df.index = pd.to_datetime(df.date, format=dtfmt)
#    df.index = df.index.shift(-8, freq='H')
#    return df
