예제 #1
0
def get_cases(csv_export='cases.csv'):
    #query the table
    db.load()
    rawtbl = pd.read_sql('select * from cases', con=db.simeng)

    #assign group id
    caseid = list(rawtbl.caseid)
    caseid_nm = 0
    groupid_j = 0
    groupid = []
    for c in caseid:
        if c < caseid_nm:
            groupid_j = groupid_j + 1
        caseid_nm = c
        groupid.append(groupid_j)
    rawtbl['groupid'] = groupid
    rawtbl['groupcaseid'] = [
        caseid[i] * 100 + groupid[i] for i in range(len(caseid))
    ]
    if len(csv_export) > 0:
        rawtbl.to_csv(csv_export, index=False)
    pvt = pd.pivot_table(rawtbl,
                         index='groupcaseid',
                         values='value',
                         columns='parameter',
                         aggfunc='mean')

    return pvt
예제 #2
0
def import_parameters_from_excel():
    global ptbl, GROUPS, PARAM_XFILENAME
    db.load()
    tbls = [
        pd.read_excel(os.path.join(BASE_DIR, PARAM_XFILENAME), grp)
        for grp in GROUPS
    ]
    ptbl = pd.concat(tbls, axis=0)
    ptbl.to_sql(db.PARAM_TABLE,
                con=db.simeng,
                if_exists='replace',
                index=False)
예제 #3
0
def run_mc(scope_groups=None,
           N_runs=500,
           refresh=True,
           threshold_conf=.8,
           conf_int=.9):
    global WATCH_FIELDS
    db.load()
    fun_handle = design.update
    input_table = db.PARAM_TABLE
    output_table = SQL_OUTPUT
    ctbl = monte_carlo(fun_handle=fun_handle,
                       output_fields=WATCH_FIELDS,
                       input_table=input_table,
                       output_table=output_table,
                       conf_int=conf_int,
                       con=db.simeng,
                       threshold_conf=threshold_conf,
                       N_runs=N_runs,
                       refresh=refresh,
                       scope_groups=scope_groups)
    return ctbl
예제 #4
0
def load():
    db.load()
예제 #5
0
def get_cases():
    db.load()
    casetbl = pd.read_sql('select * from ' + SQL_OUTPUT, con=db.simeng)
    return casetbl
예제 #6
0
from design import database as db
import seaborn as sb
import pandas as pd

#load database and query the case table
db.load()
tbl = pd.read_sql('select * from cases', con=db.simeng)

#create the pivot table of all good (not null) cases
bad_caseids = tbl[pd.isnull(tbl.value)].caseid.unique()
goodtbl = tbl[~tbl.caseid.isin(bad_caseids)].copy()
pvt = pd.pivot_table(goodtbl,
                     index='caseid',
                     values='value',
                     columns='parameter',
                     aggfunc='mean')

#plot kde harvest extension vs costs
sb.jointplot(x='plants_harvest_extension', y='opex', data=pvt, kind='kde')