From 78ab018b601543ddc39088aa3b1793229add35d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20H=C3=B6rsch?= Date: Tue, 13 Mar 2018 11:50:06 +0100 Subject: [PATCH] cluster_network: Save maps from clustering as clustermaps --- Snakefile | 3 ++- scripts/cluster_network.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Snakefile b/Snakefile index 5f164fdd..7e48a328 100644 --- a/Snakefile +++ b/Snakefile @@ -112,7 +112,8 @@ rule cluster_network: output: network='networks/{network}_s{simpl}_{clusters}.nc', regions_onshore="resources/regions_onshore_{network}_s{simpl}_{clusters}.geojson", - regions_offshore="resources/regions_offshore_{network}_s{simpl}_{clusters}.geojson" + regions_offshore="resources/regions_offshore_{network}_s{simpl}_{clusters}.geojson", + clustermaps='resources/clustermaps_{network}_s{simpl}_{clusters}.h5' benchmark: "benchmarks/cluster_network/{network}_s{simpl}_{clusters}" threads: 1 resources: mem_mb=3000 diff --git a/scripts/cluster_network.py b/scripts/cluster_network.py index 036b33ce..15cdb9f9 100644 --- a/scripts/cluster_network.py +++ b/scripts/cluster_network.py @@ -196,13 +196,17 @@ if __name__ == "__main__": if n_clusters == len(n.buses): # Fast-path if no clustering is necessary - n.export_to_netcdf(snakemake.output.network) - for which in ('regions_onshore', 'regions_offshore'): - copyfile(getattr(snakemake.input, which), - getattr(snakemake.output, which)) + busmap = n.buses.index.to_series() + linemap = n.lines.index.to_series() + clustering = pypsa.networkclustering.Clustering(n, busmap, linemap, linemap, pd.Series(dtype='O')) else: clustering = clustering_for_n_clusters(n, n_clusters, aggregate_renewables) - clustering.network.export_to_netcdf(snakemake.output.network) + clustering.network.export_to_netcdf(snakemake.output.network) + with pd.HDFStore(snakemake.output.clustermaps, model='w') as store: + for attr in ('busmap', 'linemap', 'linemap_positive', 'linemap_negative'): + store.put(attr, getattr(clustering, attr), format=Table, index=False) + + cluster_regions((clustering.busmap,)) + - cluster_regions((clustering.busmap,))