Commit Graph

323 Commits

Author SHA1 Message Date
Fabian
5fe4032e47 solve_network: reinsert docstring 2023-03-10 16:07:21 +01:00
Fabian Hofmann
30b8bb3c94
Update scripts/solve_network.py
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2023-03-10 16:00:52 +01:00
Fabian
99a9ea8beb adress review comments 2023-03-10 15:58:53 +01:00
Fabian
4f0ddf2e95 fix Nyears scaling 2023-03-10 14:12:22 +01:00
Fabian
2baf8f5ba4 harmonive solve_network across workflow 2023-03-09 23:56:12 +01:00
pre-commit-ci[bot]
a9b09e4ae4 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-03-09 13:27:08 +00:00
Max Parzen
4cb21f05ec add Linopy to PyPSA 2023-03-09 13:24:25 +00:00
Fabian Neumann
91ea0a3f55 docs: rearrange sections 2023-03-09 13:28:42 +01:00
Fabian Neumann
43f226b2a3 split solve network rules, take summary scripts from Sec 2023-03-06 12:10:23 +01:00
Fabian Neumann
97bbafdd70 Merge remote-tracking branch 'pypsa-eur-sec/master' into merge-pypsa-eur-sec 2023-03-06 11:54:08 +01:00
pre-commit-ci[bot]
5ab10eae37 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-03-06 08:40:21 +00:00
Fabian
3bbd321b82 config: separate solver_options
solve_network: adjust code to new solver_options config
2023-03-06 09:35:11 +01:00
pre-commit-ci[bot]
13769f90af [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-03-06 08:27:46 +00:00
lisazeyen
332936bcec adjust p_nom_max if existing larger 2023-02-22 17:44:05 +01:00
Fabian
7e87044424 solve_network: warn if network is not optimal 2023-02-21 21:58:42 +01:00
Fabian Neumann
9c1182fe96 prepare release 0.7 2023-02-16 11:50:55 +01:00
Fabian
7d5d48ac26 solve network: fix sequestration constraint 2023-02-10 18:58:30 +01:00
Fabian
98e3c7ab2c solve_network: fix kwargs in solve_network 2023-02-08 22:59:36 +01:00
Fabian
f4d0415cf0 solve_network: activate co2 seq constraint
Snakefile: retrieve data bundle from pypsaeur function
2023-02-08 18:19:31 +01:00
Fabian Hofmann
d144547d87
Merge branch 'ci-review' into linopy-integration 2023-02-08 15:37:00 +01:00
Fabian
faa95c500c config: modularize solver_options 2023-02-08 15:24:17 +01:00
Fabian
69dabc367f ci: fix test configs 2023-02-08 15:24:17 +01:00
Fabian
6c57b81a4a config: move solver options in dedicated section
test configs: reduce to relative changes
CI: use snakemake --configfile options
2023-02-08 15:24:17 +01:00
Fabian
c25091ce34 solve_network.py: switch to linopy interface 2023-02-08 15:19:32 +01:00
Fabian
c8f601edf8 solve.py: start converting extra_funcionalities 2023-02-08 15:19:32 +01:00
Fabian Neumann
27e6039379
Merge branch 'master' into pz-max-patch-2 2023-01-28 08:26:28 +01:00
pre-commit-ci[bot]
8bdba5653a [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-01-23 21:27:20 +00:00
Max Parzen
545a734b7b
Merge branch 'master' into pz-max-patch-2 2022-12-16 12:20:58 +00:00
Max Parzen
9e61e30ff4
Fix EQ constraint in case no hydro exist 2022-12-16 11:00:39 +00:00
Max Parzen
b7899787cf
Fix load variable in reserve constraint 2022-12-16 10:50:20 +00:00
pre-commit-ci[bot]
94e5f160b0 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-11-25 10:16:23 +00:00
martacki
643a62049b solve_network: move extra_functionality to args 2022-11-25 11:08:35 +01:00
lisazeyen
9a74e3d699 set co2seq to limit of sequestration potential 2022-09-29 09:12:36 +02:00
lisazeyen
7606562449 update sector opt for co2 seq potential 2022-09-28 16:09:53 +02:00
pre-commit-ci[bot]
5d1ef8a640 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-09-16 13:04:06 +00:00
Fabian Neumann
9cf5be84fd bugfix: solve_network should look for wildcard sector_opts 2022-08-03 17:07:19 +02:00
Fabian Neumann
2857691367
Merge pull request #246 from PyPSA/meta
store config and wildcards in n.meta
2022-08-01 21:01:06 +02:00
Fabian Neumann
a1507124f6 Merge branch 'release-v0.5' into meta 2022-07-27 09:43:36 +02:00
Fabian Neumann
8fc0c57ed6 update copyright years 2022-07-26 15:05:59 +02:00
Fabian Neumann
cb00ba58ce add option to specify any config through sector opts with CF:<label>:...:value 2022-07-20 11:35:12 +02:00
Fabian Neumann
b96207c73e store config and wildcards in n.meta 2022-06-30 08:42:18 +02:00
Fabian Neumann
217780263d store config and wildcards in n.meta 2022-06-30 08:39:03 +02:00
Fabian Hofmann
3294ad92eb
Update scripts/solve_network.py
Co-authored-by: Martha Frysztacki <martha.frysztacki@kit.edu>
2022-06-28 13:14:47 +02:00
Fabian Neumann
5ca231824e
Merge branch 'master' into eu-energy-security 2022-06-27 08:58:37 +02:00
Fabian Neumann
2a55ad2162
Merge branch 'master' into load-shedding-carrier 2022-06-24 20:19:37 +02:00
Fabian
441d7d56f9 fix eafs and conventional setttings 2022-06-23 16:04:49 +02:00
lisazeyen
cfdec7e56d simplify pipe retrofitting constraint 2022-04-12 10:04:27 +02:00
Fabian Neumann
a4dab4306b merge master 2022-04-11 17:10:17 +02:00
Fabian Neumann
40c882f0e9 solve: allow to parse load shedding cost in config 2022-04-08 13:19:25 +02:00
Fabian Neumann
630fb9783f fix to operational reserve margin to work without any extendable gens 2022-04-07 17:20:56 +02:00
Fabian Neumann
84e146834c Apply suggestion from code review to add switch 2022-04-07 15:22:10 +02:00
Fabian Neumann
3678e5c523 Add operational reserve margin constraint analogous to GenX
Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>
2022-04-07 14:39:34 +02:00
Fabian Neumann
1a82b87587 skip iterations if no lines are expandable 2022-03-24 14:30:28 +01:00
lisazeyen
03fca360ff style improvement 2022-03-21 09:14:15 +01:00
lisazeyen
08cef37e7e improve code style 2022-03-18 10:22:00 +01:00
lisazeyen
5502943301
scripts/solve_network.py: Style improvement
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2022-03-17 18:15:59 +01:00
Fabian
d16f24fc07 follow up 2022-03-03 23:08:29 +01:00
Fabian
8700f63cdb solve_network: fix load shedding attributes 2022-03-03 18:13:54 +01:00
martacki
6cdf3a2879 use snakemake keywords directly without extracting them beforehand 2022-01-24 19:48:26 +01:00
Tim Pedersen
0d7ad643bc
Resolved error whith /tmp (#224) 2022-01-24 14:34:54 +01:00
martacki
f28a088ea3 arguments in function calls instead of kwarg-style 2022-01-14 11:30:15 +01:00
martacki
deac9f32e7 move snakemake keys (input, output, config, ...) to own variables 2022-01-14 11:05:15 +01:00
lisazeyen
9f8b54a3ce adjust pipe retrofitting constraint to work with myopic 2022-01-07 16:59:14 +01:00
Fabian Neumann
d1762919c5
add option 'seqXXX' to sweep global co2 sequestration potentials (#208)
* add option 'seqXXX' to sweep global co2 sequestration potentials

* add release notes
2021-12-10 12:05:38 +01:00
Fabian Neumann
82096f92e8
fix for GlobalConstraints mu with "co2_sequestration_limit" (#211)
* fix for GlobalConstraints mu with co2_sequestration_limit

* add release notes
2021-12-06 11:31:48 +01:00
Fabian Neumann
a2459881ef
allow H2 retrofitting from CH4 pipelines without endogenous CH4 grid (#204)
* allow H2 retrofitting from CH4 pipelines without endogenous CH4 grid

* add small capital cost to gas pipelines to incentivise decommissioning

* add release notes
2021-11-29 12:42:10 +01:00
Fabian Neumann
6a00d5bfca revision gas infrastructure representation 2021-11-03 20:34:43 +01:00
Fabian Neumann
37e2e53486
Merge branch 'master' into retrofit-gas-pipelines 2021-11-02 19:03:26 +01:00
Fabian Neumann
4375083838 create parallel structures for land-use constraints w/wo m 2021-10-02 10:40:49 +02:00
Fabian Neumann
ff6d736a89
Merge branch 'master' into myopic-low-clustering-gens 2021-09-30 14:51:45 +02:00
Fabian Neumann
2e02af8b4b change license 2021-09-14 16:37:41 +02:00
Martha Frysztacki
1c173567b5
solve_operations_network: include optimized stores to operation (#269)
* remove stores-buses from load generators

* include optimized stores to operation network

* add release notes

* Update doc/release_notes.rst

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>

* Update doc/release_notes.rst

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>

* Update release_notes.rst

* Update scripts/solve_network.py

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-08-18 10:38:51 +02:00
Fabian Neumann
54a509f3dd
Merge branch 'master' into co2-network 2021-08-06 15:51:40 +02:00
Fabian Neumann
4cc5e49ca8
Adapt to new snapshot weightings (#259)
* for now use n.snapshot_weightings.generators

* require pypsa master; use .objective for Nyears

* implement suggestions from code review

* add release note
2021-08-06 13:43:12 +00:00
Fabian Neumann
3754643e81 add co2 sequestration potential global constraint 2021-08-06 12:46:03 +02:00
Fabian Neumann
e1f1d71b8d apply option for retrofitted pipe capacity per CH4 capacity in solve_network 2021-08-04 10:49:06 +02:00
Leon
85111e2ae3
Omitting unnecessary constraints on the CHP units (#155)
* 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
2021-08-04 09:20:09 +02:00
lisazeyen
554b55ff3d
Update solve_network.py
fix bug in pipe retroftting constraint
2021-07-13 08:50:15 +02:00
Fabian Neumann
195cabba0c merge master 2021-07-06 09:55:41 +02:00
martavp
103ad49671 Enable use of lower generators clustering than network clustering 2021-07-05 12:19:43 +02:00
Fabian Neumann
89eccd4f70 merge master 2021-07-02 15:00:19 +02:00
Fabian Neumann
1fc1d2a17d
Revision complete (#139)
* 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>
2021-07-01 20:09:04 +02:00
lisazeyen
e7b55d034e modify constraint for pipe retrofitting according to H2 backbone strategy 2021-06-23 14:55:21 +02:00
lisazeyen
447c2119a6 add constraint for retrofitting existing gas pipes to H2 pipes 2021-06-21 12:34:47 +02:00
lisazeyen
c5b3551687 fix spelling mistake 2021-06-18 09:45:51 +02:00
lisazeyen
dbec103593 add mock_snakemake from pypsa-eur 2021-06-18 09:41:18 +02:00
Koen van Greevenbroek
e0215bc5a9
Propagate the solver log file name to the solver (#247)
* 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.
2021-05-25 15:55:23 +02:00
Fabian Neumann
a156d44f28
remove unused {network} wildcard (#104) 2021-04-29 16:52:35 +02:00
martavp
c623b82b39 Make explicit solver_dir=tmpdir
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
2021-01-12 10:51:12 +01:00
Tom Brown
47a618f385 Replace large CHP 2-link feasibility diagram with single link
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.
2020-12-07 10:48:24 +01:00
Fabian Neumann
08674a6cda
Release v0.3 (#213)
* 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
2020-12-05 17:54:50 +01:00
Fabian Neumann
2fc1ea0255
some refactoring and code cleaning (#190)
* some refactoring and code cleaning

* execute pre-commit

* pre-commit: limit large files

* add license to .pre-commit

* add pre-commit to env

* solve: tidy memory logger

* travis: add conda list for easier debugging

* undo config test/tutorial without plotting, rm matplotlibrc, .licenses

* remove {networks} wildcard

* unadd pre-commit config

* add release notes

* restore REUSE compliance

* fix docs environment python version

* env: remove gurobi from dependencies

* fix unclean merge block

* fix elif to if

* lighter rtd style

* lighter rtd style II
2020-12-03 19:50:53 +01:00
Tom Brown
abbaa0d098 Move CO2 budgets from data/co2_budget.csv to dict in config.yaml
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).
2020-11-30 13:21:38 +01:00
Fabian Neumann
ab6dc633bf
Options for regional equity and autarky (#166)
* solve: add option for equity constraints

* solve: scale more

* prepare: add option to limit line/link capacity

* solve: add inflow to EQ constraints

* solve: reindex inflow to match load

* update config files and references

* add autarky option

* move release notes

* add spillage to equity requirements

* prepare: fix accidental code removal

* prepare: add country autarky option

* consider snapshot_weightings for inflow

* trigger CI
2020-09-26 13:10:50 +02:00
lisazeyen
7fe7dc381f read config.yaml for testing with yaml.safe_load() 2020-09-22 09:32:24 +02:00
Tom Brown
3f5aa60ad2 solve_network: Refactor land use constraints for renewables 2020-08-19 20:25:04 +02:00
Tom Brown
6444f7fde9 Weight offshore connection costs with aggregation weight
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.
2020-08-19 12:41:17 +02:00
martavp
d4be632e7a add add_land_constraint. The constraint is now imposed in a simplified way.
The p_nom for already installed capacities are substrated from the p_nom_max of extendable capacities.
2020-08-17 12:04:45 +02:00
Tom Brown
8c196a7a21 Take care of CHPs when doing p_nom < threshold & extra_functionality
- 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.
2020-08-14 09:11:19 +02:00
Tom Brown
663e1195e1 Add suffix -year to optimized components before solving
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).
2020-08-12 18:08:01 +02:00
martavp
dedabe695e Add conditional use of add_land_use_constraint (only for config['foresight']='myopic') 2020-07-08 16:32:17 +02:00
martavp
059d1daed8 activate rule add_land_use constraint 2020-07-08 08:53:17 +02:00
martavp
0f85f18e86 Add land use constraint to e.g. all the solar installed in different years 2020-07-07 18:40:17 +02:00
Fabian Neumann
5ea29551b9
add REUSE.software license information (#160)
* add REUSE.software license information

* add release note on licensing

* Update doc/index.rst

Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>

* Update doc/index.rst

Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>

* Update doc/release_notes.rst [skip travis]

Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
2020-05-29 09:50:55 +02:00
Tom Brown
bd85f751ac Include home battery for low voltage node 2020-03-26 14:54:10 +01:00
Tom Brown
5dc572c35e solve_network.py: Remove hacked installation of conda libraries 2020-03-04 18:10:57 +01:00
Fabian Neumann
69fd46290f
solve: include {min,max}_iterations parameters (#130)
* solve: include {min,max}_iteration parameters

* solve: iterations fix defaults
2020-02-25 22:00:36 +01:00
Fabian Neumann
8bed137ca5 unify skip_iterations & skip_iterating to skip_iterations 2020-02-19 17:03:19 +01:00
Fabian
543bb95759 small fix for solve_operations_network 2020-02-10 16:47:11 +01:00
FabianHofmann
1ecca802f3 Nomopyomo (#116)
* play around, add new nomopyomo feature

* fix constraints

* fix constraints

* set solver to cbc due to error with gurobi900

* update environments
shift lv and lc constraints to prepare_network
start modifying opt constraints

* correct BAU

* correct environment

* fix import

* fix SAFE constraint

* fix battery charger ratio constraint

* code cleaning

* restructure solve scripts

* fix CCL constraint

* adjust doc

* solve_network: update doc string

* revert unwanted changes

* update environment.yaml

* update environment.yaml II

* force conda update, revert last commit

* revert last change, use other channel priority

* remove trace_sove_network

* add skip_iterating and track_iterations options to config file

* revert last commit, fix environment to current pypsa master

* line break, trigger CI with updated pypsa

* nomopyomo: PR review

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-02-10 12:06:43 +01:00
lisazeyen
36a57222f7 Clip p min pu (#50)
* 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
2020-01-24 15:31:17 +01:00
Tom Brown
9ed2cbffa8 Update code to PyPSA 0.16.1 2020-01-10 18:13:01 +01:00
Tom Brown
9a5ae01a92 Adjust code to use version 0.16.0 of PyPSA for nomopyomo framework 2019-12-26 10:19:26 +00:00
Tom Brown
c525e2a6ae Install package dependencies nomopyomo branch PyPSA and gurobipy
Inelegant - installed by hand in solve_network.py.

Should replace with environment.yaml.
2019-12-19 11:38:43 +01:00
Tom Brown
41f7f44dcf Make CCS optional for SMR and industry process emissions 2019-12-13 18:06:38 +01:00
Tom Brown
49a68bdd35 Separate CHP gas/solid biomass, with/without CCS
Also fix CHP p_nom_ratio constraint, and battery charger/discharger
constraint.
2019-12-12 15:03:51 +01:00
FabianHofmann
eaf30a9b65
Introduce mocksnakemake which acutally parses Snakefile (#107)
* 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
2019-12-09 21:29:15 +01:00
Tom Brown
066f1b0bb5 Fix solve_network.py to use nomopyomo for LV > 1.0 2019-12-06 16:55:28 +01:00
euronion
85c356297a Add logging to logfiles to all snakemake workflow scripts. (#102)
* 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.
2019-11-28 08:22:52 +01:00
Tom Brown
8982147706 Convert code to use PyPSA nomopyomo branch; only works for LV=1.0
Will extend to LV > 1.0 soon.
2019-11-27 18:34:53 +01:00
Fabian
e59d2c4162 scripts/* revise imports 2019-11-14 17:50:24 +01:00
Fabian Neumann
7cd3b8a42b solve: undo update line parameter 2019-11-09 13:23:01 +01:00
Fabian Neumann
998b13dc3a
solve: update line parameters if not iterating 2019-11-09 13:16:31 +01:00
Fabian Neumann
bf12d25879
Merge pull request #51 from fneum/solve_network
Add `extra_functionality` and `extra_postprocessing` to solve_network()
2019-11-06 11:38:15 +01:00
Fabian Neumann
4d9b02ea12
solve_network: add snapshots as required argument 2019-11-06 11:33:57 +01:00
Fabian Neumann
0fef13ee86 resolve merge conflicts 2019-10-24 16:22:57 +02:00
Fabian Neumann
0e5886081e move rules to own pages and adapt image paths 2019-08-14 15:36:46 +02:00
Fabian Neumann
63f2e1cd79 description of solve_network 2019-08-14 11:07:52 +02:00
Fabian Neumann
f16a107aea result sample 2019-08-14 10:35:41 +02:00
Fabian Neumann
0b130b35ef link rule references to their documentation 2019-08-13 17:52:33 +02:00
Fabian Neumann
3a94d4f5ef add seealso from module description to config documentatoin 2019-08-13 10:03:46 +02:00
Fabian Neumann
4d3d898430 remove trialed sphinx-bibtex and describe wildcards 2019-08-12 23:48:16 +02:00
Fabian Neumann
89d89deec0 further improve documentation 2019-08-12 19:01:53 +02:00
Fabian Neumann
a5d9bc9c7c add input/output descriptions (WIP) 2019-08-11 22:34:18 +02:00
Fabian Neumann
67cf28b593 fill in relevant settings sections 2019-08-11 13:17:36 +02:00
Fabian Neumann
1bded0ab9b add rule section headers 2019-08-11 11:40:47 +02:00
Jonas Hoersch
fb0d44f64e Add a summary sentence for each rule taken from scripts 2019-08-08 15:07:08 +02:00
Tom Brown
8d68146e7c Switch to BDEW-based weekday/end space heating demand profiles
These are different for residential and services demand.

Also include Snakefile in config files copied for each run.

Use gurobi settings from gurobi support for speed.

Commented out settings for testing randomness for noise.
2019-08-07 19:08:06 +02:00
Tom Brown
32af25df62 Backup config files before solve_network rather than after
For debugging cases where solving failed.
2019-07-20 10:55:23 +02:00
Tom Brown
ddca9afcc7 Give all loads a carrier; rename heat buses; fix district h losses
Heat buses renamed to:

rural (for low-density areas where district heating not possible)

urban decentral (for high-density areas without district heating and
individual heating technologies) (used to be called "urban")

urban central (for high-density areas with district heating) (used to
be called "central")

District heating losses applied only to urban central.
2019-07-16 16:00:21 +02:00
Fabian Neumann
2979b89291 Merge remote-tracking branch 'upstream/master' into solve_network 2019-06-18 13:48:52 +02:00
Fabian Neumann
dc1feadcba generalize solve_network
* skip_iterating flag: solve network only once without updating impedances
* extra_functionality parameter: add function to modify pyomo model
* extra_functionality args: function arguments for extra_functionality
* extra_postprocessing: add function for postprocessing steps depending on n.model
2019-06-18 13:24:29 +02:00
Jeroen Peters
97985e3c52 Fix by changing po.Constraint.Skip into pypsa.opt.Constraint.Skip 2019-06-18 13:18:59 +02:00
Jonas Hörsch
ac32f2cad6 Fix typo introduced in previous commit 2019-06-18 13:18:59 +02:00
Jonas Hörsch
2f728b33c8 solve_network: Move country/carrier constraints to opts as CCL 2019-06-18 13:18:59 +02:00
Jonas Hörsch
d7fcbbba7b solve_network: Backwards compatibility
Make sure not providing a csv-file with capacity limits does not break.
2019-06-18 13:18:59 +02:00
Jeroen Peters
a2c736e2bf Include config handle 2019-06-18 13:18:59 +02:00
Jeroen Peters
c065cad811 Fix missing code 2019-06-18 13:18:59 +02:00
Jeroen Peters
f68f4c4205 solve_network.py: add minmax constraint per country 2019-06-18 13:18:59 +02:00
Tom Brown
cfe44ce702 Copy solve_network.py and *_summary.py from pypsa-eur sector branch 2019-04-18 11:39:17 +02:00
Jonas Hoersch
7f3f096ba6 Fix model for country selections without DC links (fixes #5) 2019-02-13 19:03:57 +01:00
Jonas Hoersch
8c9e650feb fixup! trace_solve_network: Save intermediate line capacities 2019-02-06 11:48:59 +01:00
Jonas Hoersch
5dfeb6efbc trace_solve_network: Save intermediate line capacities 2019-02-04 18:32:56 +01:00
Jonas Hoersch
9715c9d42b fixup! solve_network: Extract line limit duals and radically refactor 2019-02-03 15:44:40 +01:00
Jonas Hoersch
a069bef380 solve_network: Extract line limit duals and radically refactor
remove all persistent solver features, rebuild the model every time
2019-02-03 14:18:05 +01:00
Jonas Hoersch
dde0d91168 Include an optional total line cost constraint
elec_s_37_lc1.25_... adds a constraint on the total line cost for an extension
by a 25%, compare with elec_s_37_lv1.25_... for the line volume limit.

`ll` is an acronym for line limit.
2019-02-03 13:50:05 +01:00
Jonas Hörsch
0b60159575 solve_network: Fix numeric instabilities
Measure load shedding in kW and remove the eps_storage_constraint
2018-10-22 23:20:51 +02:00
Jonas Hörsch
2372bb156d Prepare Snakefile and scripts for other solvers 2018-09-14 11:22:13 +02:00
Jonas Hörsch
ca70cab40d solve_network: Only zero lines below 100MW
There are 6 links between 250 MW and 500 MW, which are deleted otherwise!
2018-03-14 15:49:15 +01:00
Jonas Hörsch
4bde9417dc Finish solve_operations_network 2018-03-13 10:47:47 +01:00
Jonas Hörsch
e27db0f462 solve_network: Add noise to line and link capital costs 2018-03-09 15:41:46 +01:00
Jonas Hörsch
44d2d950e2 solve_network: Suppress logging noise from pypsa.pf 2018-03-09 15:39:53 +01:00
Jonas Hörsch
8e4f030ec8 solve_network: Fix updating line parameters 2018-03-02 16:20:52 +01:00
Jonas Hörsch
eaef066a89 solve_network: Move memory_logger to vresutils.benchmark 2018-03-02 14:13:12 +01:00
Jonas Hörsch
825c2342fc solve_network: Kill subprocess in log_memory in the case of an exception 2018-02-19 10:13:48 +01:00
Jonas Hörsch
8d70766e72 {prepare,solve}_network: Don't add a line volume limit for lv1.0
lv1.0 signifies lines being non-extendable!
2018-02-19 10:11:58 +01:00
Jonas Hörsch
cb5681df18 Fix cluster use and memory requirements 2018-02-10 17:19:46 +01:00
Jonas Hörsch
6a613ea483 build_powerplants: Separate loading of power plant list into new rule 2018-02-10 17:16:20 +01:00
Jonas Hörsch
3cb57db043 solve_network: Clean up 2018-02-01 12:42:56 +01:00
Jonas Hörsch
b7a1a090f1 Use MockSnakemake and logging.basicConfig everywhere 2018-02-01 12:42:11 +01:00
Jonas Hörsch
2b05c79e94 Fix solve_network 2018-01-30 23:09:06 +01:00
Jonas Hoersch
a867e245b3 Electricity network, Clustering and Solving 2018-01-29 22:28:33 +01:00
Jonas Hoersch
5f4dc833b8 scripts: Add first version of base_network and solve_network scripts 2017-12-18 20:31:27 +01:00