#!/usr/bin/python3
import pandas as pd
import sys
import os

args = sys.argv
ifile = args[1]
cnames = ['date', 't2', 'wnd', 'rh', 'sw', 'lw', 'prec']
dtfmt = "%m/%d/%Y-%H:%M:%S"

gcm = os.path.basename(os.path.dirname(ifile))
odir = "/home/disk/rocinante/DATA/temp/WRF/pnnl_interp_forc/bclw_leapfix/"
gdir = "{}/{}/".format(odir, gcm)
os.makedirs(gdir, exist_ok=True)
fname = os.path.basename(ifile)

df = pd.read_csv(ifile, header=None, sep=' ', names=cnames)
df.index  = pd.to_datetime(df.date, format=dtfmt)
df = df.drop(['date'], axis=1)

# Add in the missing leap days as na
dates = pd.date_range(df.index[0], df.index[-1], freq='H')
dates = pd.DataFrame(index=dates)
df = dates.join(df, how='left')

# Fill in na leap days with previous day values
df.update(df.shift(24), overwrite=False)

# Fix precip values - set to 0.000254m
df.prec[(df.index.month==2) & (df.index.day==29)] = 0.000254

# Format and write output
df['prec'] = df.prec.apply(lambda x: "{:0.6f}".format(x))
out = "{}/{}".format(gdir, fname)
print(fname)
df.to_csv(out, header=False, date_format=dtfmt, sep=' ', float_format='%.3f')
