Commit Graph

608 Commits

Author SHA1 Message Date
Fabian Neumann
50ca0d0ddc Merge branch 'eu-energy-security' into results-dir 2022-04-08 14:51:10 +02:00
Fabian
65790cd065 build_powerplants: remove non-assigned ppls 2022-04-08 14:34:52 +02:00
Fabian
d53487f822 build_powerplants: fix duplicated names per bus 2022-04-08 14:23:33 +02:00
Fabian Neumann
40c882f0e9 solve: allow to parse load shedding cost in config 2022-04-08 13:19:25 +02:00
Fabian Neumann
4a18d59789 Merge branch 'eu-energy-security' into results-dir 2022-04-08 12:34:11 +02:00
Fabian
e37a3f57ab adjust biomass capacities 2022-04-08 12:23:24 +02:00
Fabian Neumann
2403650be2 prepare: allow varying emission prices in opts wc: e.g. Ep80.5 2022-04-08 10:27:55 +02:00
Fabian Neumann
02c06017d3 prepare: add gas consumption limit through wildcard: CH4L 2022-04-08 10:27:23 +02:00
Fabian Neumann
bd75953674 add logging to co2limit2 2022-04-08 10:26:38 +02:00
Fabian Neumann
f9ede37a02 allow varying marginal cost of carrier in opts wc: CCGT+m2.0 2022-04-08 10:26:16 +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
4862dcf865
Merge pull request #357 from PyPSA/hvdc-links
Hvdc links
2022-04-05 17:13:15 +02:00
Fabian Neumann
bfcc20aa13
Revert "update TYNDP links which are already built" 2022-04-05 17:10:12 +02:00
Fabian Neumann
51dffbefa3 add gas usage limit constraint 2022-04-05 16:59:51 +02:00
Fabian Neumann
9812e64e82 resolve cherry merge conflict 2 2022-04-05 16:34:02 +02:00
Fabian Neumann
7a52b6bc45 resolve cherry merge conflict 1 2022-04-05 16:22:31 +02:00
Fabian Neumann
aa6e98a563 label built TYNDP links as not under_construction 2022-04-05 16:11:02 +02:00
Fabian Neumann
eca4a017db implement TYNDP link overriding for link_id not oid 2022-04-05 16:07:30 +02:00
Fabian
1fd6a685ab powerplants: filter out powerplants with shut down date < 2021 2022-04-05 15:12:01 +02:00
Fabian
f878faac73 add_electricity: allow estimate_renewable_capacities to be commented out 2022-04-05 08:02:44 +02:00
Fabian Neumann
cb9730118b
Merge branch 'eu-energy-security' into renewable-caps 2022-04-04 19:04:44 +02:00
Fabian Neumann
ade22bf4f0 add existing wind and solar capacities based on IRENASTATS 2022-04-04 19:03:09 +02:00
Fabian
7bc9b8012c powerplants: update to ppm >= v0.5.1 2022-04-04 18:07:48 +02:00
Fabian Neumann
a7e407944c
Merge branch 'master' into issue-301 2022-03-29 09:24:40 +02:00
Fabian Neumann
621520a7b2
Merge branch 'master' into rm-raster-natura 2022-03-29 09:18:43 +02:00
Fabian Neumann
a4132919a0
Merge branch 'master' into voronoi 2022-03-29 09:08:35 +02:00
Fabian Neumann
a05881479c build_bus_regions: move voronoi partition from vresutils to script 2022-03-28 15:17:55 +02:00
Seth
c37171b01d feedback code review (opts argument and unpacking) 2022-03-28 13:42:55 +02:00
Seth
e45c7a65ff
Apply suggestions from Martha's code review
Co-authored-by: Martha Frysztacki <martha.frysztacki@kit.edu>
2022-03-28 12:10:51 +02:00
Fabian Neumann
7fee2944d8
Merge branch 'master' into rm-raster-natura 2022-03-28 12:07:33 +02:00
Seth
3c5212826e
Merge branch 'PyPSA:master' into fix-plotnetworkrule 2022-03-28 11:54:47 +02:00
Fabian Neumann
03e6764a9d
Merge branch 'master' into issue-301 2022-03-25 13:46:46 +01:00
Fabian Neumann
c54ddab4a3 remove unused simple_hvdc_costs 2022-03-24 14:47:00 +01:00
Fabian Neumann
1a82b87587 skip iterations if no lines are expandable 2022-03-24 14:30:28 +01:00
Fabian Neumann
7f6a00cfce
Merge branch 'master' into rm-raster-natura 2022-03-24 14:19:14 +01:00
martacki
7f29c31abe .copy() shortcut 2022-03-24 13:17:01 +01:00
martacki
8cb4c17930 unify vre treatment for hac clustering for simplify_network and cluster_network 2022-03-22 16:53:05 +01:00
Fabian Neumann
7ba1f26eb8 must read NATURA shape before add_geometry 2022-03-20 20:56:38 +01:00
Fabian Neumann
5a7c0d7967 remove build/retrieve natura raster, directly use shapefile 2022-03-20 10:03:17 +01:00
Fabian Neumann
ca94709ed3 use snakemake.threads in build_renewable_profiles 2022-03-20 09:50:38 +01:00
Martha Frysztacki
69c0341145
Merge branch 'master' into introduce_hac_clustering 2022-03-17 17:40:46 +01:00
martacki
4c1c5e3a4e suggestions by coroa and fneum 2022-03-17 17:38:30 +01:00
Fabian
1f788e0d5b cluster_network: replace np.sum/np.min by pandas.Series.sum/min 2022-03-16 16:16:15 +01:00
Seth
0384b4ff83 fix the plot_network snakemake rule 2022-03-10 13:55:53 +01:00
Martha Frysztacki
3e07fdfd54
Merge branch 'master' into introduce_hac_clustering 2022-03-07 11:44:29 +01:00
martacki
3fa8f91e73 make_summary followup on snakemake dependencies removal 2022-03-04 16:29:47 +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
b63271f12f release_notes, old format of base_network with updated docstrings 2022-03-03 17:16:23 +01:00
Martha Frysztacki
49cd51f463
Merge branch 'master' into update-entsoe-gridextract 2022-03-03 16:38:06 +01:00
Fabian
752ff28538 cluster_network.py: allow cluster wildcard to be 'all' 2022-03-02 14:43:04 +01:00
Fabian Neumann
8dafb7bc83
fix custom clustering by checking explicitly for series (#318) 2022-02-27 08:07:11 +01:00
Martha Frysztacki
6b6191734c
Merge branch 'master' into update-entsoe-gridextract 2022-02-16 21:41:28 +01:00
Koen van Greevenbroek
f7ee47238a Fix random state for kmean clustering
When the kmeans algorithm is used to cluster networks, this is not
deterministic by default. The result is that repeated runs of the
`simplify_network` and `cluster_network` rules can and usually do
produce different results that vary somewhat randomly. This makes
results less reproducible when given only a pypsa-eur configuration
file.

The fix is to supply a fixed random state to the k-means algorithm.
2022-02-10 15:57:16 +01:00
martacki
82a0338e9f treatment of outliers and small feature-bugfix 2022-02-04 20:27:18 +01:00
martacki
b5dbf4eb32 overwrite country of isolated buses 2022-02-04 17:19:23 +01:00
martacki
256ac48b47 resolve merging master bugs 2022-02-04 16:45:00 +01:00
Martha Frysztacki
25b3245923
Merge branch 'master' into introduce_hac_clustering 2022-02-04 14:35:14 +01:00
Fabian Neumann
835bfc0f6a bugfix: access right config variables in build renewable profiles 2022-02-01 08:51:47 +01:00
Martha Frysztacki
ff29fda618
Merge branch 'master' into update-entsoe-gridextract 2022-01-31 17:08:56 +01:00
martacki
296fb021cf join skagerrak link 2022-01-31 16:09:42 +01:00
Fabian Neumann
09f1135b51 address pandas 1.4 deprectations 2022-01-29 16:17:46 +01:00
Fabian Neumann
c8c1c3c46e revert ea96d499e7 2022-01-29 15:02:49 +01:00
Martha Frysztacki
9ae8baf71d
Merge branch 'master' into update-entsoe-gridextract 2022-01-28 15:12:36 +01:00
martacki
6cdf3a2879 use snakemake keywords directly without extracting them beforehand 2022-01-24 19:48:26 +01:00
Martha Frysztacki
c45691d305
Merge branch 'master' into snakemake_dependencies_in_functions 2022-01-24 19:15:06 +01:00
martacki
c4be81eb5e simplify_network: remove snakemake dependencies 2022-01-24 19:13:48 +01:00
martacki
61a4108e60 update parameter_corrections for updated entsoe gridextract 2022-01-21 17:37:18 +01:00
Qui-Rin
9f0515105b
build_load_data: Removed underscore in pattern
When using the transparency option the pattern used as a filter is created with a double underscore -> removed underscore in '_transparency'
2022-01-14 19:02:44 +01:00
martacki
dc83fd8e09 fix small bugs 2022-01-14 15:13:44 +01:00
martacki
0da77a7600 remove snakemake dependencies in plot_summary 2022-01-14 13:44:33 +01:00
martacki
f28a088ea3 arguments in function calls instead of kwarg-style 2022-01-14 11:30:15 +01:00
martacki
8cb5bd27d5 make_summary: remove snakemake dependencies 2022-01-14 11:29:01 +01:00
Martha Frysztacki
7067d924cc
Merge branch 'master' into snakemake_dependencies_in_functions 2022-01-14 11:05:54 +01:00
martacki
deac9f32e7 move snakemake keys (input, output, config, ...) to own variables 2022-01-14 11:05:15 +01:00
Fabian Neumann
72e277a007
update environment and address deprecations (#291)
* update environment and address deprecations

* check pandas<1.3

* limit snakemake due to ascii encoding error, address review comments

* remove version restriction on snakemake
2022-01-14 07:43:21 +00:00
martacki
9b7bb27da1 snakemake dependencies in base_network 2022-01-13 18:54:27 +01:00
martacki
505f093141 fix ordering of kwargs in add_co2limit 2022-01-13 18:00:22 +01:00
Fabian Hofmann
94364cbeeb
Update scripts/cluster_network.py
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2022-01-11 10:31:49 +01:00
Fabian
281700751a Merge branch 'snakemake_dependencies_in_functions' of github.com:PyPSA/pypsa-eur into snakemake_dependencies_in_functions 2022-01-11 10:28:11 +01:00
Fabian
ed7fd27adc build_shapes: use country_list as argument 2022-01-11 10:24:45 +01:00
Fabian
c7a443c969 build_shapes: revise changes 2022-01-11 10:23:22 +01:00
Martha Frysztacki
418ce4be28
Merge branch 'master' into snakemake_dependencies_in_functions 2022-01-11 10:03:32 +01:00
Fabian
d1334c1670 Merge branch 'snakemake_dependencies_in_functions' of github.com:PyPSA/pypsa-eur into snakemake_dependencies_in_functions 2022-01-11 10:00:55 +01:00
Fabian
39a6753ece build_powerplants: revise changes 2022-01-11 09:59:58 +01:00
Fabian
01e93545f6 add_extra_components: revise changes 2022-01-11 09:59:34 +01:00
Fabian
acd7122aad add_electricity: revert changes in add_nice_carrier_names 2022-01-11 09:58:59 +01:00
Fabian Hofmann
2c318a247e
Update scripts/prepare_network.py
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2022-01-11 09:55:22 +01:00
Fabian
66f2d36f0d add_electricity: revise code and make it leaner 2022-01-11 09:38:34 +01:00
Max Parzen
6249a9b558
Merge branch 'PyPSA:master' into master 2021-12-23 12:35:10 +01:00
Philipp Glaum
ed83988ed1 hot fix for snakemake bug 2021-12-15 11:02:03 +01:00
martacki
6c4ea69e95 clustering: own config for clustering settings 2021-12-10 17:53:40 +01:00
Max Parzen
f1243c3e0c Fix distribute clustering with cbc/glpk/ipopt
Assume you have 10 nodes that need to be distributed between 2 countries.
What can happen with some of the open source solvers is that one country
gets assigned to 9.01 (float) nodes, and the other one to 0.99.

Now using .astype(int) would lead to a node distribution of 0 and 9, as
the `astype(int)` function round down by default (0.99 -> 0). This assigned
zero value breaks the code in case open source solvers are used.
Gurobi somehow does deal with it.
2021-11-24 14:16:24 +01:00
martacki
299e71e2b3 introduce hierarchical agglomeratice clustering (hac) 2021-11-17 13:46:33 +01:00
Fabian Neumann
c0d1656091 build_load_data: separate retrieving and processing load data 2021-11-10 10:37:09 +01:00
Fabian Neumann
646c5011af
Merge branch 'master' into snakemake_dependencies_in_functions 2021-11-10 09:46:57 +01:00
Fabian
23d3216d92 base_network.py: fix scipy spatial import 2021-10-05 17:30:22 +02:00
Fabian Neumann
2e02af8b4b change license 2021-09-14 16:37:41 +02:00
martacki
dfb929f2cf remove snakemake dependencies in functions, use as kwarg instead 2021-09-14 16:34:02 +02:00
Martha Frysztacki
8bec0cc423
simplify: drop incorrect cols if they exist (avoid error) (#272) 2021-09-07 16:28:01 +02:00
Fabian
ea50abab6d doc: fix build warnings 2021-08-27 12:30:29 +02:00
Fabian Hofmann
b9bbefa09f
simplify_network.py fix dict getting 2021-08-27 10:34:27 +02:00
Martha Frysztacki
a6d2a0a99d
style
Co-authored-by: Fabian Hofmann <hofmann@fias.uni-frankfurt.de>
2021-08-26 16:00:08 +02:00
Martha Frysztacki
f30ca8a18a
Merge branch 'master' into simplify_to_substations 2021-08-26 15:22:02 +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
martacki
400317d062 update plot_network and make_summary scripts to latest pypsa/-eur versions 2021-08-16 17:53:56 +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
huckebrink
2aa59a3905
exporting additional costs, and compatibility adjustments (#261)
* added export for connection_cost adjustment

* removed lambda function from multiprocessing
changed true/false_values to lists

* removed double import of functools

* moved added costs to df column

* Update scripts/simplify_network.py

Co-authored-by: Leonie Plaga <leonie.plaga@ruhr-uni-bochum.de>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-08-04 16:19:23 +00:00
Fabian Neumann
ac3ce07d67
Merge branch 'master' into simplify_to_substations 2021-08-03 15:53:49 +02:00
martacki
89631b240a correct placement of if/else 2021-07-02 10:04:22 +02:00
Fabian Neumann
d78f8b3e65
Merge branch 'master' into extendable-pnommin 2021-07-01 19:39:01 +02:00
Martha Frysztacki [frɨʂtat͡skʲ]
cf2eff4127
style
Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>
2021-06-30 21:29:08 +02:00
martacki
b10317ee3c fix p_nom_min values for extendable carriers with positive p_nom 2021-06-30 21:07:38 +02:00
Fabian Neumann
c5e59dab2f
Merge branch 'master' into simplify_to_substations 2021-06-30 10:34:44 +02:00
Fabian Neumann
5559fe43c9 Merge branch 'master' into substation_lv_bug 2021-06-30 10:33:15 +02:00
euronion
8654077519
Fix creation of renewable profiles for offshore wind. (#255)
* Update build_renewable_profiles.py

* Update release_notes.rst

* Update release_notes.rst

* Update release_notes.rst

* Update scripts/build_renewable_profiles.py

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>

* Adjust doc string

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>
Co-authored-by: Fabian <fab.hof@gmx.de>
2021-06-28 16:20:29 +02:00
martacki
9825fa32b2 change layout of configuration settings 2021-06-01 12:00:55 +02:00
martacki
d6830d3c48 rename no_substations 2021-06-01 10:55:26 +02:00
Fabian Neumann
bfeb429c27
base: add escape if all TYNDP links already in network (#246) 2021-05-25 15:55:39 +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
martacki
14cf5815bb clear arrangement 2021-05-25 13:02:58 +02:00
martacki
1bd3a5a806 simplify: drop inaccurate columns only if no simpl wildcard is used 2021-05-25 12:58:23 +02:00
Fabian Neumann
11af828c39
remove six dependency (#245) 2021-05-25 11:29:47 +02:00
Martha Frysztacki [frɨʂtat͡skʲ]
f5a0d566d9
solve_operations_network: integrate all extendable links, not only DC (#244)
* add_electricity.py Resolve FutureWarning 771 Index.__or__ operating as set operation is deprecated

* solve_operations_network: bug fix

* release notes

* Update doc/release_notes.rst

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-05-21 15:31:50 +02:00
Chiara Anselmetti
11c29ac6cc
Adding focus_weights to pre-clustering (#241)
* Add focus_weights to pre-clustering

Hey guys,
another quick fix since I noticed it wasn't implemented yet: When pre-clustering the network, the focus_weights have not yet been considered. This may distort clustering results when pre-clustering to a low resolution.

* Update release_notes.rst
2021-05-21 15:27:34 +02:00
martacki
f3f587e3f8 simplify to substations - initial draft 2021-05-21 13:54:38 +02:00
lisazeyen
5bfc7a49a6 adjust battery efficiency. The efficiency in the technology data is given as round trip efficiency 2021-05-10 16:55:19 +02:00
lisazeyen
42a78262d8 Merge branch 'master' into technology-data 2021-05-10 16:05:48 +02:00
Chiara Anselmetti
cf55f00656
Delete capital costs at battery discharge link (#240)
Hey guys,
please correct me if I'm wrong, but I think pricing both the charge and discharge of the battery store component with the inverter's capital costs results in duplicating costs since a bi-directional inverter is considered (I checked the source of the cost assumption, Budischak 2013). 
Before working with PyPSA-EUR, I have worked with the toy model WHOBS where only the charging-link of the battery store component is priced with its capital costs (cf. https://github.com/PyPSA/WHOBS/blob/master/run_single_simulation.ipynb). The proposed change in code is equivalent.
2021-05-06 15:56:49 +02:00
Fabian Neumann
035bcf99df restore REUSE compliance [skip travis] 2021-04-28 09:25:27 +02:00
FabianHofmann
b8a7685931
Atlite availability (#224)
* adjust buil_cutout.py and Snakefile

* try adjusting build_renewable_profiles, currently crashing due to weird pyproj error

* build_renewable_profiles: -remove printing gid

* build_renewable_profiles: use dask for paralellization, use dense functions

* build_renewable_profiles:
	- revise imports
	- add logging for long calculation
	- revise explaining comment
	- revise distance calculation

* build profiles: adjust to cutout.grid

* * fix area to square km
* rename potmatrix -> capacity_potential
* rename available to availibility

* config.default update cutout params
build_renewable_potentials: major refactoring and simplification
hydro_profiles: update code

* build profiles: fix weight output dimensions

* build profiles: fix typo, fix selection of buses

* build profiles: reinsert paths variable

* follow up

* build profiles: move to dask calculation only

* CI: set build cutout to true (add CDSAPI)

* build profiles: use pyproj, test with gleas and geokit upstream

* environment.yaml fix atlite version

* build profiles: use dask 'processes' for more than 25 regions

* build profiles: specify dask scheduler according to number of regions

* backpedal a bit, only allow scheduler='processes'

* follow up, code style and fixup

* build profiles: add logger info for underwater fraction calc

* config adjust cutout parameters
Snakefile fixup

* config.default.yaml: adjust resolution

* config: use one cutout in total
build_cutout: automatic detetection of geographical boundaries

* env: add python>=3.8 requirement
build_cutout: fixup for region bound

* config: allow base cutout

* folllow up, fix up

* follow up II

* clean up

* clean up II

* build profiles: move back to multiprocessing due to performance issues

* small code style corrections

* move in pool context

* swqitch to ratsterio

* switch to rasterio for availibility calculation

* tiny fixup

* * build continental raster for offshore distance calculation
* adjust Snakefile to new script build_raster

* rename continental raster to onshore raster
add projected_mask function (not yet tested)
add docstrings, modularize

* Snakefile: remove build_onhore_raster rule, build mask directly from geometry instead
build_natura_raster: adjust code, add function for exporting
build_profiles:
	* add buffer to shore distance to init_globals function
	* update docstrings
	* improve handling of nodata grid codes
	* add geometry mask if natura raster not activated
	(the 255 value is an 'eligible' value for the corine data base,
	do this for excluding data outside the shape)

* build_profiles: adjust docstrings

* update environment

* build profiles: fixup reproject woth padding

* follow up, small fixups

* fix resampling method

checkpoint: reproduces solar profile in tut data

* reintegrate plot map
code style

* config: rename cutout into "base"

* build profiles: adjust to new atlite code

* natura raster: small fixup

* build natura raster: compress tiff file

* config: adjust cutout names

* build profiles: cover case if no or partial overlap between natura raster and cutout

* config-tutorial: adjust cutout params

* buid-profifiles: fixup in gebco filter

* follow up

* update config files

* build profiles: select layoutmatrix != 0

* build profiles: speed up average_distance and underwaterfraction

* build profiles: fix typo

* update release notes
build_cutout: only build needed features

* update envs

* config: add temperature to sarah features

* temporary fix for atlite v0.2.1 and new xarray version release

* env: remove xarray specification

* * remove rule build_country_flh
* build profiles: remove sneaked in line

* doc: update configuration.rst (section atlite) and corresponding csv table

* release notes: fix quotes

* build profiles: use 3035 for area calculation

* Update envs/environment.docs.yaml

* Update scripts/build_cutout.py

* Update doc/release_notes.rst

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

* Update doc/configuration.rst

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

* Update scripts/build_cutout.py

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

* update release notes

* release notes: add deprecation of 'keep_all_available_areas'
build profiles: remove warning for 'keep_all_available_areas'

* build cutout: rearrage code, set buffer correctly

* Rename tutorial cutout to remove name clash with real cutout.

* Update release_notes.rst: Rename tutorial cutout.

* retrieve: update cutouts and downloads (alternative) (#237)

* retrieve: update cutouts and downloads

* retrieve: remove unnecessary import

* use snakemake remote file functionality

* Snakefile: update zenodo link

* update natura remote link (closes #234)

* env: update atlite version to 0.2.2

* env: fix dask version due to memory issues

* test: retrieve cutout instead of build

* test: use tutorial cutout for CI

Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-04-27 17:58:31 +02:00
Fabian Neumann
4ec06f54bc merge master 2021-04-27 14:47:15 +02:00
Fabian Neumann
164c168a30 minor revisions on pz-max's PR 2021-04-27 14:36:34 +02:00
Fabian Neumann
e3863084cd Merge branch 'fix-marginal-costs' of https://github.com/pz-max/pypsa-eur into pz-max-fix-marginal-costs 2021-04-27 14:32:49 +02:00
Fabian Neumann
efdfad97a3
address FutureWarning re set operations on pd.Index (#238) 2021-04-27 07:51:46 +02:00
Max Parzen
184b060903
syntax correction 2021-03-23 20:27:13 +00:00
Max Parzen
f9e73690e1
Update add_extra_components 2021-03-23 19:34:13 +00:00
Max Parzen
165148d26c
Update scripts/add_extra_components.py
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-03-23 19:22:39 +00:00
pz-max
2f9e9075e8 adding marginal cost for storage 2021-03-23 17:29:59 +00:00
Koen van Greevenbroek
9048af482f
Add a check to fix KeyError (#220) (#228)
In some cases, in networks with DC links, a non-existing column would
be referenced in an empty Dataframe. This commit adds a check for this
case.

Co-authored-by: Koen van Greevenbroek <koen@vesoldo.com>
2021-03-10 18:16:09 +01:00
eb5194
b9fdacad4d simplify: delete columns with incorrect/accurate entries 2021-01-20 20:39:22 +01:00
Chiara Anselmetti
ed4fdc9150
Keep links to store components when using ATK wildcard (#214)
* Update prepare_network.py

The new ATK wildcard removes all lines + links without further distinction; however, since storage options are now modeled as store components, the links to and from the the storage units for (dis)charge are eliminated as well. Thus, the storage options drop out of the optimisation. 
Especially when only allowing renewables as generation sources, optimisation may become infeasible for a high temporal resolution (capacity factors = 0 for certain hours; no further options to serve the load). 
This issue does not arise with the ATKc wildcard, since bus0 and bus1 of the (dis)charge links share the same country code.

The proposed change is a very quick fix in the enforce_autarky function, solely removing DC links.

* Update scripts/prepare_network.py

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

* Update prepare_network.py

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-01-11 10:27:27 +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
FabianHofmann
3fa5bbad1c
Opsd renewable ppls (#212)
* fix clustering of offwind-ac and offwind-dc in sites option

* add release nodes

* attach renewable assets by location (lat and lon) from OPSD register to network

* adapt default config to changes

* undo changes from a differen PR in cluster_network.py

* undo changes from a different PR, add release notes for this PR

* correct release notes

* add comments for relevant settings in add_electricity.py

* adjust configtable for electricity to OPSD renewable option and add estimate_renewable_capacities_from_capacitiy_stats

* reset cluster_network to HEAD

* add_electricity: Capacity is float

* config: add GB to OPSD_VRE_countries

* review and modify implementation

* update release notes

* Update envs/environment.yaml

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

Co-authored-by: martha.frysztacki <eb5194@iai-esm003.iai.kit.edu>
Co-authored-by: eb5194 <martha.frysztacki@kit.edu>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-12-03 23:13:41 +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
Fabian Neumann
84edde8f63
add time series segmentation with tsam package (#186)
* add time segmentation with tsam

* cut off SEG

* Snakefile: adjust memory function

* untangle memory reservation calculation

* prepare: document segmentation option

* correct typo
2020-12-03 16:02:21 +01:00
Martha Maria
cfb979a0d0
Custom busmap for clustering (#193)
* add option to use custom clustermaps from data folder

* adapt default config to custom busmap

* input file from Snakefile

* adapt input description

* add option to use custom clustermaps from data folder

* adapt default config to custom busmap

* input file from Snakefile

* adapt input description

* Snakefile: custom_busmap in cluster_network input is now csv

* cluster_network: custom_busmap is now read as csv file, adaptions of description

* simplify_network: adapt descriptions

* configfiles: add cutom_clustermaps switch

* unify clustarmap and busmap names

* unify clustermap and busmap names

* test/config: unify clustermap and busmap names

* cluster_network: make clustering_for_n_clusters compatible with simplify_network

* simplify_network: make compatible with changes in cluster_network.py

* Update scripts/cluster_network.py

* Update scripts/simplify_network.py

* Update scripts/simplify_network.py

* Update scripts/cluster_network.py

* Update scripts/cluster_network.py

* cluster_network: move custom_busmap flag to enable; simplify names

* cluster_network: move custom_busmap flag to enable; simplify names

* custom_busmap: add documentation

* cluster_network: add default for custom_busmap for compatibility with old configs

* cluster_network: add default for custom_busmap for compatibility with old configs

Co-authored-by: martha.frysztacki <eb5194@iai-esm003.iai.kit.edu>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-12-03 15:17:16 +01:00
FabianHofmann
9792069ab3
Update load processing (#211)
* build_load_data

* Add documentation

* updating load data import

* Update Config files

* Update load.csv

* Update add_electricity.py

* change log file name

* Update scripts/add_electricity.py

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>

* Update scripts/build_load_data.py

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>

* Update scripts/build_load_data.py

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>

* Update scripts/build_load_data.py

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>

* Update build_load_data.py

* Update build_load_data.py

* Update scripts/build_load_data.py

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>

* update gap handling in build_load_data

* Update build_load_data.py

* Update config.test1.yaml

* update test.config

* Update config.tutorial.yaml

* update load csv function for load data

* Update build_load_data.py

* Update config.test1.yaml

* Update add_electricity.py

* Update build_load_data.py

* Added error messages if load data contains gaps after modifications

* general adjustments:
	- reduce data source to only entsoe statistics
	- sanitize code
	- adjust logging messages
	- adjust daocstrings

* update Snakefile config and docs

* update release notes
rename build_load -> build_load_data in config

* small follow up

* - reintroduce choice between powerstatistics and transparency
- remove load_ timeseries from databundle
- always build load_data
- reinsert scaling factor in config
- fix url to 2019 version

* update doc: configtable, release notes
update config.yaml

* follow up

Co-authored-by: Jan Frederick <jan.frederick.unnewehr@inatech.uni-freiburg.de>
Co-authored-by: JanFrederickUnnewehr <50404069+JanFrederickUnnewehr@users.noreply.github.com>
2020-12-03 12:49:04 +01:00
Fabian Neumann
f18b7b02cb
StorageUnit correct efficiency_dispatch/store (counter-proposal 2) (#202)
* fix efficiencies of storage units counter proposal

* extra_components: fix roundtrip efficiency

* add_electricity: remove misleading roundtrip efficiency for storageunit

* add release notes
2020-12-03 10:02:23 +01:00
Fabian Neumann
03170f4aaf
add option for p_nom_max factors in {opts} wildcard (#207)
* prepare: add option for potential reduction sweeps

* prepare: fix attr lookup for potential/cost reduction sweeps

* prepare: fix attr naming cost -> capital_cost

* add release notes
2020-11-26 17:25:14 +01:00
Fabian Neumann
bfbf595ad8
Parameter corrections for East-Western and Anglo-Scottish interconnection (#206)
* data: parameter corrections for East-Western and Anglo-Scottish interconnector

* add release notes
2020-11-26 17:20:48 +01:00
Fabian Neumann
2e70e8d15b
prepare: fix transmission limit when no HVDC links in network (#209) 2020-11-12 17:37:43 +01:00
Fabian Neumann
984e688615 skip cost aggregation of component if empty 2020-10-28 15:30:36 +01:00
Fabian Neumann
4f7f2fa67a extra_components: specify hydrogen storage *tank* 2020-10-16 14:47:13 +02:00
Fabian Neumann
8a323b7267 cost: move defaults to config and improve documentation 2020-10-16 11:38:26 +02:00
Martha Maria
52683236cd
prepare_network: fix nmo security margin (#199)
* prepare_network: fix nmo security margin

* Update doc/release_notes.rst

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

* Update scripts/prepare_network.py

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

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-10-02 15:55:22 +02:00
Martha Maria
2e76b88ec8
simplify_ and cluster_network: clustermaps to csv (#198)
* simplify and clustering: output and input from HDF format to CSV

* add release notes

* simplify and clustering: output files from Snakefile
2020-10-02 12:53:56 +02: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
Fabian Neumann
c543fb39c6
cluster: fix removing deprec squeeze=True in groupby (#194) 2020-09-25 12:34:34 +02:00
martha.frysztacki
9331f1ec46 cluster_network: The 'squeeze' parameter is deprecated and will be removed in a future release; works just fine without it 2020-09-24 17:46:20 +02:00
Martha Maria
047276b2dc
Fix clustering sites (#191)
* fix clustering of offwind-ac and offwind-dc in sites option

* add release nodes

Co-authored-by: martha.frysztacki <eb5194@iai-esm003.iai.kit.edu>
2020-09-24 10:13:13 +02:00
Fabian Neumann
ec803a372e
add cost uncertainty opts for suptechs (#189) 2020-09-24 10:09:11 +02:00
Fabian
fee8ef92d4 fixup (follow up to #183) correct transmission constraint name 2020-08-28 22:28:23 +02:00
FabianHofmann
cfd815aa42
Don't remove capital cost for lines and links when setting lv, lc limit (#183)
* solve #175

* adjust wildcards explanation

* allow lv and lc limits below 1
2020-08-28 17:59:51 +02:00
Fabian
0b4abb4c30 revert unit adjustment for EUR/MW only 2020-08-25 21:51:29 +02:00
Fabian
2b6fb0ee66 Snakefile add rule 'retrieve_cost_data'
update cost.csv to default year 2030
add_electricity.py: adjust to new format
2020-08-25 21:41:21 +02:00
FabianHofmann
04f19f214d
fix emission prices (#171)
* fix emission prices

I'm not sure if the previous setup was intentional, but regarding that different generators might have different efficiencies and the emissions are carrier specific only, it makes more sense set net emission price.

* small fix

* update release_notes and config
2020-08-25 12:12:00 +02:00
Fabian Neumann
e2c3b80ec4
Remove onwind-landcosts from data/costs.csv and add_electricity.py (#180) 2020-08-24 11:19:57 +02:00
FabianHofmann
1cde8d300a
Fix up add_nice_carrier_names for new pandas (#178)
* solve #174

* update release notes

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-08-24 11:04:54 +02:00
Fabian Neumann
2f4852347a
Fix two issues with new 2020 ENTSO-E grid extract (#181)
* base: fix errors in new entsoe extract

* add release notes

* apply suggestions from code review - remove hardcode
2020-08-24 10:33:46 +02:00
Fabian Neumann
8c5efb5252
add compatibility with pyomo 5.7.0 (#172)
* add compatibility with pyomo 5.7.0

* add release notes [skip travis]
2020-07-20 17:33:15 +02:00
Fabian Neumann
165dd2d440
uncertain costs: facilitate parameter sweep (#167)
* add opts for cost parameter sweep

* add pr link to release note
2020-07-10 16:41:44 +02:00
Fabian Neumann
2627c96a9e
Prepare Release v0.2.0 (#165)
* prepare release v0.2.0

* prepare release v0.2.0 v2 [skip travis]
2020-06-08 20:43:35 +02:00
Fabian Neumann
d66b70e180 doc: update release notes and documentation [skip travis] 2020-06-08 18:29:15 +02:00
Fabian Neumann
4448cb747e Merge branch 'renewable_profiles_option_using_all_available_areas' of https://github.com/JanFrederickUnnewehr/pypsa-eur into JanFrederickUnnewehr-renewable_profiles_option_using_all_available_areas 2020-06-08 18:15:17 +02:00
Jonas Hörsch
0813807b0f
data/entsoegridkit: Update gridkit data files (#118)
* data/entsoegridkit: Update gridkit data files

* add missing NordBalt and Estlink 1 to TYNDP

* base: lower distance tolerance, hardcode faulty bus allocation

* data: apply new parameter corrections for network extract

* doc: amend release notes [skip travis]

* doc: update release notes and base image [skip travis]

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-06-08 18:13:51 +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
Jan Frederick
0adaf2c1b6 cleaned code for better understanding 2020-04-06 16:38:54 +02:00
Jan Frederick
b4c502f901 Updated description 2020-04-03 12:12:27 +02:00
Jan Frederick
b707578bfb Update build_renewable_profiles.py 2020-04-03 12:09:17 +02:00
Jan Frederick
32248724bd add if statements for "keep all availble areas"
Add possibility to keep all availble areas for the potential area generation.
2020-04-03 12:02:25 +02:00
JanFrederickUnnewehr
22184ebaa7
Find "all" closest links and not only the first entry in the dataframe (#143)
* find all closest links that are in operation

* update function _find_closest_links

* update _set_electrical_parameters_links

* Update scripts/base_network.py

* cleanup code

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>
2020-04-01 00:20:32 +02:00
Fabian Neumann
3c1c604c7e
cluster: skip recalculation of link parameters if empty (#149) 2020-03-29 11:39:18 +02:00
Fabian Neumann
7688d9ea27
build_bus_regions: fix 'cannot insert name, already exists' in geopandas 0.7.0 (#145)
* build_bus_regions: fix 'cannot insert name, already exists'

* environment: allow geopandas 0.7.0

* build_bus_regions: ignore index when concatenating
2020-03-18 09:56:47 +01:00
euronion
ccc56ce3c8
Fix: Correctly determine the bus to attatch custom powerplants to. (#131)
* Add index integrity checks for custom powerplants.

* Update .csv template for custom powerplants.

* Update data/custom_powerplants.csv

* Revert "Merge branch 'master' into fix/custom-powerplants"

This reverts commit 5cd9c1afafd1ab36c31181ffed7635152805ee52, reversing
changes made to 5b1df27b25fdc89acca88395a0ba999f84dce109.

* Update release_notes.rst

* Rephrasing update to release notes.

* Merge with upstream/master (revert reverted merge).

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2020-03-17 09:50:38 +01:00
Fabian Neumann
d57989c027
scripts: mini code cleanup (#140) 2020-03-16 15:55:01 +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 Neumann
cd85d61470
helpers: importing networks with override_components (#128)
* helpers: importing networks with override_components (closes #122) [skip travis]

* Update scripts/plot_network.py

Co-Authored-By: FabianHofmann <hofmann@fias.uni-frankfurt.de>

Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de>
2020-02-13 15:51:24 +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
FabianHofmann
ef9e64d457
set bus to nan for powerplants not assigned in kdtree (#123)
* solves #109

* fix substations_i for no-neighbours in kdtree
2020-02-03 15:01:24 +01:00
FabianHofmann
1e9f8717ee add names to config, add color column to n.carriers 2020-01-29 17:01:57 +01:00
FabianHofmann
af985db802 adjust n.carrier column name 'nice_names' -> 'nice_name' 2020-01-29 16:08:01 +01:00
Jonas Hörsch
52e4a1b285 environment: Free pyproj from version constraint (fixes #119) (#120)
* environment: Free pyproj from version constraint (fixes #119)

proj was constrained to 1.9.6, since cartopy was incompatible with
recent proj versions.

* build_renewable_profiles: Import gdal and geokit after forking

GDAL sets up a shared context on module import which seems to contain a
handle to the PROJ database for coordinate reference systems. By forking
these handles seem to become invalidated or at least are not usable in parallel
anymore.

Instead importing gdal only after setting up the different processes fixes
the database disk image is malformed proj error.
2020-01-23 09:55:59 +01:00
Fabian Neumann
5934f4f7a1
prepare release v0.1.0 (#117) 2020-01-09 14:09:28 +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
FabianHofmann
5143a258ac build_powerplants: Fix add_custom_powerplants
Typo and type instability.

Fixes #109.
2019-12-03 00:52:52 +01:00