From d33547efbab3940b7fafd9cf81b50790a59c1506 Mon Sep 17 00:00:00 2001 From: virio-andreyana Date: Wed, 8 Feb 2023 11:45:18 +0100 Subject: [PATCH 1/3] importing rioxarray instead of xarray to open rasterio file --- envs/environment.fixed.yaml | 1 + envs/environment.yaml | 1 + scripts/build_ship_raster.py | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/envs/environment.fixed.yaml b/envs/environment.fixed.yaml index 1c7aeaad..94f2c9ce 100644 --- a/envs/environment.fixed.yaml +++ b/envs/environment.fixed.yaml @@ -335,6 +335,7 @@ dependencies: - requests=2.28.1 - retry=0.9.2 - rich=12.5.1 +- rioxarray=0.13.3 - rtree=1.0.0 - s2n=1.0.10 - scikit-learn=1.1.1 diff --git a/envs/environment.yaml b/envs/environment.yaml index 490268e8..74a63eb8 100644 --- a/envs/environment.yaml +++ b/envs/environment.yaml @@ -29,6 +29,7 @@ dependencies: - pandas - geopandas>=0.11.0 - xarray +- rioxarray - netcdf4 - networkx - scipy diff --git a/scripts/build_ship_raster.py b/scripts/build_ship_raster.py index 0ae134fd..fcfa632d 100644 --- a/scripts/build_ship_raster.py +++ b/scripts/build_ship_raster.py @@ -41,7 +41,7 @@ import logging import os import zipfile -import xarray as xr +import rioxarray as rio from _helpers import configure_logging from build_natura_raster import determine_cutout_xXyY @@ -59,7 +59,7 @@ if __name__ == "__main__": with zipfile.ZipFile(snakemake.input.ship_density) as zip_f: zip_f.extract("shipdensity_global.tif") - with xr.open_rasterio("shipdensity_global.tif") as ship_density: + with rio.open_rasterio("shipdensity_global.tif") as ship_density: ship_density = ship_density.drop(["band"]).sel( x=slice(min(xs), max(Xs)), y=slice(max(Ys), min(ys)) ) From 6d7eae8ad28169f73f399197bc46eaad85e15c62 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 20 Apr 2023 19:56:23 +0200 Subject: [PATCH 2/3] build_ship_raster: save reduced ship raster as tif file --- rules/build_electricity.smk | 4 ++-- scripts/build_ship_raster.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rules/build_electricity.smk b/rules/build_electricity.smk index 0074a8a9..133ceb6e 100644 --- a/rules/build_electricity.smk +++ b/rules/build_electricity.smk @@ -172,7 +172,7 @@ rule build_ship_raster: ], ), output: - RESOURCES + "shipdensity_raster.nc", + RESOURCES + "shipdensity_raster.tif", log: LOGS + "build_ship_raster.log", resources: @@ -202,7 +202,7 @@ rule build_renewable_profiles: ) ), ship_density=lambda w: ( - RESOURCES + "shipdensity_raster.nc" + RESOURCES + "shipdensity_raster.tif" if "ship_threshold" in config["renewable"][w.technology].keys() else [] ), diff --git a/scripts/build_ship_raster.py b/scripts/build_ship_raster.py index 59610ade..9d9dda0b 100644 --- a/scripts/build_ship_raster.py +++ b/scripts/build_ship_raster.py @@ -46,7 +46,7 @@ import logging import os import zipfile -import rioxarray as rio +import rioxarray from _helpers import configure_logging from build_natura_raster import determine_cutout_xXyY @@ -64,10 +64,10 @@ if __name__ == "__main__": with zipfile.ZipFile(snakemake.input.ship_density) as zip_f: zip_f.extract("shipdensity_global.tif") - with rio.open_rasterio("shipdensity_global.tif") as ship_density: + with rioxarray.open_rasterio("shipdensity_global.tif") as ship_density: ship_density = ship_density.drop(["band"]).sel( x=slice(min(xs), max(Xs)), y=slice(max(Ys), min(ys)) ) - ship_density.to_netcdf(snakemake.output[0]) + ship_density.rio.to_raster(snakemake.output[0]) os.remove("shipdensity_global.tif") From 79501b5741479e61f8ff740b166863b28c12c162 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 20 Apr 2023 20:37:27 +0200 Subject: [PATCH 3/3] build_biomass: fix geopandas compat with pandas v2.0 --- scripts/build_biomass_potentials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_biomass_potentials.py b/scripts/build_biomass_potentials.py index 50f2583c..21d0e623 100644 --- a/scripts/build_biomass_potentials.py +++ b/scripts/build_biomass_potentials.py @@ -197,7 +197,7 @@ def convert_nuts2_to_regions(bio_nuts2, regions): ) overlay[adjust_cols] = overlay[adjust_cols].multiply(overlay["share"], axis=0) - bio_regions = overlay.groupby("name").sum() + bio_regions = overlay.dissolve("name", aggfunc="sum") bio_regions.drop(["area_nuts2", "share"], axis=1, inplace=True)