Commit Graph

120 Commits

Author SHA1 Message Date
Philipp Glaum
ba7a5363e7 update Fabians review comments 2022-07-29 14:56:39 +02:00
Philipp Glaum
6d070a19e0 initial ship raster implementation 2022-07-28 10:38:24 +02:00
Fabian Neumann
bfcc08665d make resolution of exclusion calculation a configurable option 2022-07-27 13:40:41 +02:00
Fabian Neumann
8fc0c57ed6 update copyright years 2022-07-26 15:05:59 +02:00
Fabian Neumann
971e970250
Merge branch 'master' into landlock-fix-alterative 2022-06-28 07:47:13 +02:00
Fabian Neumann
51de606aab
Revert "remove build/retrieve natura raster, directly use shapefile" 2022-06-27 19:00:41 +02:00
Fabian Neumann
8e57d68b73
Merge branch 'master' into landlock-fix-alterative 2022-06-27 09:44:42 +02:00
Fabian Neumann
d321b2b762 resolve merge conflicts 2022-06-24 20:15:32 +02:00
Fabian
c42d2bd97d refactor save to geojson file functionality to allow import/export of empty geodfs 2022-06-24 15:11:21 +02:00
Fabian
75f9719076 build_renewable_profiles: use LocalCluster instance 2022-06-24 14:07:51 +02:00
Fabian
d18867ce61 build_renewable_profiles: use dask client instead of kwargs 2022-06-23 21:27:18 +02:00
Fabian Hofmann
6b9932f5e8
build_renewable_profiles: set show progress default to False 2022-06-14 15:24:10 +02:00
Max Parzen
b6032fb891 fix crs bug 2022-05-28 14:48:32 +01:00
Fabian Neumann
7f6a00cfce
Merge branch 'master' into rm-raster-natura 2022-03-24 14:19:14 +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
euronion
28d02a8d37 Update build_renewable_profiles.py 2022-03-18 08:58:04 +01:00
euronion
3e14156709 Add land cover analysis for MD, UA (Quick & Dirty). 2022-03-17 17:56:13 +01:00
Fabian Neumann
835bfc0f6a bugfix: access right config variables in build renewable profiles 2022-02-01 08:51:47 +01:00
martacki
6cdf3a2879 use snakemake keywords directly without extracting them beforehand 2022-01-24 19:48:26 +01:00
martacki
deac9f32e7 move snakemake keys (input, output, config, ...) to own variables 2022-01-14 11:05:15 +01:00
Fabian Neumann
2e02af8b4b change license 2021-09-14 16:37:41 +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
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
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
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
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
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
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
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
Fabian Neumann
5ea60a1ee0 modify to run without GEBCO and without hydro 2019-10-03 12:32:49 +02:00
Fabian Neumann
0e5886081e move rules to own pages and adapt image paths 2019-08-14 15:36:46 +02:00
Fabian Neumann
630b08fff0 add cutout related descriptions and figures 2019-08-13 15:48:21 +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
Fabian Neumann
89d89deec0 further improve documentation 2019-08-12 19:01:53 +02:00
Fabian Neumann
a5d9bc9c7c add input/output descriptions (WIP) 2019-08-11 22:34:18 +02:00
Fabian Neumann
67cf28b593 fill in relevant settings sections 2019-08-11 13:17:36 +02:00
Fabian Neumann
1bded0ab9b add rule section headers 2019-08-11 11:40:47 +02:00
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
Jonas Hoersch
fb0d44f64e Add a summary sentence for each rule taken from scripts 2019-08-08 15:07:08 +02:00
Jonas Hoersch
63a6cebab2 build_renewable_profiles: Communicate extent as pickleable tuple (fixes #42) 2019-05-28 13:50:42 +02: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
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
9c6c89dfad build_*_profile(s): Make caps on p_nom_max and inflow optional 2018-12-31 14:10:55 +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
f60c1fdb41 Rename index column in geojson imports 2018-12-19 15:37:18 +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
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
a035bee9c6 Merge branch 'windcosts' 2018-12-11 16:09:24 +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 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
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
f0e6d447e8 Add the potential map to the renewable profile 2018-07-10 16:33:22 +02:00
Jonas Hörsch
de7cbd4e27 Several minor fixes 2018-02-19 10:16:29 +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 Hoersch
a867e245b3 Electricity network, Clustering and Solving 2018-01-29 22:28:33 +01:00