import pylab
import mflst

import bro

cfd_2_mgd = 7.481 / 1.0e6

#--use maxentries to process the file if model is still running - otherwise a race condition between time and budget
maxentries = None

file_name = 'bro.list'
ltime = mflst.lsttime(file_name,start=bro.start)
ltime.load(maxentries=maxentries) 
df_time = ltime.to_pandas()
df_time.to_csv('list_time.csv',index_label=('ts','sp'))
mfb = mflst.mfbudget(file_name)    
mfb.load(maxentries=maxentries)
df_flux,df_cumu = mfb.to_pandas()

df_flux.to_csv('list_flux.csv',index_label=('ts','sp'))
df_cumu.to_csv('list_cumu.csv',index_label=('ts','sp'))

df_flux.index = df_time['datetime']
df_cumu.index = df_time['datetime']

#df_flux = df_flux.merge(df_time,left_index=True,right_index=True)
#df_cumu = df_cumu.merge(df_time,left_index=True,right_index=True)

#--sum all the outs and ins
df_fluxin = df_flux['in'].sum(axis=1)
df_fluxout = df_flux['out'].sum(axis=1)
import numpy as np
import pylab
import pandas
import mflst

modelnames = ['_model\\simple','_model\\simple_l','_model\\simple_rc']
names = ['base','layer','rowcol']
colors = ['k','b','g']

dfs = []
for mname in modelnames:
    lst = mflst.mfbudget(mname+'.list')
    lst.load()
    df_flux,df_vol = lst.to_pandas()
    df_flux_diff = df_flux['in'] - df_flux['out']
    df_flux_diff.index = df_flux_diff.index.get_level_values(1)
    dfs.append(df_flux_diff)

for ftype in dfs[0].columns:
    print ftype
    fig = pylab.figure(figsize=(6,6))
    ax = pylab.subplot(111)
    for df,name,color in zip(dfs,names,colors):
        ax.plot(df[ftype].index,df[ftype].values,color=color)
    ax.set_title(ftype)
    ax.legend(names)
    pylab.savefig('png\\'+ftype+'.png',fmt='png',dpi=300,bbox_inches='tight')

import pylab
import mflst

import bro

cfd_2_mgd = 7.481 / 1.0e6

#--use maxentries to process the file if model is still running - otherwise a race condition between time and budget
maxentries = None

file_name = 'bro.list'
ltime = mflst.lsttime(file_name, start=bro.start)
ltime.load(maxentries=maxentries)
df_time = ltime.to_pandas()
df_time.to_csv('list_time.csv', index_label=('ts', 'sp'))
mfb = mflst.mfbudget(file_name)
mfb.load(maxentries=maxentries)
df_flux, df_cumu = mfb.to_pandas()

df_flux.to_csv('list_flux.csv', index_label=('ts', 'sp'))
df_cumu.to_csv('list_cumu.csv', index_label=('ts', 'sp'))

df_flux.index = df_time['datetime']
df_cumu.index = df_time['datetime']

#df_flux = df_flux.merge(df_time,left_index=True,right_index=True)
#df_cumu = df_cumu.merge(df_time,left_index=True,right_index=True)

#--sum all the outs and ins
df_fluxin = df_flux['in'].sum(axis=1)
df_fluxout = df_flux['out'].sum(axis=1)
import numpy as np
import pylab
import pandas
import mflst
from bro import flow
'''compare the wel+swr flux to the wel flux
'''
maxentries=749
swr_lst = mflst.mfbudget('flow.list')
wel_lst = mflst.mfbudget('flow_noriv.list')

ltime = mflst.lsttime('flow.list',start=flow.start)
ltime.load(maxentries=maxentries) 
swr_time = ltime.to_pandas()

swr_lst.load(maxentries=maxentries)
swr_flux,swr_cumu = swr_lst.to_pandas()
swr_flux.index = swr_time['datetime']

wel_lst.load(maxentries=maxentries)
wel_flux,swr_cumu = wel_lst.to_pandas()
wel_flux.index = swr_time['datetime']

tot_swr_flux = -1.0 * np.loadtxt('tot_vol_record.dat',usecols=[1])

fig = pylab.figure()
ax1 = pylab.subplot(311)
ax2 = pylab.subplot(312)
axt = pylab.twinx()
ax3 = pylab.subplot(313)