Exemplo n.º 1
0
def update_consumption(run, simulation):
    start_time = time.time()
    print("Run choice: {}".format(run))
    print("Simulation choice: {}".format(simulation))
    contracts, profiles = dataprocess.open_file(simulation)
    contracts, profiles = contracts[int(run) - 1], profiles[int(run) - 1]
    profiles = dataprocess.neighbourhood_execution_energy_over_time(
        contracts, profiles)
    end_time = time.time()
    print("Time elapsed: {}".format(end_time - start_time))
    return go.Figure(data=[
        go.Scatter(x=profiles[0],
                   y=profiles[1],
                   name="Energy consumed locally",
                   marker=dict(color="#00A6FC")),
        go.Scatter(x=profiles[2],
                   y=profiles[3],
                   name="Energy consumed remotely",
                   marker=dict(color="#FF0000")),
        go.Scatter(x=profiles[4],
                   y=profiles[5],
                   name="Energy produced",
                   marker=dict(color="#008000")),
    ],
                     layout=go.Layout(
                         xaxis={"title": "Time [Minutes]"},
                         yaxis={"title": "Energy [Wh per minute]"}))
Exemplo n.º 2
0
def update_peak_av_ratio_single_house(household, interval, simulation, run):
    contracts, profiles = dataprocess.open_file(simulation)
    contracts = contracts[int(run) - 1]
    contracts_for_house = dataprocess.get_contracts_for_house(
        household, contracts)
    par = dataprocess.peak_to_average_ratio_consumption(
        contracts_for_house, int(interval))
    return html.P("Consumed peak to average ratio: {}".format(round(par, 2)))
Exemplo n.º 3
0
def update_peak_av_ratio(run, interval, simulation):
    if interval in [None, ""]:
        return html.P("Not a valid interval")
    contracts, profiles = dataprocess.open_file(simulation)
    contracts = contracts[int(run) - 1]
    par = dataprocess.peak_to_average_ratio_consumption(
        contracts, int(interval))
    return html.P("Consumed peak to average ratio: {}".format(round(par, 2)))
Exemplo n.º 4
0
def self_consumption_all(run, simulation):
    contracts = dataprocess.open_file(simulation)[0]
    contracts = contracts[int(run) - 1]
    grid = 0
    pv = 0
    for contract in contracts:
        if contract.get("producer_id") == "grid":
            grid += contract.get("load_profile").values[-1]
        else:
            pv += contract.get("load_profile").values[-1]
    return html.P("Total consumption for whole neighbourhood: {}".format(
        round(grid + pv, 2)))
Exemplo n.º 5
0
def update_pie_chart_header(household, simulation, run):
    contracts = dataprocess.open_file(simulation)[0]
    contracts = contracts[int(run) - 1]
    grid = 0
    pv = 0
    for contract in contracts:
        if contract.get("job_id").startswith("[{}]".format(household)):
            if contract.get("producer_id") == "grid":
                grid += contract.get("load_profile").values[-1]
            else:
                pv += contract.get("load_profile").values[-1]
    return html.P("Total consumption for household: {}".format(
        round(grid + pv, 2)))
Exemplo n.º 6
0
def update_contracts(run, simulation):
    contracts = dataprocess.open_file(simulation)[0]
    contracts = contracts[int(run) - 1]
    rows = []
    for contract in contracts:
        contract["load_profile"] = round(contract["load_profile"].values[-1],
                                         2)
        contract["time"] = dataprocess.convert(contract["time"])
        contract["time_of_agreement"] = dataprocess.convert(
            contract["time_of_agreement"])
        contract = dataprocess.rename_columns(contract)
        rows.append(contract)
    return rows
Exemplo n.º 7
0
def update_contracts(household, run, simulation):
    contracts = dataprocess.open_file(simulation)[0]
    contracts = contracts[int(run) - 1]
    rows = []
    for contract in contracts:
        if contract.get("job_id").startswith("[{}]".format(household)):
            contract["load_profile"] = round(
                contract.get("load_profile").values[-1], 2)
            contract["time"] = dataprocess.convert(contract["time"])
            contract["time_of_agreement"] = dataprocess.convert(
                contract["time_of_agreement"])
            contract = dataprocess.rename_columns(contract)
            rows.append(contract)
    return rows
Exemplo n.º 8
0
def update_pie_chart(run, simulation):
    contracts = dataprocess.open_file(simulation)[0]
    contracts = contracts[int(run) - 1]
    grid = 0
    pv = 0
    for contract in contracts:
        if contract["producer_id"] == "grid":
            grid += contract["load_profile"].values[-1]
        else:
            pv += contract["load_profile"].values[-1]
    return go.Figure(data=[
        go.Pie(values=[grid, pv],
               labels=["Grid", "PV"],
               marker=dict(colors=["#DF6461", "#2ecc71"]))
    ])
Exemplo n.º 9
0
def update_consumption(simulation):
    contracts, profiles = dataprocess.open_file(simulation)
    profiles_combined = dataprocess.neighbourhood_execution_energy_over_time_average(
        contracts, profiles)
    return go.Figure(data=[
        go.Scatter(x=profiles_combined[0],
                   y=profiles_combined[1],
                   name="Energy consumed locally",
                   marker=dict(color="#00A6FC")),
        go.Scatter(x=profiles_combined[2],
                   y=profiles_combined[3],
                   name="Energy consumed remotely",
                   marker=dict(color="#FF0000")),
        go.Scatter(x=profiles_combined[4],
                   y=profiles_combined[5],
                   name="Energy produced",
                   marker=dict(color="#008000")),
    ],
                     layout=go.Layout(xaxis={"title": "Time [Minutes]"},
                                      yaxis={"title": "Energy [W]"}))