Merge pull request #845 from PyPSA/performance-ship-raster

`build_ship_raster` performance improvements
This commit is contained in:
Fabian Neumann 2024-01-04 20:35:02 +01:00 committed by GitHub
commit ac9f0bf797
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 15 deletions

View File

@ -4,7 +4,7 @@
import os, sys, glob
helper_source_path = [match for match in glob.glob('**/_helpers.py', recursive=True)]
helper_source_path = [match for match in glob.glob("**/_helpers.py", recursive=True)]
for path in helper_source_path:
path = os.path.dirname(os.path.abspath(path))

View File

@ -133,9 +133,7 @@ def disable_grid_expansion_if_LV_limit_hit(n):
# allow small numerical differences
if lv_limit - total_expansion < 1:
logger.info(
f"LV is already reached, disabling expansion and LV limit"
)
logger.info(f"LV is already reached, disabling expansion and LV limit")
extendable_acs = n.lines.query("s_nom_extendable").index
n.lines.loc[extendable_acs, "s_nom_extendable"] = False
n.lines.loc[extendable_acs, "s_nom"] = n.lines.loc[extendable_acs, "s_nom_min"]

View File

@ -42,8 +42,8 @@ Description
"""
import logging
import os
import zipfile
from pathlib import Path
import rioxarray
from _helpers import configure_logging
@ -62,11 +62,13 @@ if __name__ == "__main__":
xs, Xs, ys, Ys = zip(*(determine_cutout_xXyY(cutout) for cutout in cutouts))
with zipfile.ZipFile(snakemake.input.ship_density) as zip_f:
zip_f.extract("shipdensity_global.tif")
with rioxarray.open_rasterio("shipdensity_global.tif") as ship_density:
resources = Path(snakemake.output[0]).parent
fn = "shipdensity_global.tif"
zip_f.extract(fn, resources)
with rioxarray.open_rasterio(resources / fn) as ship_density:
ship_density = ship_density.drop_vars(["band"]).sel(
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()

View File

@ -3000,8 +3000,9 @@ def add_industry(n, costs):
if options["co2_spatial"] or options["co2network"]:
p_set = (
-industrial_demand.loc[nodes, "process emission"]
.rename(index=lambda x: x + " process emissions")
-industrial_demand.loc[nodes, "process emission"].rename(
index=lambda x: x + " process emissions"
)
/ nhours
)
else:
@ -3414,6 +3415,7 @@ def cluster_heat_buses(n):
pnl = c.pnl
agg = define_clustering(pd.Index(pnl.keys()), aggregate_dict)
for k in pnl.keys():
def renamer(s):
return s.replace("residential ", "").replace("services ", "")

View File

@ -856,7 +856,7 @@ def solve_network(n, config, solving, opts="", **kwargs):
kwargs["assign_all_duals"] = cf_solving.get("assign_all_duals", False)
if kwargs["solver_name"] == "gurobi":
logging.getLogger('gurobipy').setLevel(logging.CRITICAL)
logging.getLogger("gurobipy").setLevel(logging.CRITICAL)
rolling_horizon = cf_solving.pop("rolling_horizon", False)
skip_iterations = cf_solving.pop("skip_iterations", False)