clustering: own config for clustering settings
This commit is contained in:
parent
299e71e2b3
commit
6c4ea69e95
@ -170,7 +170,10 @@ def weighting_for_country(n, x):
|
|||||||
return (w * (100. / w.max())).clip(lower=1.).astype(int)
|
return (w * (100. / w.max())).clip(lower=1.).astype(int)
|
||||||
|
|
||||||
|
|
||||||
def get_feature_for_hac(n, buses_i, feature=None): #buses_i = n.buses.index
|
def get_feature_for_hac(n, buses_i=None, feature=None):
|
||||||
|
|
||||||
|
if buses_i is None:
|
||||||
|
buses_i = n.buses.index
|
||||||
|
|
||||||
if feature is None:
|
if feature is None:
|
||||||
feature = "solar+onwind-time"
|
feature = "solar+onwind-time"
|
||||||
@ -269,8 +272,8 @@ def busmap_for_n_clusters(n, n_clusters, solver_name, focus_weights=None, algori
|
|||||||
if algorithm == "hac":
|
if algorithm == "hac":
|
||||||
feature = get_feature_for_hac(n, buses_i=n.buses.index, feature=feature)
|
feature = get_feature_for_hac(n, buses_i=n.buses.index, feature=feature)
|
||||||
elif feature is not None:
|
elif feature is not None:
|
||||||
logger.info(f"keyword argument feature is only valid for algorithm 'hac'."
|
logger.warning(f"Keyword argument feature is only valid for algorithm 'hac'."
|
||||||
f"given feature {feature} will be ignored.")
|
f"given feature {feature} will be ignored.")
|
||||||
|
|
||||||
n.determine_network_topology()
|
n.determine_network_topology()
|
||||||
|
|
||||||
@ -422,12 +425,13 @@ if __name__ == "__main__":
|
|||||||
potential_mode = consense(pd.Series([snakemake.config['renewable'][tech]['potential']
|
potential_mode = consense(pd.Series([snakemake.config['renewable'][tech]['potential']
|
||||||
for tech in renewable_carriers]))
|
for tech in renewable_carriers]))
|
||||||
custom_busmap = snakemake.config["enable"].get("custom_busmap", False)
|
custom_busmap = snakemake.config["enable"].get("custom_busmap", False)
|
||||||
|
cluster_config = snakemake.config.get('clustering', {}).get('cluster_network', {})
|
||||||
clustering = clustering_for_n_clusters(n, n_clusters, custom_busmap, aggregate_carriers,
|
clustering = clustering_for_n_clusters(n, n_clusters, custom_busmap, aggregate_carriers,
|
||||||
line_length_factor=line_length_factor,
|
line_length_factor=line_length_factor,
|
||||||
potential_mode=potential_mode,
|
potential_mode=potential_mode,
|
||||||
solver_name=snakemake.config['solving']['solver']['name'],
|
solver_name=snakemake.config['solving']['solver']['name'],
|
||||||
algorithm=snakemake.config.get('clustering', {}).get('cluster_network', {}).get('algorithm', 'kmeans'),
|
algorithm=cluster_config.get('algorithm', 'kmeans'),
|
||||||
feature=snakemake.config.get('clustering', {}).get('cluster_network', {}).get('feature', None),
|
feature=cluster_config.get('feature', None),
|
||||||
extended_link_costs=hvac_overhead_cost,
|
extended_link_costs=hvac_overhead_cost,
|
||||||
focus_weights=focus_weights)
|
focus_weights=focus_weights)
|
||||||
|
|
||||||
|
@ -407,9 +407,10 @@ if __name__ == "__main__":
|
|||||||
busmaps.append(substation_map)
|
busmaps.append(substation_map)
|
||||||
|
|
||||||
if snakemake.wildcards.simpl:
|
if snakemake.wildcards.simpl:
|
||||||
|
cluster_config = snakemake.config.get('clustering', {}).get('simplify_network', {})
|
||||||
n, cluster_map = cluster(n, int(snakemake.wildcards.simpl),
|
n, cluster_map = cluster(n, int(snakemake.wildcards.simpl),
|
||||||
algorithm=snakemake.config.get('clustering', {}).get('simplify_network', {}).get('algorithm', 'hac'),
|
algorithm=cluster_config.get('algorithm', 'hac'),
|
||||||
feature=snakemake.config.get('clustering', {}).get('simplify_network', {}).get('feature', None))
|
feature=cluster_config.get('feature', None))
|
||||||
busmaps.append(cluster_map)
|
busmaps.append(cluster_map)
|
||||||
|
|
||||||
# some entries in n.buses are not updated in previous functions, therefore can be wrong. as they are not needed
|
# some entries in n.buses are not updated in previous functions, therefore can be wrong. as they are not needed
|
||||||
|
Loading…
Reference in New Issue
Block a user