Code Monkey home page Code Monkey logo

sector-coupled-euro-calliope's People

Contributors

sjpfenninger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sector-coupled-euro-calliope's Issues

Handling Eurostat data based on different NUTS years

Different NUTS years lead to different shapefiles associated with different datasets. This is currently dealt with by having a mapping table to define which NUTS regions in each NUTS year correspond to which of the 'eurospores' 98 regions. A better approach would be to combine all eurostat data with corresponding NUTS shapefiles early on, and store them as rasters. Then, any euro-calliope regionalisation can mask the datasets without needing a mapping table.

Waste stream and incinerators

Some countries have a non-negligible incineration of waste. This should be included in the model, and could be done in one of a few ways:

  1. Include waste as a carrier that can be used in place of e.g. biofuel in CHPs
  2. include waste in the biofuel carrier stream
  3. Remove contribution of waste incinerators from demand timeseries, based on current production of heat and electricity from waste. This would need to be a flat line, since we don't have timeseries data

At any rate, we would include only current national incineration rates, on the assumption that a. waste streams won't increase substantially relative to population, and b. that countries who are against waste incineration will remain as such while those who are for it have already reached the limit on how much they are willing/able to incinerate.

dependance on 'when2heat'

The When2Heat dataset is a heat demand dataset that can be found on OPSD. We use some of their scripts to produce heat demand. We don't depend entirely on their scripts, since they can only handle national shapefiles and are limited in scope. To get these scripts, the script repository is cloned as a rule. This should be updated to do one of the following:

a. clone a specific commit hash, to ensure some degree of reproducibility
b. re-implement the scripts locally (I think the licence is sufficiently permissive to allow this)
c. request/submit upstream changes to When2Heat so that it works for all our requirements, rather than only a subset, and can be installed via pip/conda-forge.

reference_temperature

II find the variable name a bit confusing. A reference temperature to me would be a static value that you compare observations against. I think, however, that reference_temperature is a time series here. Just temperature would be clearer in my opinion

Better handling of carrier resolution

For instance, at the moment it is possible to have 'water_heat' and 'space_heat' as separate carriers or aggregated into one carrier ('heat'). The workflow currently works with all, but will break on anything other than 'heat' when filling templates in the euro-calliope submodule. This breaking change was introduced in one of the two latest commits, to push through a rapid update to how heat techs are represented.

Anyway, the method for handling these different carriers is quite messy and could do with cleaning in general.

Different demands when re-running the workflow

Re-runs seem to generate different annual demands than those in the pre-builts of the model. Most of these are marginal, but in some cases they can be significant (>10%, so far I only see these in heat and bau_electricity demands).

This generally affects the following:

  • space heat
  • cooking
  • water
  • industry specific demands (methane, methanol, diesel, bau_electricity...)

image

I suspect issue #9 is one of the culprits, at least on the heat side of things. No idea on what is causing industry demands to change.

tests and schema

Config could do with a schema (true for all workflows related to euro-calliope) and there could do with being more tests for these workflows. There are assertions in files, which will lead to the workflow breaking if there is data consistency, but they are hardly comprehensive.

Add nuclear

Some countries still plan on having nuclear power up to 2050 (namely FR, CZ, and UK), which should be put in as a fixed capacity to meet electricity demand (with a small modulation capability). The exact 2050 quantity depends on the data source. Based on current lit review:

Country 2017 capacity 2017 source 2050 capacity (GW) 2050 source Comments EUTIMES values
ALB: Albania 0 0?
All 101 https://www.statista.com/statistics/263993/generation-capacity-of-nuclear-power-worldwide-by-2030/ OECD Europe
All 111 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 34 - 73 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf NORTHERN, WESTERN AND SOUTHERN EUROPE
AUT: Austria 0 0 0
BEL: Belgium 5.918 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0 http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/48/058/48058392.pdf?r=1 0
BGR: Bulgaria 1.926 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 3.2? https://www.world-nuclear.org/information-library/country-profiles/countries-a-f/bulgaria.aspx 3.18
BIH: Bosnia and Herzegovina 0 0
CHE: Switzerland 3.333 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0 https://en.wikipedia.org/wiki/Nuclear_energy_policy_by_country Need to improve source 0
CYP: Cyprus 0 0
CZE: Czechia 3.930 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 6.23-7.86 https://ec.europa.eu/energy/sites/ener/files/documents/ec_courtesy_translation_cz_necp_0.pdf Based on increase in the share of electricity generation coming from nuclear by 2040 3.42
DEU: Germany 9.515 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0 https://en.wikipedia.org/wiki/Nuclear_energy_policy_by_country Need to improve source 0
DNK: Denmark 0 0
ESP: Spain 7.121 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0 https://ec.europa.eu/energy/sites/ener/files/documents/es_swd_en.pdf 0
EST: Estonia 0 0 0
FIN: Finland 2.769 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf >0? https://tem.fi/documents/1410877/2769658/Government+report+on+the+National+Energy+and+Climate+Strategy+for+2030/0bb2a7be-d3c2-4149-a4c2-78449ceb1976/Government+report+on+the+National+Energy+and+Climate+Strategy+for+2030.pdf 4.7?
FIN: Finland 2.769 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 2.75? https://www.world-nuclear.org/information-library/country-profiles/countries-a-f/finland.aspx
FRA: France 63.130 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 22 - 58.6 https://www.ademe.fr/sites/default/files/assets/documents/ademe-energy-transition-scenarios-2030-2050-english-french-7942.pdf Depends on which scenario the country takes.
Based on expected production of electricity from nuclear * CF of all current french nuclear plants in 2018 (https://cnpp.iaea.org/countryprofiles/France/France_tables.htm) 3.26
GBR: United Kingdom 8.918 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 8.9 https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/789655/Nuclear_electricity_in_the_UK.pdf 17.04
GRC: Greece 0 0 0
HRV: Croatia 0 0 0
HUN: Hungary 1.889 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0 https://en.wikipedia.org/wiki/Nuclear_energy_policy_by_country Need to improve source 2.79
HUN: Hungary 1.889 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 1.2 https://ec.europa.eu/energy/sites/ener/files/documents/ec_courtesy_translation_hu_necp.pdf "Pursuant to the intergovernmental agreement between Hungary and the Russian Federation, two new nuclear power plant units will be built in Hungary by 2030, each with a capacity of 1200MW (Paks 2)."
IRL: Republic of Ireland 0 0 0
ITA: Italy 0 0 6.6
LTU: Lithuania 0 0 1.35
LUX: Luxumbourg 0 0 0
LVA: Latvia 0 0 0
MKD: North Macedonia 0 0 0
MNE: Montenegro 0 0 0
NLD: Netherlands 0.482 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0 https://www.government.nl/topics/renewable-energy/documents/reports/2016/04/28/energy-report-transition-tot-sustainable-energy "Under the current market conditions, there is no demand for a new nuclear power plant, however the cabinet does not rule out new nuclear technologies being deployed in the future, as long as they are safe." 1.2
NOR: Norway 0 0 0
POL: Poland 0 0 6
PRT: Portugal 0 0 0
ROU: Romania 1.300 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0.65 - 2.65 http://www.enpg.ro/wp-content/uploads/2018/12/NECP-Romania-EPG-Analysis.pdf 4 CANDU reactors, 650MW each, with 4th going online in 2031. Depends on when the other 3 go online (i.e. are they decommissioned by 2050?) 0.72
SRB: Serbia 0 0 0
SVK: Slovakia 1.814 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0.94-3.34 https://www.world-nuclear.org/information-library/country-profiles/countries-o-s/slovakia.aspx Depends on if 2.4 GW of planned capacity is realised 1.59
SVN: Slovenia 0.688 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf ? Very ambiguous as to whether any nuclear is on the agenda 1.6
SWE: Sweden 8.629 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf 0? https://ec.europa.eu/energy/sites/ener/files/documents/sweden_draftnecp.pdf 2040 100% renewables target, although it specifically states that it isn't a deadline for banning nuclear 0
SWE: Sweden 8.629 https://www-pub.iaea.org/MTCD/Publications/PDF/RDS-1-38_web.pdf ? http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/48/058/48058392.pdf?r=1 "in June 2016, the Swedish parliament announced an agreement to phase out over two years a tax on installed nuclear capacity and to allow the construction of up to ten nuclear reactors to replace existing plants. The agreement was described as supporting Sweden’s goal to have a 100% renewable electricity system by 2040 but without requiring nuclear phase-out by that date"

Terminology

The two main functions in this script (get_demand_profiles and get_heat_profiles) have very similar names. The situation gets more confusing as "heat demand" is also a thing. It seems that get_demand_profiles loads and outputs some parameters (a "demand profile shape") while get_heat_profiles actually calculates a set of time series. It probably all makes sense somehow, but would either need better documentation and/or clearer names for me to understand easily.

Decouple all subsectors as much as possible

If you don't want to model a particular subsector, only a minimal set of data processing related to that subsector should be undertaken. At the moment the rules annual_subnational_demand and update_electricity_with_other_sectors are the most troublesome w.r.t. decoupling, since expect all sectors to be involved. The reason for current coupling is two-fold:

  1. Similar datasets and spatial operations are used to disaggregate national data to subnational units; separating them might lead to lots of time spent doing the same operation multiple times.
  2. Each subsector uses some amount of electricity at present, which is removed from the OPSD electricity demand profile. This is undertaken all in one go at the moment, since they all touch the same output file.

Only need site-wide mean wind speed for this analysis

What does site-wide mean? I find it difficult to understand what is going on, for example, in this line

wind = weather_df.xs('wind_speed', level='dataset', axis=1).mean()

because I have no idea what axis=1 is and I haven't found a way to interact with the data to check myself.

Solar thermal timeseries

At the moment, solar thermal is planned for inclusion as a heat provider, but we have no rules to generate the timeseries. This requires using a modified version of GSEE to combine direct and diffuse irradiation for evacuated tube and flat plate collectors.

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.