build_ship_raster: performance improvement

This commit is contained in:
Fabian Neumann 2024-01-04 19:42:22 +01:00
parent 608a12fed2
commit b135a0cc01

View File

@ -62,11 +62,13 @@ if __name__ == "__main__":
xs, Xs, ys, Ys = zip(*(determine_cutout_xXyY(cutout) for cutout in cutouts)) xs, Xs, ys, Ys = zip(*(determine_cutout_xXyY(cutout) for cutout in cutouts))
with zipfile.ZipFile(snakemake.input.ship_density) as zip_f: with zipfile.ZipFile(snakemake.input.ship_density) as zip_f:
zip_f.extract("shipdensity_global.tif") resources = Path(snakemake.output[0]).parent
with rioxarray.open_rasterio("shipdensity_global.tif") as ship_density: fn = "shipdensity_global.tif"
ship_density = ship_density.drop_vars(["band"]).sel( zip_f.extract(fn, resources)
x=slice(min(xs), max(Xs)), y=slice(max(Ys), min(ys)) with rioxarray.open_rasterio(resources / fn) as ship_density:
) ship_density = ship_density.drop_vars(["band"]).sel(
ship_density.rio.to_raster(snakemake.output[0]) x=slice(min(xs), max(Xs)), y=slice(max(Ys), min(ys))
)
ship_density.rio.to_raster(snakemake.output[0])
os.remove("shipdensity_global.tif") (resources / fn).unlink()