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.
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.
config.default.yaml should be copied to config.yaml by new users.
That way config.yaml doesn't change every time the developers use new
settings.
A basic "Getting Started" section is added to the README.
Changes to be committed:
modified: .gitignore
modified: README.md
renamed: config.yaml -> config.default.yaml
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.
* 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
* 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
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.
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.
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).
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.