Commit Graph

2726 Commits

Author SHA1 Message Date
Fabian Neumann
cbd22c2efd execute pre-commit 2020-09-11 15:26:43 +02:00
Fabian Neumann
f6dd2e12f3 some refactoring and code cleaning 2020-09-11 12:40:53 +02:00
Tom Brown
06a3b029d8 When changing prim/secondary production, take account of existing
Don't fix uniform ratios e.g. of 0.3:0.7 primary:secondary for steel
and aluminium, but convert the necessary amount of existing primary in
each country so that the overall ratio applies at European level.

This stops sudden swings from primary to secondary in countries
dominated by primary production.
2020-09-07 19:15:40 +02:00
Tom Brown
c58f18667d Add non-EU28 energy demand per country and sector for today
Use the industrial production per sector and multiply with EU28
averages for energy per sector.
2020-09-07 19:12:47 +02:00
Tom Brown
783e026ebf Separate ammonia from basic chemicals in today's industry energy 2020-09-07 18:41:07 +02:00
Tom Brown
04629b5113 For DRI+EAF route for primary steel, add electricity for DRI shaft 2020-09-07 17:23:31 +02:00
Tom Brown
916aa5e0d9 Generate today's industry demand per ct and per sector
Only covers EU28 at the moment.

Uses the energy balances sheets from JRC-IDEES.
2020-09-07 16:48:06 +02:00
Tom Brown
aa3ffb9ac2 Remove biomass from chemicals, cement; increase in PPA, FBT
Remove non-existing biomass from chemicals and cement, since these
need higher temperatures than achievable with residues and waste.

Increase biomass in pulp and paper (since already used extensively
here and T < 500), and replace methane with biomass in food, beverages
and tobacco, since temperatures needed are low (T < 500).
2020-09-07 14:49:20 +02:00
Tom Brown
f3dcda9179 Include integrated steelworks in industry_sector_ratio
Also switch it from sep=";" to ","
2020-09-07 11:04:50 +02:00
Fabian
fee8ef92d4 fixup (follow up to #183) correct transmission constraint name 2020-08-28 22:28:23 +02:00
Tom Brown
f45b9a37ae Separate ammonia from other "Basic chemicals"
This allows us to control the substitution of natural gas for hydrogen
in NH3 production.

Remaining basic chemicals are olefins, BTX and chlorine.

For 2015 NH3 production, we use the USGS data source.
2020-08-28 19:13:18 +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
Tom Brown
b761281b3d Move changes to primary/secondary routes for Al/St to new script
This was handled before in industry_sector_ratios.csv which was
confusing.

Now industry_sector_ratios.csv represents the genuine energy
consumption per tonne of material for each industrial route
(MWh/tMaterial).

An new file is created with ktMaterial/a in
industrial_production_per_country_tomorrow.csv which contains changes
to the fraction of primary/secondary routes compared to today's
production in industrial_production_per_country.csv.

This is less confusing I think.
2020-08-26 16:13:01 +02:00
Tom Brown
851142fe0f Separate script for industrial production per ct from energy demand 2020-08-26 13:12:16 +02:00
Tom Brown
37f36047ca Industry demand: Also record material production per industry 2020-08-26 12:06:01 +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
Tom Brown
515416fd75 PyPSA-Eur-Sec Version 0.2.0
Please see the release notes:

https://pypsa-eur-sec.readthedocs.io/en/latest/release_notes.html#pypsa-eur-sec-0-2-0-21st-august-2020

for more information.
2020-08-21 12:34:20 +02:00
Tom Brown
beefb57c25 Fix plotting of maps and balances; move log/benchmark to results/ 2020-08-21 12:15:01 +02:00
Tom Brown
fa767772d6 Remove onshore wind land costs, since included in latest DEA data 2020-08-20 18:41:19 +02:00
Tom Brown
95e676828a Remove old data/costs.csv and dependencies on it 2020-08-20 14:26:39 +02:00
Tom Brown
3f5aa60ad2 solve_network: Refactor land use constraints for renewables 2020-08-19 20:25:04 +02:00
Tom Brown
6b40504159 add_existing_baseyears: Correct for p_nom data is thermal output
p_nom in PyPSA is capacity on the input side (from final energy),
whereas existing capacities are given on output side (i.e. heat
delivered).
2020-08-19 12:51:53 +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
35e1d4b03b fix bug when determining elec_buses 2020-08-17 12:08:49 +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
martavp
6037882dbb small change in commented line 2020-08-14 11:04:35 +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
7e6c7b3dd3 Merge branch 'master' of github.com:martavp/pypsa-eur-sec into martavp-master 2020-08-12 18:10:41 +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
89a48bfad3 include existing conventional carriers in config file 2020-08-12 11:24:15 +02:00
martavp
18ff256811 Update cost for wind and solar, including the AC and DC connection costs for offshore.
In order to calculate connection costs, average values for underground_fraction and average_distance are calculated for all the buses in the initial network mapped to the clustered network.
2020-08-12 11:08:09 +02:00
Tom Brown
16b05a570d Distribute heating technologies within each country by population 2020-08-11 11:09:39 +02:00
Tom Brown
a59b2bce19 Add location attribute to each bus
E.g. "DE0 0 residential rural heat" has location "DE0 0", and "EU gas"
and "co2 atmosphere" have location "EU".
2020-08-11 11:07:55 +02:00
Tom Brown
1d6b6483e0 add_existing_baseyear: Divide p_nom by efficiency for Links
This is because the p_nom of a Link is the thermal capacity at bus0,
whereas the capacities we have are the electrical capacity at bus1.
2020-08-11 09:55:39 +02:00
Tom Brown
658f8ad00c Distribute existing power plants to the correct nodes
Previously they were distributed only by country to the first node in
the country.

Now conventional power plants are assigned to the correct node using
the bus map from PyPSA-Eur.

Wind and solar are distributed in each country by capacity factor.

The code has been refactored and a bug was fixed whereby total
capacities of wind and solar in each country were not correct.

Now the years in the config.yaml for myopic are integers not strings.
2020-08-10 20:30:29 +02:00
Tom Brown
b57a6c18f8 Make directory for costs files configurable
Default to parallel directory for technology_data repository.
2020-07-30 08:27:33 +02:00
Tom Brown
ece21bfdfa add_existing_baseyear.py: Add carrier to conventional generators 2020-07-30 08:22:27 +02:00
Tom Brown
7abe928337 prepare_sector_network: Fix costs bug and carrier bug
In prepare_costs, you need the min_count=1 in the sum so that it
generates NaNs for missing data (rather than 0) so that NaNs can be
subsituted by .fillna in the next line. Otherwise many values
(discount rates and efficiencies for solar, wind) are set to zero.

Also added carriers, storage and generators for coal, nuclear and
oil. (This needs to be organized better soon so that the carriers are
defined in config.yaml.)
2020-07-29 15:50:40 +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
martavp
4523f324cd Group the generators existing before base year into categories and add them to the network as e.g. solar-2005, solar-2010, solar-2015 2020-07-18 11:22:30 +02:00
martavp
17a348d1e6 Add lifetime attribute to generators, links and stores in prepare_sector_network and use that attribute to check if a generator optimized in a previous time step should be added in add_brownfield (or if its lifetime has expired) 2020-07-17 15:20:20 +02:00
martavp
fa0b88a9b1 Add lifetime and build_year attributes to generators, links and stores. 2020-07-14 20:04:36 +02:00
martavp
7d1500604f import prepare_cost function from prepare_sector_network 2020-07-14 13:28:10 +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
martavp
201e4d2f57 simplify make_summary and plot_summary since now overnight also includes planning_horizons and carbon_budget_name 2020-07-08 16:35:50 +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
a4c22a29a4 Remove generators, stores and links whose installationYear + lifetime < year. Correct commented lines to YearDecomissioning > year 2020-07-08 16:28:08 +02:00
martavp
059d1daed8 activate rule add_land_use constraint 2020-07-08 08:53:17 +02:00
martavp
8c53506897 include dependence of the number of header lines in csv files based on if overnigh or mypic option is selected 2020-07-07 18:46:12 +02:00
martavp
cf3c45321e include planning_horizons and co2_budget_name in multindex if options['foresight']='myopic' 2020-07-07 18:42:25 +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
martavp
236da36d5e Include myopic option in prepare_network.py so that, when selected, it reads CO2_limit from a carbon_budget file 2020-07-07 18:37:42 +02:00
martavp
95f80aeba7 Add scripts to (a) include existing power and heating capacities installed before the base year, and (b) add to year n, capacities optimized in year n-1.
Existing onwind and offwind capacity are now read from IRENA database, similarly to solar capacities. Previously we were using thewindpower.net database which is not open.
2020-07-07 18:26:31 +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
Tom Brown
2bee13fe40 plot_summary: Plot energy / CO2 balances for each carrier
Take data from supply_energy.csv and plot the balances for each
carrier.

One summary for energy excludes CO2 flows (unlike graphs/energy.pdf).
2020-05-13 13:40:00 +02:00
Tom Brown
eb34356722 make_summary: Remove erroneous power outputs for non-multi links
This bug in PyPSA was fixed in:

f484adc876
2020-05-13 13:25:32 +02:00
Tom Brown
1c5f471acb Include option for grid connection cost for onshore and utility PV
Only include these technologies since they are connected at new
locations.

Other technologies can fit in at existing connections.
2020-05-11 13:37:10 +02:00
Tom Brown
bdb3c8886d make_summary.py: Fix so that it works with simpl != ""
Non-empty simpl is needed for cases where the resource resolution
is higher than the network resolution, e.g.

simpl = 70
cluster = 37m
2020-05-07 18:16:28 +02:00
Tom Brown
8538233bba Fix bug due to invalid cluster bus region geometries
These geometries are apparently invalid due to self-crossing or
self-touching polygons.

The geometries are created by pypsa-eur/scripts/cluster_network.py but
appear to be valid before being written to file.

They are only valid after being read back in from file.

This seems to indicate some numerical issue relating to file reading
and writing.

Now the geometries are cleaned after being read in.
2020-05-07 14:45:14 +02:00
Tom Brown
e92558716e config.yaml: Remove unnecessary settings
Adjustments made to scripts to read correct settings.

Documentation of scenario options improved.
2020-04-30 18:38:55 +02:00
Tom Brown
f9952b9aad Fixed for PyPSA-Eur 0.1.0, PyPSA 0.17.0 and plotting
This commit now work with PyPSA-Eur 0.1.0 (tested with commit
bb3477 from 14th April 2020).

Changes to line/link_widths/colors for plotting networks in PyPSA
0.17.0.

Other corrections to plotting code so it works with this version.

Include oil boilers in colors in config.yaml.
2020-04-29 18:23:18 +02:00
Tom Brown
478832f484 Merge branch 'master' of github.com:nworbmot/pypsa-eur-sec 2020-04-29 09:53:11 +02:00
d-fine dev
a4db176458 add new link oil boiler
* prepare_sector_network:
    - add link for oil boiler in function add_industry()
    - add function for partitioning clusters into different heat node types

* config.yaml: add option for oil_boiler

* costs.csv: add costs for oil boiler
2020-04-09 14:58:03 +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
Tom Brown
bd85f751ac Include home battery for low voltage node 2020-03-26 14:54:10 +01:00
Tom Brown
31cad1bd6d Separate rooftop and utility solar PV 2020-03-26 10:06:59 +01:00
lisazeyen
a239f7efbf make the script running with pandas 1.0, colors for some network plots, add option to plot the current transmission system in the cost_network plot 2020-03-25 17:14:28 +01:00
Tom Brown
0df8fc50cf Summaries and plotting: Fix groupby with two bys for pandas 1.0.x 2020-03-25 16:42:38 +01:00
Tom Brown
9b326ba493 Include electricity distribution grid between load and EVs 2020-03-25 12:52:25 +01: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
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 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
Tom Brown
ab401907b2 Merge branch 'master' of github.com:nworbmot/pypsa-eur-sec 2020-01-31 19:25:19 +01:00
Tom Brown
d4c6521aaf For H2 network plotting, introduce dummy MultiIndex to get area
Otherwise the area is not consistent with the legend (I'll open a
PyPSA issue).
2020-01-31 19:20:46 +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
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
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
Tom Brown
b6383b37b7
Merge pull request #46 from nworbmot/describe_biomass_categories
Describe biomass categories
2020-01-22 16:58:26 +01:00
Tom Brown
e0cf7e0860 Fix transmission map for nomopyomo outputs; plot also H2 network
Use s_nom_min for the reference point for the transmission
reinforcement not s_nom, since s_nom is now overwritten for LV > 1.0
(the old pyomo code kept the s_nom variable fixed in the pyomo model
rather than via pypsa setting s_nom_extendable = False, like the
nomopyomo code now does).

The legend scale of the H2 network electrolyzers is wrong. I don't yet
understand why. Possibly the cost scale in the other map is also wrong.
2020-01-21 19:44:36 +01:00
Tom Brown
17e8d114b1 Allow wave costs to be modified 2020-01-14 21:36:35 +01:00
Tom Brown
2278d67687 Add wave with default minimum costs 2020-01-11 09:11:09 +01:00
Tom Brown
9ed2cbffa8 Update code to PyPSA 0.16.1 2020-01-10 18:13:01 +01:00
Fabian Neumann
5934f4f7a1
prepare release v0.1.0 (#117) 2020-01-09 14:09:28 +01:00
Tom Brown
0e5dcbbce4 Fix clash of names in creation of candidate network for H2
Sometimes Lines and Links have same name, so need MultiIndex to avoid
a clash of names.
2019-12-26 10:21:22 +00: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
ca15750b48 Catch process emissions from feedstock for industry demand script 2019-12-19 17:49:45 +01:00
Tom Brown
ba52bbf5d4 Merge branch 'process' 2019-12-19 14:04:04 +01:00
Tom Brown
180846945f Fix bug in ordering of MultiIndex in make_summary.py
df.loc[idx[a,b,some_list],label] does NOT preserve the ordering of
some_list, but sorts it instead. Therefore the pattern:

df.loc[idx[a,b,s.index],label] = s.values

was mismatching the index and values.
2019-12-19 11:40:17 +01:00
Tom Brown
eb2fa1b24e Adjust plotting for new CCS scheme 2019-12-19 11:39:38 +01: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
52581466b6 Account for chemical industry process emissions more carefully
Remove emissions from hydrogen production for ammonia (since H2 now
comes from electrolysis).

Allow process emissions from petrochemical production to be captured
(the carbon is not necessarily fossil, but could come from CCU).
2019-12-18 09:45:14 +01:00
Tom Brown
105aeba215 Merge branch 'nomopyomo' 2019-12-13 18:07:06 +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
ec9b447949 make_summary: Account for multi-links in supply* summaries 2019-12-06 17:40:20 +01:00
Tom Brown
80642ae9af Fix post-processing to read nomopyomo nc; fix MultiIndex issue
With new pandas:

pd.Index([])|pd.MultiIndex(...)

returns a pd.Index, not a pd.MultiIndex, so just reversed:

pd.MultiIndex(...)|pd.Index([])

This returns a pd.MultiIndex.
2019-12-06 16:56:33 +01:00
Tom Brown
066f1b0bb5 Fix solve_network.py to use nomopyomo for LV > 1.0 2019-12-06 16:55:28 +01:00
martavp
f6d407cc24
Add files via upload
describe biomass
2019-12-04 16:38:19 +01:00
martavp
5038faa020
Delete build_biomass_potentials.py
describe biomass
2019-12-04 16:37:50 +01:00
FabianHofmann
5143a258ac build_powerplants: Fix add_custom_powerplants
Typo and type instability.

Fixes #109.
2019-12-03 00:52:52 +01:00
Fabian Neumann
7ddc153bd2
ec: attach hydrogen pipelines (#108) 2019-12-02 12:22:30 +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
6cbd3384e4 Merge branch 'master' of github.com:nworbmot/pypsa-eur-sec 2019-11-27 18:36:01 +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
Tom Brown
3fac944e5b 191108: Include a correctly-costed H2 network
Offers same topology to optimisation for H2 grid as that of HVAC and
HVDC grid.
2019-11-26 18:00:45 +01:00
Fabian Neumann
a74c15a132 trigger new travis build (skipped through squash) 2019-11-19 19:45:08 +01:00
Fabian Neumann
81d9d2ab4d
battery+H2: option for stores and links instead of storage_units (#97)
* add_electricity: stores and links instead of storageunits

* move code for attaching in add_extra_stores.py

* Update Snakefile

Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de>

* Update Snakefile

Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de>

* Update Snakefile

Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de>

* rename to add_extra_components.py

* incorporate suggestions

* Snakefile: update script name

* extra_components: import _add_missing_carriers_from_costs

* Add '_ec" infix in Snakefile

* Snakefile add infix at missing spot

* remove unintendetely inserted data.bundle, correct import in add_extra_components

* environment: fix pyyaml version

* set powerplantmatching as conda-dependency

* environment fix minimal ppm version

* environment reinsert pyyaml

* environment: carry over changes to environment.docs.yaml

* extra_components: add carriers

* update docstring

* Update scripts/add_extra_components.py

* Update scripts/add_extra_components.py

* tutorial: fix hyperlink [skip travis]

* update release notes

* update documentation

* add_electricity: merge removal of suptech
2019-11-19 19:36:28 +01:00
Fabian Neumann
9517eda1d7
add option for nuclear expansion at current locations (#98)
* add_electricity: add option for nuclear expansion at current locations

* doc: add documentation on adding nuclear options
2019-11-19 12:26:01 +01:00
Fabian
e59d2c4162 scripts/* revise imports 2019-11-14 17:50:24 +01:00
Fabian
af22261c10 prepare_network: revise imports, add line_break 2019-11-14 16:21:00 +01:00
Fabian Neumann
3370bd3b92 doc: update documentation on Ep option 2019-11-14 15:50:03 +01:00
Fabian Neumann
6a6bae41db prepare_network: reactivate Ep option (closes #63) 2019-11-14 15:41:09 +01:00
Fabian Neumann
a35dbc067c build_natura: add cutouts as input (closes #95) 2019-11-11 16:29:27 +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
3fd5c5d0e1 cluster: add tolerance to country weight sum L 2019-11-09 12:58:04 +01:00
FabianHofmann
0ea5a5c28f Powerplants (#94)
* add nice carrier names to n.carriers

* closes #48

* update environment
2019-11-09 09:08:25 +01:00
Fabian Neumann
d32f2105cd fix deprecation: logger.warn -> logger.warning 2019-11-08 16:46:29 +01:00
Fabian Neumann
a71cb6fc26 build_hydro: fix logger (closes #91) 2019-11-07 17:38:08 +01:00
Fabian Neumann
7df2b76f9d
cluster_network: fix focus_weights for mult sync 2019-11-07 16:54:09 +01:00
Fabian Neumann
e54119d878
cluster: add focus weights (in favor of #26) (#87)
* cluster: add focus weights (in favor of #26)

* clear assert of total focus

Co-Authored-By: FabianHofmann <hofmann@fias.uni-frankfurt.de>
2019-11-07 15:38:25 +01:00
Fabian Neumann
99cb4a4354
Merge pull request #86 from PyPSA/workflow
Integrate data retrieving into snakemake workflow
2019-11-06 16:06:11 +01:00
Fabian Neumann
0fb57601bf doc: document powerplantmatching changes from #84 2019-11-06 15:59:34 +01:00
Fabian Neumann
2ace4f2e94 retrieve*: add documentation 2019-11-06 14:50:59 +01:00
Fabian Neumann
0c537f159f retrieve*: clean retrieve rules 2019-11-06 12:04:01 +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
82392c6c07 Merge branch 'co2limit' of https://github.com/fneum/pypsa-eur into fneum-co2limit 2019-11-06 11:19:41 +01:00
Fabian
b1a38229f4 ignore sort warning 2019-11-05 14:29:15 +01:00
Fabian
f6e44d2805 include data retrieving in workflow 2019-11-05 12:53:21 +01:00
Fabian Neumann
67390cc2a9
Update scripts/prepare_network.py 2019-11-05 11:21:33 +01:00
FabianHofmann
d0e2fed4d7 incorporate suggestions 2019-11-01 13:27:42 +01:00
FabianHofmann
bf26ac9445 build_powerplants update docstring 2019-10-31 18:01:33 +01:00
FabianHofmann
324ededa66 fix typo 2019-10-31 14:59:51 +01:00
Fabian Hofmann
4ee18ea9fa incorporate suggestions of #69 2019-10-31 14:48:10 +01:00
Fabian Hofmann
0d778eaf42 Merge branch 'eb5193-add_own_carriers' into powerplants 2019-10-31 14:30:05 +01:00
Fabian Hofmann
65700000f7 Merge branch 'add_own_carriers' of https://github.com/eb5194/pypsa-eur into eb5194-add_own_carriers 2019-10-31 14:23:43 +01:00
Fabian Hofmann
dee544f56b fix typo 2019-10-31 13:01:08 +01:00
Fabian Hofmann
296840bac5 Merge branch 'master' into powerplants 2019-10-31 12:16:56 +01:00
FabianHofmann
0c777fc431
Merge pull request #71 from PyPSA/update_link_length
[WIP] capital cost and underwater fraction update in clustering
2019-10-31 11:27:58 +01:00
Fabian Hofmann
142434b529 incorporate suggestions 2019-10-31 10:37:49 +01:00
Fabian Hofmann
7a9842eba7 update build and add powerplant with new ppm version 2019-10-30 23:09:41 +01:00
Fabian Neumann
036a90ff6d
Merge pull request #83 from PyPSA/powerplants
update powerplants.csv
2019-10-28 17:33:47 +01:00
Fabian Neumann
570e3fc5ab build_powerplants: download from ppm 2019-10-28 17:12:49 +01:00
Fabian Neumann
05e15de60b
Rename "Macedonia" to "North Macedonia"
https://en.wikipedia.org/wiki/Macedonia_naming_dispute
2019-10-28 16:15:06 +01:00
FabianHofmann
7e3ea94a53
Merge pull request #76 from euronion/patch-1
Update make_summary for pandas-0.25 compatability.
2019-10-25 15:41:29 +02:00
euronion
da0107478e
Refractor make_summary.py multiindex creation.
Outsource the pd.MultiIndex and pd.Index union into dedicated function and remove C&P code snippets.
2019-10-25 14:29:38 +02:00
Fabian Neumann
0fef13ee86 resolve merge conflicts 2019-10-24 16:22:57 +02:00
euronion
a401d80300
Fix more pandas Index issues in make_summary. 2019-10-24 10:53:07 +02:00
euronion
dfc0242a2d
Update make_summary for pandas-0.25 compatability.
The pandas Index union operation does no longer produce a MultiIndex but a Index tuple in pandas-0.25.2.
This causes the script to fail. (The problem does not exist with pandas-0.24.0.)

Fix by explicitly checking for this case (only the first loop iteration).
2019-10-24 09:54:50 +02:00
Fabian Hofmann
26453a27bb build_bus_regions fix index column name to 'name' 2019-10-15 09:58:55 +02:00
martavp
5251ee5e56
Add files via upload
Read industry constants from config.yaml
2019-10-07 16:21:14 +02:00
Fabian Neumann
485b66c2c9 add cdsapi installation instructions 2019-10-03 12:38:59 +02:00
Fabian Neumann
5ea60a1ee0 modify to run without GEBCO and without hydro 2019-10-03 12:32:49 +02:00
Fabian Hofmann
16ff2b51bd fix small issues 2019-09-23 16:44:48 +02:00
Fabian Hofmann
9178dde4a7 partially resolves #70 2019-09-23 14:32:51 +02:00
eb5194
ffef74e9c5 adaptions using query 2019-08-19 18:04:51 +02:00
eb5194
c4fd099cc8 allow usage of own powerplants for selected country 2019-08-17 16:50:57 +02:00
Fabian Neumann
03b51cac18 add rulegraphs 2019-08-14 17:15:07 +02:00
Fabian Neumann
0e5886081e move rules to own pages and adapt image paths 2019-08-14 15:36:46 +02:00
Fabian Neumann
e7236010dd add instructions to obtain pietzcker 2019-08-14 11:54:58 +02:00
Fabian Neumann
78f5a940f7 description of prepare_network 2019-08-14 11:08:10 +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
630b08fff0 add cutout related descriptions and figures 2019-08-13 15:48:21 +02:00
Jonas Hoersch
ce3b897649 Fix importing plot_p_nom_max module for documentation 2019-08-13 10:53:18 +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
Jonas Hoersch
f2afdacb31 build_renewable_profiles: Update documentation 2019-08-12 20:50:50 +02:00
Jonas Hoersch
be8c9798c1 plot_network: Split plotting into several functions to make sphinx happy
Also addresses part of issue #50: plot_map works again with cartopy.
2019-08-12 20:40:36 +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
f7159de47f
base_network: return zero underwater fraction if no link geometry given (closes #53)
fixes #53
2019-08-11 16:59:56 +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
Fabian Neumann
067d259ff6 include description of rule groups
* and reduce corresponding sections in readme
* and modify environment docs
* and add bibtex support (tentative)
2019-08-10 14:25:19 +02:00
Fabian Neumann
ea96d499e7
base_network: scale snapshot weightings to sum up to 1 year
If the user selects a date range of less than a year in `config.yaml` the snapshot weightings should be scaled to add up to represet 8760 hours (1 year) such that operational expenses and investments are aligned in the objective function.
2019-08-10 12:33:14 +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
019e2f3f25 Split heat demand into residential and services with diff profiles
All urban central (i.e. district heating) is aggregated to the same
profile and bus.

The code is now written to cycle over each heating sector to add
demand and supply technologies, only changing what is necessary to
change, rather than just copying chunks of code and modifying
parameters there. This should make it easier to get an overview of
what's going on.
2019-08-07 11:33:29 +02:00
Fabian Neumann
7a4e9f22d4 configuration table descriptions 2019-08-07 10:56:23 +02:00
Tom Brown
eebac1bfa3 Deduct electric heating from electricity load profile
Otherwise it is double-counted in both the heating and the electricity
load profiles. This removes 454 TWh/a from electricity.
2019-08-01 16:16:05 +02:00
Tom Brown
d3a0f7e67d Diff intraday heat profiles for (res, services) x (water, space)
These are specified in data/heat_load_profile.csv.

The resulting heat_demand df has MultiIndex columns, where the first
level is ["sector use"], and the second level level is nodes.
2019-08-01 15:43:04 +02:00
Tom Brown
72b7ea0997 Allow space heating to be linearly reduced (without cost so far) 2019-07-31 14:22:33 +02:00
Tom Brown
886b7c5f48 Include micro-CHP using PEMFC 2019-07-28 13:10:21 +02:00
Jonas Hoersch
07143fb2cd base_network: Zero s_nom of under_construction lines 2019-07-26 11:43:34 +02:00
Tom Brown
318444e3a4 Include new industry technologies for plotting colours 2019-07-21 12:11:40 +02:00
Tom Brown
7e37dbbd03 Include multi-link outputs in energy balance 2019-07-21 12:11:05 +02:00
Tom Brown
ae1ea81520 Copper plate biogas and solid biomass
Because there was insufficient solid biomass in 3-4 countries to
supply industry for it locally, and we need to account for transport
of solid biomass.

Should be replaced by transport cost links between countries.
2019-07-21 12:09:18 +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
03670c1ab3 Simplify industry load-link-bus to avoid numerical problems
Gurobi had numerical problems solving the system.

Trivial load-link-bus combinations to manage CO2 have been replaced
with simple loads.
2019-07-19 12:10:22 +02:00
Tom Brown
06cb526fef Re-integrate industry, aviation and shipping into model
Following plan by Marta and Kun
2019-07-19 10:21:12 +02:00
Tom Brown
990ab035c3 Include light-rail and high-speed-rail in "electricity rail"
This then conforms with JRC IDEES totals
2019-07-19 10:19:21 +02:00
Tom Brown
7509d61348 Split industrial demand across nodes by population 2019-07-18 15:55:58 +02:00
Tom Brown
b132193f7f Read in more sector detail for road, rail, aviation and navigation 2019-07-18 15:38:37 +02:00
Tom Brown
f3b6027cd5 Incorporate Marta and Kun's scripts to build industry demand
By country and by energy source.
2019-07-18 11:40:38 +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
Tom Brown
6cc676d6cf 190516: Try removing H2 network too 2019-07-12 08:51:25 +02:00
Fabian Neumann
2979b89291 Merge remote-tracking branch 'upstream/master' into solve_network 2019-06-18 13:48:52 +02:00
Fabian Neumann
5119a73477 merge upstream/master in co2limit 2019-06-18 13:33:01 +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
Fabian Neumann
c99480e0f3 add co2 emissions reduction factor to wildcard 2019-06-18 11:50:54 +02:00
Jonas Hoersch
5de59fe453 base_network: Replace deprecated yaml.load by yaml.safe_load
Refer to https://msg.pyyaml.org/load for details.
2019-06-05 18:07:36 +02:00
Jonas Hoersch
63a6cebab2 build_renewable_profiles: Communicate extent as pickleable tuple (fixes #42) 2019-05-28 13:50:42 +02:00
Tom Brown
ae3059f676 Add "central" option to remove electricity grid (HVAC, HVDC, B2B) 2019-05-16 16:08:16 +02:00
Tom Brown
8394dca22c Rule to save a copy of important config files after each run 2019-05-16 09:39:03 +02:00
Tom Brown
9ad0eb01e2 Use waste heat from FT and fuel cells in district heating 2019-05-14 11:49:32 +02:00
Tom Brown
77bef57c60 Automatic plotting of network maps with costs per node 2019-05-13 17:09:26 +02:00
Tom Brown
52a02bd979 Compute cfs; compute nodal costs, capacities, cfs; fix prices 2019-05-13 16:48:29 +02:00
Tom Brown
71c04909b5 Allow option of underground H2 storage 2019-05-13 16:47:54 +02:00
Tom Brown
3c28e4daba Include lossless and costless H2 network to examine benefit
Agglomerate H2 storage for this case.

Need to replace with separate H2 links and stores.
2019-05-12 11:27:56 +02:00
Tom Brown
a10a7d2b15 Limit sequestration to 200 Mt/a, introduce SMR, vent stored CO2 2019-05-11 15:55:06 +02:00
Tom Brown
38c49ad460 Fix paper_graphics.py maps for cartopy and industrial demands 2019-05-09 17:28:16 +02:00
Tom Brown
1aa9f9e70b Copy over paper_graphics.py from old pypsa-eur sector branch 2019-05-09 15:22:14 +02:00
Tom Brown
0ab5bd200a Fix gas and oil stores so that they allow fossil fuel extraction
Before both initial SOC and final SOC were set to be zero, which
prevents synthetic fuel transfer over the year boundary, and prevents
the use of fossil fuels for non-zero CO2 scenarios.

Now done properly with cyclic Store (prevents accumulation of fossil
fuels as a form of sequestration) and Generator (to imitate fossil
fuel extraction).
2019-05-08 12:18:18 +02:00
Tom Brown
5357b7b92f Record total capacities and total costs 2019-05-03 17:11:13 +02:00
Tom Brown
c47ffb8d03 Changes for 190501-256 2019-05-02 08:39:29 +02:00
Tom Brown
82a057791e Allow storing FT fuels, cost for FT conversion, fossil FT fuels
Also include raw data/costs.csv
2019-04-30 12:05:36 +02:00
Tom Brown
952534c5c9 Generalise limitation of tech potentials
tech name must only appear, but not be identical to generator
carrier. This allows to use the name "offshore" for both "offshore-ac"
and "offshore-dc", but then "solar" also catches "solar thermal",
which is fine since for solar thermal potentials are np.inf, unless
limit is 0 since np.inf*0 is nan.
2019-04-24 12:17:42 +02:00
Tom Brown
d48d51f765 Cater for AC and DC offshore in plotting 2019-04-23 16:22:09 +02:00
Tom Brown
5157041ee2 Update for compatibility with latest PyPSA-eur master branch
Remove non-renewable generator and storage units from electricity-only
base network, since they're added differently here with links.

Remove unncessary cruft from config.yaml which is not used by
PyPSA-Eur-Sec (e.g. renewable configuration parameters).

Rename "naptha" to correct "naphtha".
2019-04-18 15:23:37 +02:00
Tom Brown
3b0e0dfb3a Changes to make solving and post-processing work 2019-04-18 12:12:38 +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
Tom Brown
e88b6c850f Fix prepare_sector_network to reproduce old sector prenetworks
from pypsa-eur sector branch
2019-04-17 17:04:33 +02:00
Tom Brown
ad865c18c6 Copy prepare_network.py from pypsa-eur sector commit 95820e57f795
...to scripts/prepare_sector_network.py
2019-04-17 14:24:22 +02:00
Tom Brown
ea22a792b7 Fix all data preparation steps up to prepare_network 2019-04-17 11:44:16 +02:00
Tom Brown
1b26c3c737 Copy data preparation scripts from pypsa-eur sector branch 2019-04-16 16:03:51 +02:00
Jonas Hoersch
9ec97bd367 fixup! cluster_network: [compat] Pyomo 5.6.1 removed po.sum 2019-03-09 17:50:28 +01:00
Jonas Hoersch
93119fc86b cluster_network: [compat] Pyomo 5.6.1 removed po.sum 2019-03-09 17:08:55 +01:00
Jonas Hoersch
3688122aa7 base_network: [compat] read_csv in pandas 0.24 is stricter
read_csv now raises a ValueError when it encounters NaN in a boolean column.
2019-03-06 20:40:29 +01:00
Jonas Hoersch
66fe76288c add_electricity: Assume load scaling factor is 1.0 if omitted 2019-02-22 22:06:03 +01:00
Jeroen Peters
0cafe40bdd add_electricity.py: Add a simple load scaler (#21)
* Add simple load scaler

* Add scaler to config

* Update config.yaml

* Update add_electricity.py
2019-02-22 21:47:41 +01:00
Jonas Hoersch
f0a0a2531e add_electricity: Fix for choices of countries without any offshore or hydro
fixes #22.
2019-02-22 17:09:52 +01:00
Jeroen Peters
d111cedc03 Add warning for capital costs to 0 2019-02-22 15:03:53 +01:00
Heronimonimo
1c192253bf Remove capital costs for existing conventional capacity
All the existing conventional capacity has sunk capital costs. Therefore these should be put to 0.
2019-02-22 15:03:53 +01:00
Jonas Hoersch
8b819569bc cluster_network: Fix busmap_for_n_clusters for single country (fixes #18)
Also update debugging helper.
2019-02-20 21:10:45 +01:00
Heronimonimo
9c78d6591d Add CCGT to the weight factor for conventional carriers 2019-02-20 19:18:06 +01:00
Jonas Hoersch
9279c7f027 solve_network: Remove hard-coded solver fallback in busmap_for_n_clusters
Necessary for when `clustering_for_n_clusters` is used from the simplify_network
rule.

Fixes #12
2019-02-20 19:08:25 +01:00
Heronimonimo
6f1b387804 Add CCGT to plot 2019-02-20 17:31:14 +01:00
Jonas Hörsch
2e02c8366e
fixup! add_electricity: add CCGT to extendable generators 2019-02-18 00:43:09 +01:00
Fabian Neumann
02e1a12667 add_electricity: add CCGT to extendable generators 2019-02-16 12:52:18 +01:00
Jonas Hoersch
33823c9012 build_country_flh: Fix aggregated flh reports for wind 2019-02-15 20:59:42 +01:00
Jonas Hoersch
6bb9cd1025 add_electricity: Refactor extendable generators to provide a OCGT-ext technology
Partially adresses #7.
2019-02-15 18:28:41 +01:00
Jonas Hoersch
50abd6c0c9 build_country_flh: Add rule for per-country full load hours tables and plots 2019-02-15 18:27:04 +01:00
Jonas Hoersch
f49682c61d build_renewable_profiles: Extend calculate_potential to optionally save the exclusion map 2019-02-15 11:11:41 +01:00
Jonas Hoersch
c858ed0b0d build_renewable_profiles: Pass all globals with init_globals 2019-02-15 11:11:31 +01:00
Jonas Hoersch
7f3f096ba6 Fix model for country selections without DC links (fixes #5) 2019-02-13 19:03:57 +01:00
Jonas Hoersch
1b6fe5be80 base_network: Fix _add_links_from_tyndp if there are none left (fixes #5) 2019-02-12 16:41:07 +01:00
Jonas Hoersch
15e986a0ec make_summary: Update summary creation for new line volume/cost constraints
Fixes #4.
2019-02-10 16:08:39 +01:00
Jonas Hoersch
448e8c238e cluster_network: Fall back to using ipopt in distribute_clusters
if the configured solver does not support quadratic objectives.
2019-02-10 15:33:53 +01:00
Jonas Hoersch
6284cf7e8b add_electicity: Report countries missing from the hydro inflow time-series 2019-02-07 17:41:01 +01:00
Jonas Hoersch
3e11d569d0 build_shapes: Fix pycountry API change (fixes #1)
See also
72b1927b3c
2019-02-07 13:03:18 +01:00
Jonas Hoersch
d57df6b0c8 Merge branch 'glaes' 2019-02-06 12:06:32 +01:00
Jonas Hoersch
8c9e650feb fixup! trace_solve_network: Save intermediate line capacities 2019-02-06 11:48:59 +01:00
Jonas Hoersch
2cf8f1374f add_electricity: Fix for pandas 0.24 breaking change 2019-02-05 23:02:59 +01:00
Jonas Hoersch
5c3fcb642c add_electricity: Add heuristic for estimating renewable capacities from country totals
Split per-country capacity totals reported in entsoe SO&AF 2016 in proportion to
yearly generation potential at each bus, i.e. p_nom_max * mean(p_max_pu)
2019-02-05 23:00:35 +01:00
Jonas Hoersch
b9f1f5a8b5 Fix for pycountry 18.12.8
72b1927b3c (chg-HISTORY.txt)
2019-02-05 17:46:51 +01:00
Jonas Hoersch
5dfeb6efbc trace_solve_network: Save intermediate line capacities 2019-02-04 18:32:56 +01:00
Jonas Hoersch
80d86487de plot_network: Extend plot title with line volume/cost 2019-02-04 18:31:15 +01:00
Jonas Hoersch
8d3127ff1a fixup! Include an optional total line cost constraint 2019-02-03 16:06:35 +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
60dda9f909 plot_p_nom_max: Add plots for the cumulative renewable expansion potential
The wildcards `clusters` and `technology` accept lists of values separated by ','
2019-02-03 14:22:12 +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 Hoersch
d49bea00a8 Remove the heuristic 80% availability factor 2019-02-01 18:34:11 +01:00
Jonas Hoersch
8ee596ae2c Make the additive potential aggregation the default and call it simple 2019-02-01 18:33:21 +01:00
Jonas Hoersch
aa5525ab41 cluster_network: Remove old distribute_clusters code paths 2019-01-22 11:48:00 +01:00
Jonas Hoersch
7ba6fefd67 simplify_network: Refactor clustering for readability 2019-01-22 11:46:45 +01:00
Jonas Hoersch
39cb17a7a1 cluster_network: Fix distribute_clusters_optim for high numbers of clusters
distribute_clusters_optim should never try to assign more clusters to
a (country, sub_network) than there are substations there.
2019-01-22 11:25:01 +01:00
Jonas Hoersch
6feebedc0d cluster_network, simplify_network: Improve debugging facilities for clustering 2019-01-22 11:24:07 +01:00
Jonas Hoersch
4247051c3c simplify_network: Include a special case if renewable carriers are skipped 2019-01-22 10:14:05 +01:00
Jonas Hoersch
bfb92a5d29 base_network: Remove unconnected components after removing under_construction branches 2019-01-22 10:11:43 +01:00
Jonas Hoersch
4cba751331 base_network: Warn about TYNDP links which fall outside of the area of interest
Happens when countries is only a subset.
2019-01-22 10:10:00 +01:00
Jonas Hoersch
47bc13cf51 add_electricity: OCGT plants don't need to be extendable 2019-01-21 18:45:19 +01:00
Jonas Hoersch
f70e0304e5 Fix plotting settings 2019-01-16 12:08:46 +01:00
Jonas Hoersch
a340e4f1a3 base_network: Remove tyndp links outside of desired countries 2019-01-02 18:13:30 +01:00
Jonas Hoersch
0096b184a0 fixup! cluster_network: Implement 'heuristic' potential clustering 2019-01-02 17:54:07 +01:00
Jonas Hoersch
495b6f8015 cluster_network: Implement 'heuristic' potential clustering 2018-12-31 15:10:35 +01:00
Jonas Hoersch
9c6c89dfad build_*_profile(s): Make caps on p_nom_max and inflow optional 2018-12-31 14:10:55 +01:00
Jonas Hoersch
77095c3b94 simplify_network: Improve displacement log message 2018-12-21 16:16:54 +01:00
Jonas Hoersch
21b428d841 build_*_profile(s): Move clip_p_min_pu into profile generation 2018-12-21 13:44:59 +01:00
Jonas Hoersch
6b29f34d51 build_shapes: Ensure name of index for offshore_shapes is 'name' 2018-12-19 15:42:03 +01:00
Jonas Hoersch
f60c1fdb41 Rename index column in geojson imports 2018-12-19 15:37:18 +01:00
Jonas Hoersch
aa24686517 build_shapes: Update save_to_geojson to new fiona version 2018-12-19 15:25:39 +01:00
Jonas Hoersch
8f171396cb build_natura_raster: Fix snakemake specifics 2018-12-19 15:25:03 +01:00
Jonas Hoersch
db073d8daa Split offshore wind turbines into AC and DC connections 2018-12-19 10:34:25 +01:00
Jonas Hoersch
bddea86b1e build_renewable_profiles: Move progressbar around atlite calls into atlite 2018-12-19 10:28:35 +01:00
Jonas Hoersch
350af4a273 build_renewable_profiles: Compute potentials in EPSG:3035 to ensure a metric of meters 2018-12-19 10:27:46 +01:00
Jonas Hoersch
135e4ace47 cluster_network: Disable stricter schema enforcement by geopandas 2018-12-19 10:14:41 +01:00
Jonas Hoersch
448ba651a0 build_renewable_profiles: Compute underwater_fraction 2018-12-11 17:30:25 +01:00
Jonas Hoersch
4dc8e8fc35 build_renewable_profiles: Fix incomplete renaming 2018-12-11 17:29:54 +01:00
Jonas Hoersch
eeba4a81d4 Remove build_renewable_potentials
Superseded by GLAES in build_renewable_profiles
2018-12-11 16:46:34 +01:00
Jonas Hoersch
a035bee9c6 Merge branch 'windcosts' 2018-12-11 16:09:24 +01:00
Jonas Hoersch
5ed5974e86 Disable stricter schema enforcement of GeoPandas 2018-12-11 15:39:46 +01:00
Jonas Hoersch
802261eedd Use GLAES library by FZJ-IEK-3 for computing GIS potentials 2018-12-11 15:39:42 +01:00
Jonas Hoersch
04a291b91b Move from countrycodes to maintained pycountry 2018-12-10 18:34:22 +01:00
Arnaud Leroy
8a7ffbdb4e add a variable to select the clustering algorithm in busmap_for_country. Default k-manes 2018-11-26 16:10:32 +01:00
Jonas Hörsch
1fa62b9aab simplify_network: Allow to remove stubs across country borders 2018-11-12 22:00:54 +01:00
Jonas Hörsch
761b1b998f make_summary: Add summary about capacities and allow single country summaries 2018-11-12 22:00:50 +01:00
Jonas Hörsch
c5e8c9ad25 add_electricity: Extend the assignment of max_hours 2018-11-12 22:00:46 +01:00
Jonas Hörsch
e7d007bc8f build_powerplants: Assign power plants only within the right country
Also update the delivered powerplants snapshots.
2018-11-12 21:40:05 +01:00
Jonas Hörsch
9df54c9530 simplify_network: Refactor compute_distance 2018-10-27 16:42:58 +02:00
Jonas Hörsch
91b83930dd base_network: Important small fixes
- Allow connecting at substations
- Fix offshore shape selection
2018-10-27 03:46:48 +02:00
Jonas Hörsch
cc7d356db0 simplify_network: Set up logger correctly 2018-10-27 03:45:28 +02:00
Jonas Hörsch
9c64034950 simplify_network: Add simplification cost updates
Depends on pypsa commit https://github.com/PyPSA/PyPSA/commit/9ec406252add1b6
2018-10-27 03:41:38 +02:00
Jonas Hörsch
f87d7d9f94 base_network: Important small fixes
- Allow connecting at substations
- Fix offshore shape selection
2018-10-27 03:34:40 +02:00
Jonas Hörsch
b30f4a2fff Update technology costs for wind
Calculate grid extension costs for offshore based on weighted average distance
from weather cell to substation.
2018-10-26 21:32:04 +02:00
Jonas Hörsch
c0fe95a31d base_network: Improve assignment of countries 2018-10-26 16:08:50 +02:00
Jonas Hörsch
98b3ef5e20 Add _helpers, used by plot_network 2018-10-26 10:33:58 +02:00
Jonas Hörsch
ddbc02ba35 prepare_network: Fix set_line_s_max_pu
- Wrong denominator in linear s_max_pu
- DC lines do not have a security margin
2018-10-26 10:31:44 +02:00
Jonas Hörsch
a012344ca7 prepare_network: Pass Nyears to set_line_volume_limit
Sets the transmission capital costs in the optimum line_volume case properly for
multi-year optimizations.
2018-10-26 10:29:44 +02:00
Jonas Hörsch
5b201de7d4 {make,plot}_summary: Add rules to flexibly create summaries and plot them 2018-10-26 10:28:54 +02:00
Jonas Hörsch
0070b1c87c plot_network: Add functionality to produce a network plot of each solution 2018-10-25 16:43:24 +02:00
Tom Brown
540985164f Plot summary; take account of snapshot weightings correctly 2018-10-23 17:02:03 +02:00
Tom Brown
f3a12e7aee Add CSV summaries 2018-10-23 17:00:06 +02:00
Jonas Hörsch
71512c15a5 Copy over make_summary.py from sector branch co2 2018-10-23 16:59:41 +02:00
Jonas Hörsch
1df85468aa add_electricity, prepare_network: Enable lv='inf' and remove converter link costs 2018-10-22 23:23:51 +02: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
c1ae9b16d5 build_shapes: Update debugging helper 2018-10-22 23:20:18 +02:00
Jonas Hörsch
f9012c41e1 add_electricity: Allow extension of OCGT plants 2018-10-09 15:44:46 +02:00
Jonas Hörsch
6f3b44e5e4 fixup! base_network: Don't update the capacity of TYNDP links from links_p_nom 2018-10-09 15:44:20 +02:00
Jonas Hörsch
b74c19e6ba base_network: Don't update the capacity of TYNDP links from links_p_nom 2018-09-27 18:29:44 +02:00
Jonas Hörsch
07e36a4854 base_network: Some TYNDP links replace existing links and buses 2018-09-27 18:28:52 +02:00
Jonas Hörsch
37d817c70f base_network: Fix bug in _closest_links and fix SACOI capacity 2018-09-27 18:27:33 +02:00
Jonas Hörsch
72b484dd6b base_network: Only buses with at least one finished connection may have load 2018-09-27 18:25:41 +02:00
Jonas Hörsch
6635732cb7 Fix HDFStore writing modes 2018-09-27 12:18:47 +02:00
Jonas Hörsch
52e214a3b2 base_network: Add links from TYNDP
Manually collected from https://tyndp.entsoe.eu/. Deactivated by default.
2018-09-24 20:19:47 +02:00
Jonas Hörsch
9c629560db cluster_network: Adjust n_init, maxiter and tol parameters of KMeans
By changing the parameters by several orders of magnitude, we ensure to recover
consistently the same results.
2018-09-24 18:43:24 +02:00
Jonas Hörsch
1678f319d8 prepare_network: Allow lv=inf to designate a fully cost-optimal expansion 2018-09-24 18:43:24 +02:00
Jonas Hörsch
2c06fef22b prepare_network: Scale security margin from 0.5 at 37 clusters to 0.7 at 200 clusters 2018-09-24 18:43:24 +02:00
Jonas Hörsch
2372bb156d Prepare Snakefile and scripts for other solvers 2018-09-14 11:22:13 +02:00
Jonas Hörsch
4d99780f6d simplify_network: Carry underwater_fraction through simplification steps 2018-09-03 23:46:57 +02:00
Jonas Hörsch
265ef27394 fixup! base_network, config: Links do not follow the n-1 constraint 2018-09-03 23:46:30 +02:00
Jonas Hörsch
21267a59e0 costs: Add costs for submarine HVDC based on own analysis 2018-09-03 23:33:06 +02:00
Jonas Hörsch
ba3a008018 add_electricity: Adapt to reverse compatible argument change in timeseries_opsd 2018-09-03 23:20:46 +02:00
Jonas Hörsch
3afacfeacc base_network, config: Links do not follow the n-1 constraint 2018-09-03 23:20:46 +02:00
Jonas Hörsch
2a8ec7e3db cluster_network: Introduce minimal clustering weight 2018-08-27 19:14:34 +02:00
Jonas Hörsch
6f98607aec base_network: Improve treatment of under_construction links 2018-08-27 19:13:41 +02:00
Jonas Hörsch
21fd124d6e build_shapes: Re-include Corse and Malta 2018-08-27 19:11:36 +02:00
Jonas Hörsch
cd44a92185 base_network: Adds heuristic to replace the B2B converter LT-PL by an HVDC tie-line 2018-08-27 14:20:31 +02:00
Jonas Hörsch
94c10fc72b base_network: underwater_fraction skips links without a geometry 2018-08-27 14:19:50 +02:00
Jonas Hörsch
64e89bfcc1 prepare_links_p_nom: Fix and update 2018-08-27 14:13:53 +02:00
Jonas Hörsch
900defa07c fixup! base_network: Add underwater_fraction to links 2018-08-16 22:14:38 +02:00
Jonas Hörsch
4e078002af base_network: Add underwater_fraction to links 2018-08-14 17:03:13 +02:00
Jonas Hörsch
bc8be23f50 add_electricity: Automatically skip powerplants without buses 2018-08-10 11:21:55 +02:00
Jonas Hörsch
78f77102ad build_powerplants: Use new powerplantmatching api 2018-08-08 16:29:45 +02:00
Jonas Hörsch
4526fbb4ae Fix small edge cases when looking at only a subset of the european countries 2018-08-08 16:28:32 +02:00
Jonas Hörsch
92530f370a Fix attaching of load 2018-08-06 21:38:13 +02:00
Jonas Hörsch
cfa641386e build_cutout: Fix cutout generation 2018-08-03 12:46:42 +02:00
Jonas Hörsch
c6a4de7469 Generate cutouts on-demand 2018-08-03 11:54:28 +02:00
Jonas Hörsch
6866ce6b06 Integrate bundled landuse and load data instead of relying on vresutils 2018-08-03 11:53:14 +02:00
Jonas Hörsch
8e4abc3fce build_shapes: Build shapes in separate rule from bundled data
- country_shapes
- offshore_shapes
- nuts3_shapes (nuts3 shapes already include population and gdp data)
2018-08-03 11:49:51 +02:00
Tom Brown
9986c381be add_electricity: Fix bugs when parsing costs
pandas has to be provoked to give NaNs for missing values in the sum,
so force min_count=1. Then these NaNs are filled with defaults.

OCGT and CCGT have fuel "gas".
2018-07-26 00:08:14 +02:00
Jonas Hörsch
e2a67d624f add_electricity: Fix unit mistake, since inflow is in MW instead of pu 2018-07-26 00:08:14 +02:00
Jonas Hörsch
6d680a0262 Allow including lines and links which are still under construction 2018-07-10 16:37:50 +02:00
Jonas Hörsch
b0993c8b52 Minor fix to allow omitting parameter corrections 2018-07-10 16:34:46 +02:00
Jonas Hörsch
f0e6d447e8 Add the potential map to the renewable profile 2018-07-10 16:33:22 +02:00
Jonas Hörsch
fd026f4072 Store the busmaps underlying the simplification process as busmap_s 2018-07-10 16:31:57 +02:00
Jonas Hörsch
21968a5d77 Attach conventional generators to base model 2018-07-10 16:29:11 +02:00
Jonas Hörsch
c5a295a315 add_electricity: Make add_electricity importable as a module 2018-05-18 17:09:18 +02:00
Jonas Hörsch
fed6ff9543 cluster_network: Allow configuring the line_length_factor 2018-05-18 17:06:55 +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
f698cffe3b cluster_network: Fix typo 2018-03-14 13:19:44 +01:00
Jonas Hörsch
c3da3f7f6a base_network: set s_nom from linetypes 2018-03-14 13:18:26 +01:00
Jonas Hörsch
78ab018b60 cluster_network: Save maps from clustering as clustermaps 2018-03-13 11:50:06 +01:00
Jonas Hörsch
8e7e3571bf cluster_network: Add fast-path for when no clustering is necessary 2018-03-13 11:00:40 +01:00
Jonas Hörsch
77172f18dc Fix solar capital costs 2018-03-13 10:50:28 +01:00
Jonas Hörsch
81bcf2aad2 Properly set s_nom on lines 2018-03-13 10:48:45 +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
cd970dad2b solve_operations_network: Add rule to solve opf with previously optimized capacities 2018-02-19 10:17:49 +01:00
Jonas Hörsch
de7cbd4e27 Several minor fixes 2018-02-19 10:16:29 +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
de5916eb57 Fix co2 emissions by OCGT 2018-02-19 10:09:39 +01:00
Jonas Hörsch
2c0b66c510 {simplify,cluster}_network: Fix two-step clustering and introduce m suffix
- a network name like elec_s1000_ now clusters the network down to 1000 buses in
  the simplify step.
- an 'm' after the number of clusters as in elec_s1000_181m_ skips the
  aggregation of renewable generators and just moves them to the new clustered
  bus in the second clustering step.
- to distribute the number of clusters to countries a small quadratic
  optimization is now performed to minimize \sum_i (n_i - L_i/\sum_j L_j N)**2,
  where n_i >= 1.
2018-02-19 10:03:25 +01:00
Jonas Hörsch
7f3a1a6cd0 build_renewable_{potentials,profiles}: Fix landuse types and introduce linear correction factor 2018-02-19 09:59:29 +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
2fc2d09ad3 base_network: Buses under construction should not be used as substations 2018-02-01 12:28:21 +01:00
Jonas Hörsch
5723a07f48 Add missing p_nom and introduce MockSnakemake 2018-02-01 12:05:25 +01:00
Jonas Hörsch
ff0d302479 Add all the parts to solve all networks 2018-01-30 23:49:41 +01:00
Jonas Hörsch
abe88c2d18 Fix nans introduced through marginal_cost 2018-01-30 23:12:36 +01:00
Jonas Hörsch
99299564d6 Split simplify_network from cluster_network 2018-01-30 23:11:16 +01:00
Jonas Hörsch
2b05c79e94 Fix solve_network 2018-01-30 23:09:06 +01:00
Jonas Hörsch
5222b7c288 base_network: parameter_corrections respect column type 2018-01-30 16:26:04 +01:00
Jonas Hoersch
a867e245b3 Electricity network, Clustering and Solving 2018-01-29 22:28:33 +01:00
Jonas Hoersch
2c7f013e39 base_network: Remove clean-up code that moved directly into gridkit 2017-12-19 13:28:16 +01:00
Jonas Hoersch
6e1566ac32 snakemake: Add skeletons and add prepare_links_p_nom rule 2017-12-18 20:34:15 +01:00
Jonas Hoersch
5f4dc833b8 scripts: Add first version of base_network and solve_network scripts 2017-12-18 20:31:27 +01:00