From 42692c3ca5810b3baba993c9e3dea2584bafec76 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Mon, 9 Oct 2023 16:21:04 +0200 Subject: [PATCH] UA-MD availability matrix: plot shape_availability --- rules/build_electricity.smk | 1 + scripts/determine_availability_matrix_MD_UA.py | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/rules/build_electricity.smk b/rules/build_electricity.smk index c44c3353..3eb9ee12 100644 --- a/rules/build_electricity.smk +++ b/rules/build_electricity.smk @@ -237,6 +237,7 @@ rule determine_availability_matrix_MD_UA: + ".nc", output: availability_matrix=RESOURCES + "availability_matrix_MD-UA_{technology}.nc", + availability_map=RESOURCES + "availability_matrix_MD-UA_{technology}.png", log: LOGS + "determine_availability_matrix_MD_UA_{technology}.log", threads: ATLITE_NPROCESSES diff --git a/scripts/determine_availability_matrix_MD_UA.py b/scripts/determine_availability_matrix_MD_UA.py index 0aa3faa2..2fea2294 100644 --- a/scripts/determine_availability_matrix_MD_UA.py +++ b/scripts/determine_availability_matrix_MD_UA.py @@ -10,8 +10,11 @@ import time import atlite import fiona import geopandas as gpd +import matplotlib.pyplot as plt import numpy as np from _helpers import configure_logging +from atlite.gis import shape_availability +from rasterio.plot import show logger = logging.getLogger(__name__) @@ -127,6 +130,14 @@ if __name__ == "__main__": else: availability = cutout.availabilitymatrix(regions, excluder, **kwargs) + regions_geometry = regions.to_crs(3035).geometry + band, transform = shape_availability(regions_geometry, excluder) + fig, ax = plt.subplots(figsize=(4, 8)) + gpd.GeoSeries(regions_geometry.unary_union).plot(ax=ax, color="none") + show(band, transform=transform, cmap="Greens", ax=ax) + plt.axis('off') + plt.savefig(snakemake.output.availability_map, bbox_inches="tight", dpi=500) + # Limit results only to buses for UA and MD buses = regions.loc[regions["country"].isin(["UA", "MD"])].index.values availability = availability.sel(bus=buses)