Ejemplo n.º 1
0
# Rechne NEP 1-Knoten-Szenario
#main.model_scenario('/home/dbeier/reegis/scenarios/deflex/2014/deflex_2014_de02_NEP.xls', name="NEP2030", rmap="de02", year=2014)

main.model_scenario('/home/dbeier/reegis/scenarios/deflex/2014/deflex_2014_de02.xls')
#main.model_scenario('/home/dbeier/reegis/scenarios/deflex/2014/deflex_2014_de21_no-heat_no-reg-merit.xls')


#scenario_tools.DeflexScenario()
path= '/home/dbeier/reegis/scenarios/deflex/2014/results_cbc/NEP2030.esys'
de02_NEP = results.load_es(path)
results_obj = de02_NEP.results['main']

# Auswertung
cost_em = upstream_analysis.get_emissions_and_costs(de02_NEP,with_chp=True)
vlh = results.fullloadhours(de02_NEP)
mrbb = results.get_multiregion_bus_balance(de02_NEP)

# Extrahiere relevante Größen
demand = mrbb.DE01['out']['demand']['electricity']['all']
transformer = mrbb.DE01['in']['trsf']
ee_single =  mrbb.DE01['in']['source']['ee']
ee_single["bioenergy"] = transformer["pp"]["bioenergy"] + transformer["chp"]["bioenergy"]
ee_single["offshore"] = mrbb.DE02['in']['source']['ee']['wind']
residual_load = demand - ee_single.sum(axis=1)
excess = mrbb.DE01['out']['excess']+mrbb.DE02['out']['excess']
shortage = mrbb.DE01['in']['shortage']

fossil = pd.DataFrame()
fossil_em=pd.DataFrame()
fossil["hard_coal"]=transformer["chp"]["hard_coal"]+transformer["pp"]["hard_coal"]
Ejemplo n.º 2
0
#                  smooth=True)
# plt.show()

# Deckung der Last mit "run"
my_reegis.reegis_plot.plot_multiregion_io(sc_calc)
plt.show()

# Mittlere Emissionen
mrbb = results.get_multiregion_bus_balance(sc_calc).groupby(level=[0, 3],
                                                            axis=1).sum()
EE = mrbb.DE01['ee'] + mrbb.DE02['ee']
share_ee = EE / mrbb.DE01['electricity']
em_mean = (1 - share_ee) * cost_em.emission

# Vollaststunden der Technologien ausgeben lassen
flh = results.fullloadhours(sc_calc)

# Emissionen nach Energeiträgern aufgelöst
results.emissions(sc_calc)

# Plot all buses
reegis_plot.plot_bus_view(es=sc_calc)
# Für Konsole
#reegis_plot.plot_bus_view2(es=sc_calc)

#Geoplots
#DE 13 ist SH und DE20 SH-angebundes offshore Gebiet
d = {
    'DE01': 0.7,
    'DE02': 0.5,
    'DE03': 2,
Ejemplo n.º 3
0
# Plot 2: MCP
new_df = multiple_jdl(erg_mcp)

plt.figure()
plt.plot(new_df)
plt.title('Marginale Grenzkosten', size='large')
plt.xlabel('Stunde des Jahres', size='large')
plt.ylabel('Kosten in €/MWh', size='large')
plt.legend(scens)

## Überschüsse in SH, Entwicklung von emissionen und Vollaststunden
flh_all, cost_em_param_all, excess_all, lb_saldo_sh, lb_saldo = pd.DataFrame(
), pd.DataFrame(), pd.DataFrame(), pd.DataFrame(), pd.DataFrame()

for n in scens:
    flh = results.fullloadhours(scens_dict.get(n), dropnan=True)['flh']
    cost_em_param = results.fetch_cost_emission(scens_dict.get(n))['emission']
    mrbb = results.get_multiregion_bus_balance(scens_dict.get(n))
    excess = mrbb.DE13.out.excess['electricity']['all']
    #excess = mrbb.DE01.out.excess['electricity']['all']
    p_saldo = mrbb.groupby(level=[0, 2], axis=1).sum()
    lb_saldo_sh[
        n] = p_saldo.DE13.trsf + p_saldo.DE13.source - p_saldo.DE13.demand
    #lb_saldo[n] = p_saldo.DE01.trsf + p_saldo.DE01.source - p_saldo.DE01.demand
    flh_all[n] = flh
    cost_em_param_all[n] = cost_em_param
    excess_all[n] = excess
    exc_tmp = excess.sort_values(ascending=False)

# Plot 3: Leistungsbilanzsaldo
plt_df = multiple_jdl(lb_saldo_sh)
Ejemplo n.º 4
0
    '/home/dbeier/reegis/scenarios/deflex/2014/results_cbc/deflex_2014_de21.esys'
)
de02_2014 = results.load_es(
    '/home/dbeier/reegis/scenarios/deflex/2014/results_cbc/deflex_2014_de02.esys'
)
#de17_2014 = results.load_es('/home/dbeier/reegis/scenarios/deflex/2014/results_cbc/deflex_2014_de17.esys')
#de02_2013 = results.load_es('/home/dbeier/reegis/scenarios/deflex/2013/results_cbc/deflex_2013_de02.esys')
results_obj = de21_2014.results['main']

# Results

# Kosten und Emissionen des Gesamtsystems
cost_em = upstream_analysis.get_emissions_and_costs(de02_2014, with_chp=True)

# Vollaststunden je Erzeugungseinheit
vlh = results.fullloadhours(de02_2014)

# Index des DataFrame auslesen
index = vlh.index
# Überprüfe alle indexlevel auf den Bestandteil DE13 = SH
sh = [x for x in index if 'DE13' in x[0:4]]
# Filtere DataFrame mit erstelltem Index
sh_data = vlh.loc[sh]

# Zeitreihen
# Filter:In- und Exporte nach source/storage/shortage etc.
multi_reg_res = results.get_multiregion_bus_balance(de02_2014).groupby(
    level=[1, 2], axis=1).sum()

# Vollständige Multiindex DF
# Level 0 = Regionen
Ejemplo n.º 5
0
def prepare_deflex_for_comparison(path_to_results):
    # Load energy system from results
    de_dispatch = results.load_es(path_to_results)
    results_obj = de_dispatch.results['main']

    # Auswertung
    cost_em = upstream_analysis.get_emissions_and_costs(de_dispatch,
                                                        with_chp=True)
    vlh = results.fullloadhours(de_dispatch)
    mrbb = results.get_multiregion_bus_balance(de_dispatch)

    # Extrahiere relevante Größen
    demand = mrbb.DE01['out']['demand']['electricity']['all']
    transformer = mrbb.DE01['in']['trsf']
    generation = pd.DataFrame(index=transformer.index)
    ee_single = mrbb.DE01['in']['source']['ee']
    generation["Biomass"] = transformer["pp"]["bioenergy"] + transformer[
        "chp"]["bioenergy"]
    generation[
        "Wind"] = ee_single["wind"] + mrbb.DE02['in']['source']['ee']['wind']
    generation["Hydro"] = ee_single["hydro"]
    generation["PV"] = ee_single["solar"]
    generation["Nuclear"] = transformer["pp"]["nuclear"]
    #generation["Nuclear"] = mrbb.DE01['in']['source']['ee']['geothermal']
    generation["Hard Coal"] = transformer["chp"]["hard_coal"] + transformer[
        "pp"]["hard_coal"]
    generation["Lignite"] = transformer["chp"]["lignite"] + transformer["pp"][
        "lignite"]
    generation["Natural Gas"] = transformer["chp"][
        "natural_gas"] + transformer["pp"]["natural_gas"]
    generation["Others"]=transformer["chp"]["other"]+transformer["pp"]["other"] + transformer["chp"]["oil"] + \
                         transformer["pp"]["oil"] + mrbb.DE01['in']['source']['ee']['geothermal']
    generation["Pump"] = mrbb.DE01["out"]["storage"]

    # Emissionszeitreihe
    em_per_technology = results.fetch_cost_emission(de_dispatch, with_chp=True)
    em_mix = pd.DataFrame()
    em_mix[
        "hardcoal_chp"] = transformer["chp"]["hard_coal"] * em_per_technology[
            "emission"]["hard_coal"]["DE01"]["chp"]
    em_mix["hardcoal_pp"] = transformer["pp"]["hard_coal"] * em_per_technology[
        "emission"]["hard_coal"]["DE01"]["pp"]
    em_mix["lignite_chp"] = transformer["chp"]["lignite"] * em_per_technology[
        "emission"]["lignite"]["DE01"]["chp"]
    em_mix["lignite_pp"] = transformer["pp"]["lignite"] * em_per_technology[
        "emission"]["lignite"]["DE01"]["pp"]
    em_mix["natural_gas_chp"] = transformer["chp"]["natural_gas"] * \
                                em_per_technology["emission"]["natural_gas"]["DE01"]["chp"]
    em_mix["natural_gas_pp"] = transformer["pp"][
        "natural_gas"] * em_per_technology["emission"]["natural_gas"]["DE01"][
            "pp"]
    em_mix["oil_chp"] = transformer["chp"]["oil"] * em_per_technology[
        "emission"]["oil"]["DE01"]["chp"]
    em_mix["oil_pp"] = transformer["pp"]["oil"] * em_per_technology[
        "emission"]["oil"]["DE01"]["pp"]
    em_mix["other_chp"] = transformer["chp"]["other"] * em_per_technology[
        "emission"]["other"]["DE01"]["chp"]
    em_mix["other_pp"] = transformer["pp"]["other"] * em_per_technology[
        "emission"]["other"]["DE01"]["pp"]

    em_factor_deflex = em_mix.sum(axis=1) / demand
    p_spot_deflex = cost_em["mcp"]

    return generation, p_spot_deflex, em_factor_deflex