Giter Site home page Giter Site logo

pypsa-ariadne's Issues

Hiding options [sector][transport] under the hood

At the moment in scenario.yaml the options for [sector][transport] are visible even though they are changed dynamically within the workflow. Tom suggests to hide and overwrite them without displaying them in the file.

heat pumps at AC bus instead of low voltage

existing urban decentral and rural heat pumps (buld year <2020) draw electricity from the AC bus, newly build ones from the low voltage bus. that's a bug and everything should be connected to low voltage

Run with load_shedding

When running with load_shedding to debug the oil bus we realized that it is used sometimes and that this load_shedding is actually independent of the oil bus.

  • when development has slowed down a bit, run the model with load shedding, see if it still occurs and find out why

Accounting renewable CH4 import to Germany

Problem

The German GHG target does not account for the export/import of renewable gas.
So far, in addditional_functionality.py the function add_co2limit_country() sums over all German links emitting CO2 and subtracting/adding only renewable oil related emissions. This translates to encouraging the export of renewable gas from Germany to other countries since it relaxes the GHG emission target for Germany

Since the gas buses are spatially resolved, the issue becomes more complicated than the unraveling of the oil bus.

First thoughts

In a first brainstorm session with @lindnemi we discussed the following solution which leads to doubling the number of gas storage and gas buses quadrupling of gas links.
image

Missing Biofuels

Problem

  • Final Energy|Transportation|Liquids|Biomass in ariadne database
  • We don't model biofuels yet

image
image
image

  • rest is used for (n)avi(g)ation

Implemention proposal:

  • adding configuration of
    • [sector][land_transport_ice_biofuel_share]
    • [sector][shipping_biofuel_share]
    • [sector][aviation_biofuel_share]
  • prepare_sector_network.py
    • add_land_transport(), add_industry()
    • adding buses, loads and links
    • biofuels have unavoidable CO2 emissions (approx. 70 % compared to fossil fuels)

Comment

We have to add unsustainable biomass especially for 2020. Exogenously forcing a phase out or adding CO2 emissions for that.
Maybe add a cheaper source of biomass and phase out its potential.

New database connection

Wir haben für die 2. Projektphase eine neue interne Instanz der Szenarien-Datenbank bei IIASA angelegt: https://data.ene.iiasa.ac.at/ariadne2-intern/#/workspaces.

In der neuen DB sind die folgenden Szenarien-Slots für den Upload der neuen Szenarien verfügbar:

CurrentPolicies
KN2045_Bal_v4
KN2045_Elec_v4
KN2045_H2_v4
KN2045plus_LowDemand
KN2045plus_EasyRide
KN2045minus_WorstCase
KN2045minus_SupplyFocus

CurrentPolicies als bessere Bezeichnung für das Trend-Szenario, KN2045plus steht für mögliche Übererfüllung der Ziele, KN2045minus für eine mögliche Zielverfehlung.

Es bestehen die bisherigen Berechtigungen zum Up- und Download, ebenso gilt die Nutzungsvereinbarung, der alle zugriffsberechtigten Teams zugestimmt haben (zur Sicherheit noch einmal im Anhang). Insbesondere sind alle geteilten Szenarien-Ergebnisse nur intern zu verwenden und vertraulich zu behandeln.
Wie schon in Projektphase 1, wird es demnächst wieder zusätzlich eine öffentliche Instanz geben.

Viele Grüße,
Frederike

Get energy services from Aladin

Since #95,we need variables form Aladin for the transportation transformation (in build_scenarios.py). However, at the moment these are not included in the database.REMIND is used as an intermediate replacement, but should be swapped out eventually

h2_import_limits

Functionality for h2_import_limits (additional_functionality) might not work as intended. Reasons:

  • only the carrier "H2 pipeline" is considered, there might be other carriers: H2 pipeline (Kernnetz), H2 pipeline new, H2 pipeline retrofitted?
  • determining the incoming and outgoing pipelines based on bus0 and bus1 is not having the intended outcome as the buses stay the same for the reversed pipelines?
  • Code:
    def h2_import_limits(n, snapshots, investment_year, config):

Missing Final Energy|Transportation|Liquids

image

The variable Final Energy|Liquids is ~360 PJ lower compared to Remind. This is mostly due to the discrepancy between Final Energy|Liquids|Transportation| and reality.
The initial data in PyPSA-Eur (see pop_weighted_energy_totals_s_{nodes}.csv) is correct. The subcategories total road and non electricity rail add up to 618TWh = 2224.8 PJ. Together with the subcategories domestic aviation = 10.5 TWh and domestic navigation = 3.4TWh this adds to 2274 PJ which is only 40 PJ shy of what Remind is exporting.
The conversion steps to kilometers traveled and then to a oil load leads to a loss of 357 PJ in demand.

Real values e.g. taken from DLR

add SMR capacities build between 1990-2020

Observation:

  • SMR capacity stays constant

Explanation:

  • lifetime in technology data is 30 years (could cover 2020-2050) and most SMR will probably be built in 2020 -- in 2050 it's probably of no/limited use
  • But in real life some SMR would be built in 1990-2020 and we don't take account of this

Fix:

  • add SMR capacities built between 1990-2020 and ensure that they are phased out correctly

Validation of European CHP capacities

The installed CHP capacities tend to be underestimated for the countries included in Ariadne. As a consequence the urban central heat demand cannot always be met without additional investments in heat generators (Links) such as gas boilers.

Comparison with Eurostat data:
EC_chp_validation_EU

Capacities after optimization:
gas_boiler_chp_spatial

Exporting Industry excl Non-Energy Use Variables

So far the export_ariadne_variables.py there is no differentiation between Non-Energy Use and excl Non-Energy Use.
To the export the variables under the category Final Energy|Industry excl Non-Energy Use should be added.

Cluster Germany to Bundesstaaten

It would be nice to have 16 nodes in Germany, one for each Bundesstaat. Ariadne DB allows the states as regions, so we might want to report results on the state level at some point

missing keyword argument for H2 Kernnet

I ran the hydrogen scenario in its very prelimary definition, but got an error:

TypeError: lossy_bidirectional_links() got an unexpected keyword argument 'subset'

And that's exactly what happens. The keyword subset is used here

lossy_bidirectional_links(n, "H2 pipeline (Kernnetz)", losses, subset=names)

but not defined here
https://github.com/PyPSA/pypsa-eur/blob/0a0a35e4a4d8f891be81a05648145a9d14c86dae/scripts/prepare_sector_network.py#L3513

Turn Pypsa-Ariadne into Pypsa-DE

To do this we have to decouple the model from the Ariadne database.

Maybe provide a file with reasonable default input values and introduce a config option to switch from fully Open Source to Ariadne specific.

Planning horizon YEAR logic

Adding existing capacities: Atm we are adding existing capacities such that for planning horizon e.g. 2020 all existing capacities from 2020 until 2025 are added. This leads to existing capacities of e.g. solar PV of 81 GW (have been built until 2023) which are already present to the model in 2020.
However we are setting co2 constraints and capacity expansion limits (Ausbauziele EE) according to the specific year, where they should be reached. This means, the model has capacities from the future to meet current co2 targets. E.g. it has 2023 solar PV capacities to meet 2020 co2 targets.
Additionally we are implying limits on the capacity of e.g. solar expansion in 2020 and 2025. These limits apply for the specific year, which causes problems as the maximum targets are too low if the future capacity is added.

I suggest we align the logic such that planning horizon 2020 includes everything that is built until 2020. For 2025 this would mean the model has all capacities that are available until now and it uses the period 2020-2025 to optimize. Also the investment costs and capacity expansion would then apply to the period before the planning horizon.

Possible problems:

  • one would have to check how the existing capacities are phased out; whether this fits the suggested logic or not

Changes to be made (probably more :)):

  • change the grouping year logic such that only capacities until the year of the planning horizon are added
  • check the phasing out of existing capacities in the myopic workflow

Refinements of Wasserstoff-Kernnetz

  • check overlap of Kernnetz with IPCEI projects (I think there is code from Ammar)
  • Implement that those pipelines from Kernnetz marked as retrofitted gas pipelines remove corresponding gas pipeline capacity
  • consider build_year when adding capacities: custom_pipes.query("build_year <= @investment_year", inplace=True)
  • until 2030: only assume that pipelines from Kernnetz are built (p_nom_extendable=False, via p_nom taking into account build years (i.e. less in 2025 than in 2030)). Pipelines outside of Germany should be extendable because we don't have data.
  • after 2030: Set also H2 pipelines in Germany to p_nom_extendable=True but with Kernnetz capacities as p_nom_min (as implemented now).

NEP21 and NEP23 costs

Add config (if not already implemented in PyPSA-Eur) that allows to switch between NEP21/23 and overheadlines/cable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.