* allow H2 retrofitting from CH4 pipelines without endogenous CH4 grid
* add small capital cost to gas pipelines to incentivise decommissioning
* add release notes
* for now use n.snapshot_weightings.generators
* require pypsa master; use .objective for Nyears
* implement suggestions from code review
* add release note
* Omitting unnecessary constraints on the CHP units
All CHPs in pypsa-eur-sec are operating on the backpressure line and this set of extra constraints to ensure working in the operational space of the CHPs is hence not necessary at the moment.
* remove chp constraints function call
* ammonia_production: minor cleaning and move into __main__ (#106)
* biomass_potentials: code cleaning and automatic country index inferral (#107)
* Revision: build energy totals (#111)
* blacken
* energy_totals: preliminaries
* energy_totals: update build_swiss
* energy_totals: update build_eurostat
* energy_totals: update build_idees
* energy_totals: update build_energy_totals
* energy_totals: update build_eea_co2
* energy_totals: update build_eurostat_co2
* energy_totals: update build_co2_totals
* energy_totals: update build_transport_data
* energy_totals: add tqdm progressbar to idees
* energy_totals: adjust __main__ section
* energy_totals: handle inputs via Snakefile and config
* energy_totals: handle data and emissions year via config
* energy_totals: fix reading in eurostat for different years
* energy_totals: fix erroneous drop duplicates
This caused problems for waste management in HU and SI
* energy_totals: make scope selection of CO2 or GHG a config option
* Revision: build industrial production per country (#114)
* industry-ppc: format
* industry-ppc: rewrite for performance
* industry-ppc: move reference year to config
* industry-ppct: tidy up and format (#115)
* remove stale industry demand rules (#116)
* industry-epc: rewrite for performance (#117)
* Revision: industrial distribution key (#118)
* industry-distribution: first tidying
* industry-distribution: first tidying
* industry-distribution: fix syntax
* Revision: industrial energy demand per node today (#119)
* industry-epn: minor code cleaning
* industry-epn: remove accidental artifact
* industry-epn: remove accidental artifact II
* industry-ppn: code cleaning (#120)
* minor code cleaning (#121)
* Revision: industry sector ratios (#122)
* sector-ratios: basic reformatting
* sector-ratios: add new read_excel function that filters year already
* sector-ratios: rename jrc to idees
* sector-ratios: rename conv_factor to toe_to_MWh
* sector-ratios: modularise into functions
* Move overriding of component attributes to function and into data (#123)
* move overriding of component attributes to central function and store in separate folder
* fix return of helper.override_component_attrs
* prepare: fix accidental syntax error
* override_component_attrs: bugfix that aligns with pypsa components
* Revision: build population layout (#108)
* population_layouts: move inside __main__ and blacken
* population_layouts: misc code cleaning and multiprocessing
* population_layouts: fix fill_values assignment of urban fractions
* population_layouts: bugfig for UK-GB naming ambiguity
* population_layouts: sort countries alphabetically for better overview
* config: change path to atlite cutout
* Revision: build clustered population layouts (#112)
* population_layouts: move inside __main__ and blacken
* population_layouts: misc code cleaning and multiprocessing
* population_layouts: fix fill_values assignment of urban fractions
* population_layouts: bugfig for UK-GB naming ambiguity
* population_layouts: sort countries alphabetically for better overview
* cl_pop_layout: blacken
* cl_pop_layout: turn GeoDataFrame into GeoSeries + code cleaning
* cl_pop_layout: add fraction column which is repeatedly calculated downstream
* Revision: build various heating-related time series (#113)
* population_layouts: move inside __main__ and blacken
* population_layouts: misc code cleaning and multiprocessing
* population_layouts: fix fill_values assignment of urban fractions
* population_layouts: bugfig for UK-GB naming ambiguity
* population_layouts: sort countries alphabetically for better overview
* cl_pop_layout: blacken
* cl_pop_layout: turn GeoDataFrame into GeoSeries + code cleaning
* gitignore: add .vscode
* heating_profiles: update to new atlite and move into __main__
* heating_profiles: remove extra cutout
* heating_profiles: load regions with .buffer(0) and remove clean_invalid_geometries
* heating_profiles: load regions with .buffer(0) before squeeze()
* heating_profiles: account for transpose of dataarray
* heating_profiles: account for transpose of dataarray in add_exiting_baseyear
* Reduce verbosity of Snakefile (2) (#128)
* tidy Snakefile light
* Snakefile: fix indents
* Snakefile: add missing RDIR
* tidy config by removing quotes and expanding lists (#109)
* bugfix: reorder squeeze() and buffer()
* plot/summary: cosmetic changes including: (#131)
- matplotlibrc for default style and backend
- remove unused config options
- option to configure geomap colors
- option to configure geomap bounds
* solve: align with pypsa-eur using ilopf (#129)
* tidy myopic code scripts (#132)
* use mock_snakemake from pypsa-eur (#133)
* Snakefile: add benchmark files to each rule
* Snakefile: only run build_retro_cost if endogenously optimised
* Snakefile: remove old {network} wildcard constraints
* WIP: Revision: prepare_sector_network (#124)
* population_layouts: move inside __main__ and blacken
* population_layouts: misc code cleaning and multiprocessing
* population_layouts: fix fill_values assignment of urban fractions
* population_layouts: bugfig for UK-GB naming ambiguity
* population_layouts: sort countries alphabetically for better overview
* cl_pop_layout: blacken
* cl_pop_layout: turn GeoDataFrame into GeoSeries + code cleaning
* move overriding of component attributes to central function and store in separate folder
* prepare: sort imports and remove six dependency
* prepare: remove add_emission_prices
* prepare: remove unused set_line_s_max_pu
This is a function from prepare_network
* prepare: remove unused set_line_volume_limit
This is a PyPSA-Eur function from prepare_network
* prepare: tidy add_co2limit
* remove six dependency
* prepare: tidy code first batch
* prepare: extend override_component_attrs to avoid hacky madd
* prepare: remove hacky madd() for individual components
* prepare: tidy shift function
* prepare: nodes and countries from n.buses not pop_layout
* prepare: tidy loading of pop_layout
* prepare: fix prepare_costs function
* prepare: optimise loading of traffic data
* prepare: move localizer into generate_periodic profiles
* prepare: some formatting of transport data
* prepare: eliminate some code duplication
* prepare: fix remove_h2_network
- only try to remove EU H2 store if it exists
- remove readding nodal Stores because they are never removed
* prepare: move cost adjustment to own function
* prepare: fix a syntax error
* prepare: add investment_year to get() assuming global variable
* prepare: move co2_totals out of prepare_data()
* Snakefile: remove unused prepare_sector_network inputs
* prepare: move limit p/s_nom of lines/links into function
* prepare: tidy add_co2limit file handling
* Snakefile: fix tabs
* override_component_attrs: add n/a defaults
* README: Add network picture to make scope clear
* README: Fix date of preprint (was too optimistic...)
* prepare: move some more config options to config.yaml
* prepare: runtime bugfixes
* fix benchmark path
* adjust plot ylims
* add unit attribute to bus, correct cement capture efficiency
* bugfix: land usage constrained missed inplace operation
Co-authored-by: Tom Brown <tom@nworbmot.org>
* add release notes
* remove old fix_branches() function
* deps: make geopy optional, remove unused imports
* increase default BarConvTol
* get ready for upcoming PyPSA release
* re-remove ** bug
* amend release notes
Co-authored-by: Tom Brown <tom@nworbmot.org>
* Propagate the solver log file name to the solver
Previously, the PyPSA network solving functions were not told about
the solver logfile specified in the Snakemake file.
* Pass solver_logfile on as kwargs
The `solve_network` function passes any additional arguments on to the
pypsa `network_lopf` and `ilopf` functions. Now we also pass
`solver_logfile` on as part of kwargs.
Running the rule solve_network in the university cluster, I was getting a "No space left on device" error. Making solve_dir=tmpdir by default avoids this error and makes it easier to identify any problem with temp files
In almost 99.5% of cases the CHP dispatches along the backpressure
line where heat output is proportional to electricity output.
So we can switch to a single link to avoid the burden of modelling the
full electricity-heat feasibility space of CHPs.
This only applies to large CHPs in district heating networks.
* release_notes: order for release
* doc: fix smaller typos and tidy up
* config: bump version
* doc: fix line references
* doc: bump confpy version
* envs: update fixed versions yaml
* Snakefile: simplify all_elec to all
Strategy is too keep as much of configuration in config.yaml as
possible.
We also aim to allow exogenous investment-year-dependent
configurations to be done in a similar manner (e.g. share of district
heating or FCEV transport).
Rather than taking a mean of the clustered connection costs.
Apply cost update also for overnight scenarios based on planning year.
Add land costs for onshore wind.
- add_brownfield.py: Have to make sure that for each CHP there is both
a heat and electric link, but they have different p_nom for each
CHP, so have to make sure we don't remove one without the other.
- solve_network.py: Make sure extra_functionality constraints for CHP
power-heat feasibility graph also work for non-extendable CHPs.
This simplifies the structure of add_brownfield.py dramatically.
Some other changes need to be make elsewhere because of name
changes (e.g. battery constraints in solve_network.py).
* changes for retrofitting
* changed Snakefile to work with new pypsa-eur version, change solve_network.py to clip also n.generators_t.p_min_pu
* removed retrofitting data files
* rewrite mocksnakemake for parsing real Snakefile
* continue add function to scripts
* going through all scripts, setting new mocksnakemake
* fix plotting scripts
* fix build_country_flh
* fix build_country_flh II
* adjust config files
* fix make_summary for tutorial network
* create dir also for output
* incorporate suggestions
* consistent import of mocksnakemake
* consistent import of mocksnakemake II
* Update scripts/_helpers.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/_helpers.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/_helpers.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/_helpers.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/plot_network.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/plot_network.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/retrieve_databundle.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* use pathlib for mocksnakemake
* rename mocksnakemake into mock_snakemake
* revert change in data
* Update scripts/_helpers.py
Co-Authored-By: euronion <42553970+euronion@users.noreply.github.com>
* remove setting logfile in mock_snakemake, use Path in configure_logging
* fix fallback path and base_dir
fix return type of make_io_accessable
* reformulate mock_snakemake
* incorporate suggestion, fix typos
* mock_snakemake: apply absolute paths again, add assertion error
*.py: make hard coded io path accessable for mock_snakemake
* retrieve_natura_raster: use snakemake.output for fn_out
* include suggestion
* Apply suggestions from code review
Co-Authored-By: Jonas Hörsch <jonas.hoersch@posteo.de>
* linting, add return ad end of file
* Update scripts/plot_p_nom_max.py
Co-Authored-By: Jonas Hörsch <jonas.hoersch@posteo.de>
* Update scripts/plot_p_nom_max.py
fixes#112
Co-Authored-By: Jonas Hörsch <jonas.hoersch@posteo.de>
* plot_p_nom_max: small correction
* config.tutorial.yaml fix snapshots end
* use techs instead of technology
* revert try out from previous commit, complete replacing
* change clusters -> clusts in plot_p_nom_max due to wildcard constraints of clusters
* change clusters -> clusts in plot_p_nom_max due to wildcard constraints of clusters II
* Add logging to logfiles to all snakemake workflow scripts.
* Fix missing quotation marks in Snakefile.
* Apply suggestions from code review
Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de>
* Apply suggestions from code review
Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de>
* doc: fix _ec_ filenames in docs
* Allow logging message format to be specified in config.yaml.
* Add logging for Snakemake rule 'retrieve_databundle '.
* Add limited logging to STDERR only for retrieve_*.py scripts.
* Import progressbar module only on demand.
* Fix logging to file and enable concurrent printing to STDERR for most scripts.
* Add new 'logging_format' option to Travis CI test config.yaml.
* Add missing parenthesis (bug fix) and cross-os compatible paths.
* Fix typos in messages.
* Use correct log files for logging (bug fix).
* doc: fix line references
* config: logging_format in all configs
* doc: add doc for logging_format
* environment: update to powerplantmatching 0.4.3
* doc: update line references for tutorial.rst
* Change logging configuration scheme for config.yaml.
* Add helper function for doing basic logging configuration.
* Add logpath for prepare_links_p_nom rule.
* Outsource basic logging configuration for all scripts to _helper submodule.
* Update documentation for changed config.yaml structure.
Instead of 'logging_level' and 'logging_format', now 'logging' with subcategories is used.
* _helpers: Change configure_logging signature.