diff --git a/docs/_static/opti_results.csv b/docs/_static/opti_results.csv index ac280506..d995de84 100644 --- a/docs/_static/opti_results.csv +++ b/docs/_static/opti_results.csv @@ -5,6 +5,8 @@ attribute,type,unit,description,status **length**,float,m,Length of pipe (see :ref:`pipes of network`),Input **hp_type**,object,n/a,Label of pipe which got selected from :ref:`network/pipes.csv `,Result **capacity**,float,kW,Installed pipe capacity,Result +**flow**,float,kW,Flow through the pipe. For new pipes *capacity = flow + losses*. For existing pipes *capacity >= flow + losses*,Result **direction**,float,-1/0/1,Flow direction of pipe: 1 if direction corresponds to the *from_node*/*to_node* notation. -1: opposite direction. 0: no investment. This works only if the setting option *bidirectional_pipes* is set *False*.,Result **costs**,float,Eur,Total cost of pipe element.,Result **losses**,float,kW,Total losses of pipe element.,Result +**existing**,bool,True/False,"*True* if pipe is existing, *False* if pipe is new. Attribute is only included if the optimization setting *return_existing* is *True*.",Result diff --git a/docs/_static/opti_settings.csv b/docs/_static/opti_settings.csv index 126eacf5..bee69cb9 100644 --- a/docs/_static/opti_settings.csv +++ b/docs/_static/opti_settings.csv @@ -12,3 +12,5 @@ attribute,type,default,description **dump_name**,str,dump.oemof,Name of dump file **print_logging_info**,bool,*False*,There are still some helpful print statements. **write_lp_file**,bool,*False*,Option of writing lp-file. The lp-file is stored in 'User/.oemof/lp_files/DHNx.lp' +**allow_nonoptimal**,bool,*False*,"*False*: If no optimal solution is found, an error will be raised. *True*: If no optimal solution is found, there will be a warning." +**return_existing**,bool,*False*,"Return existing pipes in the resulting network, but only those that receive a flow. Only applies if *existing=1* was used for any input pipe segments." diff --git a/docs/whatsnew/v0-1-0.rst b/docs/whatsnew/v0-1-0.rst index 16ef8150..51651e13 100644 --- a/docs/whatsnew/v0-1-0.rst +++ b/docs/whatsnew/v0-1-0.rst @@ -16,6 +16,29 @@ API changes We reccomend using PandaPipes (typically) or TESPy (e.g. if phase changes need to be considered) instead. +* Renamed argument ``welding`` of ``process_geometry()`` to ``simplify`` + to reflect the extended functionality (not only merging line segments and + loose ends, but also removing unnecessary detours) + +* The result ``network.results.optimization['components']['pipes']`` of + the optimization now contains the following additional column: + + * ``flow``: Thermal power flow through the pipe. + For new pipes ``capacity = flow + losses``. + For existing pipes ``capacity >= flow + losses``. + +* ``network.optimize_investment()`` accepts new arguments: + + * ``return_existing``: If ``True``, this will return existing pipes in the + resulting network, but only those that receive a flow. + Only applies if ``existing=1`` was used for any input pipe segments. + Default is ``False``, in which case the previous behaviour + is preserved, where existing pipe segments are not included in the + resulting network (despite being used in the optimization). + * ``allow_nonoptimal``: ``False`` (default): If no optimal solution is + found, an error will be raised. ``True``: If no optimal solution is + found, there will be a warning. + New features ^^^^^^^^^^^^^^^^^^^^ @@ -54,6 +77,7 @@ Other changes * Updated build system to pyproject.toml * Improved simplifying pre-processing +* Fix several issues related to the workflow with existing pipes Contributors diff --git a/src/dhnx/gistools/connect_points.py b/src/dhnx/gistools/connect_points.py index aeddcd1e..3bb9e742 100644 --- a/src/dhnx/gistools/connect_points.py +++ b/src/dhnx/gistools/connect_points.py @@ -29,6 +29,7 @@ print("Need to install shapely to process geometry.") import logging +import warnings import numpy as np import pandas as pd @@ -550,6 +551,7 @@ def process_geometry( n_conn=1, n_conn_prod=1, simplify=True, + **kwargs, ): """ This function connects the consumers and producers to the line network, @@ -595,10 +597,11 @@ def process_geometry( the nearest line segments in the street network. This allows the placement of the connection lines to be part of the optimization process. The default is 1. - welding : bool, optional - Weld continuous line segments together and cut loose ends. This - can improve the performance of the optimization, as it decreases - the total number of line elements. Default is True. + simplify : bool, optional + Merge continuous line segments together, cut loose ends and remove + unnecessary detours. This can improve the performance of the + optimization, as it decreases the total number of line elements + and branches. Default is True. Returns ------- @@ -613,6 +616,14 @@ def process_geometry( "supported. Use 'reset_index=True'." ) + if "welding" in kwargs: + warnings.warn( + "Argument 'welding' is deprecated and now overwrites 'simplify'. " + "Please use 'simplify' instead.", + FutureWarning, + ) + simplify = kwargs["welding"] + # Copies of the original polygons are needed for method 'boundary' consumers_poly = go.check_crs(consumers, crs=projected_crs).copy() producers_poly = go.check_crs(producers, crs=projected_crs).copy() diff --git a/src/dhnx/gistools/geometry_operations.py b/src/dhnx/gistools/geometry_operations.py index 62163f21..aaf8a437 100644 --- a/src/dhnx/gistools/geometry_operations.py +++ b/src/dhnx/gistools/geometry_operations.py @@ -147,7 +147,7 @@ def match_multipoint(point_wkt): [wkt.loads(x) for x in lines["b1_wkt"] if not match_multipoint(x)] ) gdf_errors = gpd.GeoDataFrame(geometry=errors, crs=lines.crs) - ax = lines.plot() + ax = lines.plot(color='blue') gdf_errors.plot(ax=ax, color="red", label="Point(s) causing error") plt.legend() plt.show() diff --git a/src/dhnx/optimization/add_components.py b/src/dhnx/optimization/add_components.py index ae4b0d0d..f028ac22 100644 --- a/src/dhnx/optimization/add_components.py +++ b/src/dhnx/optimization/add_components.py @@ -457,11 +457,10 @@ def add_heatpipes(it, labels, bidirectional, length, b_in, b_out, nodes): # definition of tag3 of label -> type of pipe labels["l_3"] = t["label_3"] - epc_p = t["capex_pipes"] * length - epc_fix = t["fix_costs"] * length - # Heatpipe with binary variable nc = bool(t["nonconvex"]) + epc_p = t["capex_pipes"] * length + epc_fix = t["fix_costs"] * length if nc else 0 # bidirectional heatpipelines yes or no flow_bi_args = {"minimum": -1} if bidirectional else {} diff --git a/src/dhnx/optimization/dhs_nodes.py b/src/dhnx/optimization/dhs_nodes.py index 670ac81a..19773912 100644 --- a/src/dhnx/optimization/dhs_nodes.py +++ b/src/dhnx/optimization/dhs_nodes.py @@ -11,7 +11,6 @@ SPDX-License-Identifier: MIT """ - import oemof.solph as solph import dhnx.optimization.add_components as ac @@ -75,7 +74,7 @@ def add_nodes_dhs(opti_network, gd, nodes, busd): d_labels["l_1"] = "infrastructure" d_labels["l_2"] = "heat" - if q["existing"]: + if q["existing"] == 1: # terminate the first label l_1_in = "infrastructure" @@ -127,7 +126,6 @@ def add_nodes_dhs(opti_network, gd, nodes, busd): ) elif (typ_from == "forks") and (typ_to == "forks"): - start = q["from_node"] end = q["to_node"] b_in = busd[(l_1_in, d_labels["l_2"], "bus", start)] @@ -137,6 +135,18 @@ def add_nodes_dhs(opti_network, gd, nodes, busd): pipe_data, d_labels, gd, q, b_in, b_out, nodes ) + if not gd["bidirectional_pipes"]: + # the heatpipes from fork to fork need to be created in + # both directions, in case of bidirectional == False + start = q["to_node"] + end = q["from_node"] + b_in = busd[(l_1_in, d_labels["l_2"], "bus", start)] + b_out = busd[(l_1_out, d_labels["l_2"], "bus", end)] + d_labels["l_4"] = start + "-" + end + nodes = ac.add_heatpipes_exist( + pipe_data, d_labels, gd, q, b_in, b_out, nodes + ) + else: raise ValueError("Something wrong!") @@ -208,14 +218,11 @@ def add_nodes_dhs(opti_network, gd, nodes, busd): elif (q["from_node"].split("-")[0] == "forks") and ( q["to_node"].split("-")[0] == "forks" ): - - b_in = busd[ - (d_labels["l_1"], d_labels["l_2"], "bus", q["from_node"]) - ] - b_out = busd[ - (d_labels["l_1"], d_labels["l_2"], "bus", q["to_node"]) - ] - d_labels["l_4"] = q["from_node"] + "-" + q["to_node"] + start = q["from_node"] + end = q["to_node"] + b_in = busd[(d_labels["l_1"], d_labels["l_2"], "bus", start)] + b_out = busd[(d_labels["l_1"], d_labels["l_2"], "bus", end)] + d_labels["l_4"] = start + "-" + end nodes = ac.add_heatpipes( pipe_data, @@ -229,19 +236,16 @@ def add_nodes_dhs(opti_network, gd, nodes, busd): if not gd["bidirectional_pipes"]: # the heatpipes from fork to fork need to be created in - # both directions in this case bidiretional = False + # both directions, in case of bidirectional == False + start = q["to_node"] + end = q["from_node"] b_in = busd[ - (d_labels["l_1"], d_labels["l_2"], "bus", q["to_node"]) + (d_labels["l_1"], d_labels["l_2"], "bus", start) ] b_out = busd[ - ( - d_labels["l_1"], - d_labels["l_2"], - "bus", - q["from_node"], - ) + (d_labels["l_1"], d_labels["l_2"], "bus", end) ] - d_labels["l_4"] = q["to_node"] + "-" + q["from_node"] + d_labels["l_4"] = start + "-" + end nodes = ac.add_heatpipes( pipe_data, diff --git a/src/dhnx/optimization/oemof_heatpipe.py b/src/dhnx/optimization/oemof_heatpipe.py index 2159bbba..129ae4c2 100644 --- a/src/dhnx/optimization/oemof_heatpipe.py +++ b/src/dhnx/optimization/oemof_heatpipe.py @@ -131,7 +131,7 @@ def __init__( "the results. Hopefully, you know what you are doing." ) else: - self._set_nominal_value() + self._set_nominal_capacity() def _check_flows_invest(self): # for flow in self.inputs.values(): @@ -148,15 +148,15 @@ def _set_flows(self): for flow in self.inputs.values(): flow.investment = Investment() - # set nominal values of in- and outflow equal in case of + # set nominal capacities of in- and outflow equal in case of # invest_group = False - def _set_nominal_value(self): + def _set_nominal_capacity(self): i = list(self.inputs.keys())[0] o = list(self.outputs.keys())[0] - if self.outputs[o].nominal_value is not None: - self.inputs[i].nominal_value = self.outputs[o].nominal_value - elif self.inputs[i].nominal_value is not None: - self.outputs[o].nominal_value = self.inputs[i].nominal_value + if self.outputs[o].nominal_capacity is not None: + self.inputs[i].nominal_capacity = self.outputs[o].nominal_capacity + elif self.inputs[i].nominal_capacity is not None: + self.outputs[o].nominal_capacity = self.inputs[i].nominal_capacity def constraint_group(self): if self._invest_group is True: @@ -191,8 +191,8 @@ class HeatPipelineBlock(ScalarBlock): # pylint: disable=too-many-ancestors ":math:`\dot{Q}_{in}(t)`", ":py:obj:`flow[i, n, t]`", "V", "Heat input" ":math:`\dot{Q}_{loss}(t)`", ":py:obj:`heat_loss[n, t]`", "P", "Heat loss of heat pipeline" - ":math:`\dot{Q}_{nominal}`", ":py:obj:`flows[n, o].nominal_value`", " - P", "Nominal capacity of heating pipeline" + ":math:`\dot{Q}_{nominal}`", ":py:obj:`flows[n, o].nominal_capacity` + ", "P", "Nominal capacity of heating pipeline" ":math:`f_{loss}(t)`", ":py:obj:`heat_loss_factor`", "P", "Specific heat loss factor for pipeline" ":math:`l`", ":py:obj:`length`", "P", "Length of heating pipeline" @@ -242,13 +242,13 @@ def _create(self, group=None): def _heat_loss_rule_fix(block, n, t): """Rule definition for the heat loss depending on the nominal - capacity for fix fix heat loss. + capacity for fix heat loss. """ o = list(n.outputs.keys())[0] expr = 0 expr += -block.heat_loss[n, t] - expr += n.heat_loss_factor[t] * m.flows[n, o].nominal_value + expr += n.heat_loss_factor[t] * m.flows[n, o].nominal_capacity expr += n.heat_loss_factor_fix[t] return expr == 0 @@ -265,7 +265,7 @@ def _heat_loss_rule_on_off(block, n, t): expr = 0 expr += -block.heat_loss[n, t] expr += ( - n.heat_loss_factor[t] * m.flows[n, o].nominal_value + n.heat_loss_factor[t] * m.flows[n, o].nominal_capacity + n.heat_loss_factor_fix[t] ) * m.NonConvexFlowBlock.status[n, o, t] return expr == 0 @@ -325,8 +325,8 @@ class HeatPipelineInvestBlock( ":math:`\dot{Q}_{in}(t)`", ":py:obj:`flow[i, n, t]`", "V", "Heat input" ":math:`\dot{Q}_{loss}(t)`", ":py:obj:`heat_loss[n, t]`", "V", "Heat loss of heat pipeline" - ":math:`\dot{Q}_{nominal}`", ":py:obj:`flows[n, o].nominal_value`", " - V", "Nominal capacity of heating pipeline" + ":math:`\dot{Q}_{nominal}`", ":py:obj:`flows[n, o].nominal_capacity` + ", "V", "Nominal capacity of heating pipeline" ":math:`f_{loss}(t)`", ":py:obj:`heat_loss_factor`", "P", "Specific heat loss factor for pipeline" ":math:`l`", ":py:obj:`length`", "P", "Length of heating pipeline" diff --git a/src/dhnx/optimization/optimization_models.py b/src/dhnx/optimization/optimization_models.py index dcd6b1bc..0849a76b 100644 --- a/src/dhnx/optimization/optimization_models.py +++ b/src/dhnx/optimization/optimization_models.py @@ -362,6 +362,12 @@ def check_existing(self): # check whether there the 'existing' attribute is present at the pipes if "existing" not in self.thermal_network.components["pipes"].columns: self.thermal_network.components["pipes"]["existing"] = 0 + else: # If any pipes are existing, set undefined to non-existing + self.thermal_network.components["pipes"] = ( + self.thermal_network.components["pipes"].fillna( + {"existing": 0} + ) + ) # create pipes attribute hp_type, if not in the table so far if "hp_type" not in list( @@ -503,7 +509,7 @@ def solve(self): def get_results_edges(self): """Postprocessing of the investment results of the pipes.""" - def get_invest_val(lab): + def get_result_val(lab, attr): res = self.es.results["main"] @@ -518,46 +524,22 @@ def get_invest_val(lab): logger.info("Multiple IDs!") try: - invest = res[outflow[0]]["scalars"]["invest"] + val = res[outflow[0]]["scalars"][attr] except (KeyError, IndexError): try: - # that's in case of a one timestep optimisation due to - # an oemof bug in outputlib - invest = res[outflow[0]]["sequences"]["invest"].iloc[0] + # When dhnx is solving an actual time series, + # each time step may have a unique flow value. + # We want the largest value in absolute terms, while + # preserving the sign, which can indicate direction + vals = res[outflow[0]]["sequences"][attr] + val = vals.loc[vals.abs().idxmax()] except (KeyError, IndexError): # this is in case there is no bi-directional heatpipe, # e.g. at forks-consumers, producers-forks - invest = 0 + val = 0 # the rounding is performed due to numerical issues - return round(invest, 6) - - def get_invest_status(lab): - - res = self.es.results["main"] - - outflow = [ - x - for x in res.keys() - if x[1] is not None - if lab == str(x[0].label) - ] - - try: - invest_status = res[outflow[0]]["scalars"]["invest_status"] - except (KeyError, IndexError): - try: - # that's in case of a one timestep optimisation due to - # an oemof bug in outputlib - invest_status = res[outflow[0]]["sequences"][ - "invest_status" - ].iloc[0] - except (KeyError, IndexError): - # this is in case there is no bi-directional heatpipe, - # e.g. at forks-consumers, producers-forks - invest_status = 0 - - return invest_status + return round(val, 6) def get_hp_results(p): @@ -567,33 +549,88 @@ def get_hp_results(p): # maybe slow approach with lambda function df[hp_lab + "." + "dir-1"] = df["from_node"] + "-" + df["to_node"] df[hp_lab + "." + "size-1"] = df[hp_lab + "." + "dir-1"].apply( - lambda x: get_invest_val(label_base + x) + lambda x: get_result_val(label_base + x, attr="invest") + ) + df[hp_lab + "." + "flow-1"] = df[hp_lab + "." + "dir-1"].apply( + lambda x: get_result_val(label_base + x, attr="flow") ) + df[hp_lab + "." + "status_nominal-1"] = df[ + hp_lab + "." + "dir-1" + ].apply( + lambda x: get_result_val(label_base + x, attr="status_nominal") + ) + df[hp_lab + "." + "dir-2"] = df["to_node"] + "-" + df["from_node"] df[hp_lab + "." + "size-2"] = df[hp_lab + "." + "dir-2"].apply( - lambda x: get_invest_val(label_base + x) + lambda x: get_result_val(label_base + x, attr="invest") + ) + df[hp_lab + "." + "flow-2"] = df[hp_lab + "." + "dir-2"].apply( + lambda x: get_result_val(label_base + x, attr="flow") + ) + df[hp_lab + "." + "status_nominal-2"] = df[ + hp_lab + "." + "dir-2" + ].apply( + lambda x: get_result_val(label_base + x, attr="status_nominal") ) df[hp_lab + "." + "size"] = df[ [hp_lab + "." + "size-1", hp_lab + "." + "size-2"] ].max(axis=1) + df[hp_lab + "." + "status_nominal"] = df[ + [ + hp_lab + "." + "status_nominal-1", + hp_lab + "." + "status_nominal-2", + ] + ].max(axis=1) - # get direction of pipes + # Store the flow direction for new and existing pipes. + # Since there is no investment for existing pipes, 'size' cannot + # be used and the 'flow' attribute is used instead. + # When 'bidirectional_pipes' is True, "flow-1" was observed to + # become negative, which then indicated a reverse flow direction. + # This happened e.g. + # - for existing pipes + # - for new pipes in a network with multiple producers + # When 'bidirectional_pipes' is True, the concept of a flow + # direction only makes limited sense (e.g. when seperate time + # steps have different flow directions). Nevertheless we can + # save the direction which uses the larger flow and can therefore + # be called a 'primary' direction. + # When 'bidirectional_pipes' is False, the logic is well defined: + # flow-1 > flow-2 --> dir = 1 + # flow-2 > flow-1 --> dir = -1 for r, c in df.iterrows(): - if c[hp_lab + "." + "size-1"] > c[hp_lab + "." + "size-2"]: + # Get flow direction + if c[hp_lab + "." + "flow-1"] > c[hp_lab + "." + "flow-2"]: df.at[r, hp_lab + ".direction"] = 1 - elif c[hp_lab + "." + "size-1"] < c[hp_lab + "." + "size-2"]: + elif c[hp_lab + "." + "flow-1"] < c[hp_lab + "." + "flow-2"]: + # Is True if both values are positive, and also + # if flow-1 < 0 (in case 'bidirectional_pipes' is True) df.at[r, hp_lab + ".direction"] = -1 else: df.at[r, hp_lab + ".direction"] = 0 + # Get largest absolute 'flow' value + if abs(c[hp_lab + "." + "flow-1"]) > abs( + c[hp_lab + "." + "flow-2"] + ): + df.at[r, hp_lab + ".flow"] = df.at[r, hp_lab + ".flow-1"] + else: + df.at[r, hp_lab + ".flow"] = df.at[r, hp_lab + ".flow-2"] + # Since direction was saved, sign of flow value can be removed + df.at[r, hp_lab + ".flow"] = abs(df.at[r, hp_lab + ".flow"]) + if p["nonconvex"]: df[hp_lab + "." + "status-1"] = df[ hp_lab + "." + "dir-1" - ].apply(lambda x: get_invest_status(label_base + x)) + ].apply( + lambda x: get_result_val(label_base + x, "invest_status") + ) df[hp_lab + "." + "status-2"] = df[ hp_lab + "." + "dir-2" - ].apply(lambda x: get_invest_status(label_base + x)) + ].apply( + lambda x: get_result_val(label_base + x, "invest_status") + ) df[hp_lab + "." + "status"] = df[ [hp_lab + "." + "status-1", hp_lab + "." + "status-2"] ].max(axis=1) @@ -606,7 +643,7 @@ def get_hp_results(p): ): logger.warning( "Investment status of pipe id {} is 1" - " for both dircetions!" + " for both directions!" " This is not allowed!".format(r) ) if ( @@ -679,8 +716,10 @@ def check_invest_label(hp_type, edge_id): ) df["hp_type"] = None + # capacity invest for new pipes / given capacity for existing pipes df["capacity"] = float(0) - df["direction"] = 0 + df["flow"] = float(0) # actual thermal power flow + df["direction"] = 0 # flow direction df["status"] = float(0) for ahp in active_hp: @@ -695,6 +734,15 @@ def check_invest_label(hp_type, edge_id): if ahp + ".status" in c.index: df.at[r, "status"] = c[ahp + ".status"] + if c[ahp + ".status_nominal"] > 0: + # Set attributes of existing pipes + df.at[r, "hp_type"] = ahp + df.at[r, "capacity"] = c[ahp + ".status_nominal"] + df.at[r, "direction"] = c[ahp + ".direction"] + + # Always set flow + df.at[r, "flow"] = c[ahp + ".flow"] + def recalc_costs_losses(): """ Calculates the investment costs and thermal losses for each @@ -723,34 +771,61 @@ def recalc_costs_losses(): hp_lab = c["hp_type"] # select row from heatpipe type table hp_p = df_hp[df_hp["label_3"] == hp_lab].squeeze() - if hp_p["nonconvex"] == 1: - df.at[r, "costs"] = c["length"] * ( - c["capacity"] * hp_p["capex_pipes"] - + hp_p["fix_costs"] * c["status"] - ) - df.at[r, "losses"] = c["length"] * ( - c["capacity"] * hp_p["l_factor"] - + hp_p["l_factor_fix"] * c["status"] - ) - elif hp_p["nonconvex"] == 0: - df.at[r, "costs"] = ( - c["length"] * c["capacity"] * hp_p["capex_pipes"] - ) - # Note that a constant loss is possible also for convex + if "existing" in c and c["existing"] == 1: + # For existing pipes, only losses need to be calculated df.at[r, "losses"] = c["length"] * ( c["capacity"] * hp_p["l_factor"] + hp_p["l_factor_fix"] ) + else: + if hp_p["nonconvex"] == 1: + df.at[r, "costs"] = c["length"] * ( + c["capacity"] * hp_p["capex_pipes"] + + hp_p["fix_costs"] * c["status"] + ) + df.at[r, "losses"] = c["length"] * ( + c["capacity"] * hp_p["l_factor"] + + hp_p["l_factor_fix"] * c["status"] + ) + + elif hp_p["nonconvex"] == 0: + df.at[r, "costs"] = ( + c["length"] + * c["capacity"] + * hp_p["capex_pipes"] + ) + # Note that a constant loss is possible also + # for convex + df.at[r, "losses"] = c["length"] * ( + c["capacity"] * hp_p["l_factor"] + + hp_p["l_factor_fix"] + ) # use pipes dataframe as base and add results as new columns to it df = self.thermal_network.components["pipes"] - # only select not existing pipes - df = df[df["existing"] == 0].copy() + cols_select = ["from_node", "to_node", "length"] + cols_return = [ + "from_node", + "to_node", + "length", + "hp_type", + "direction", + "capacity", + "flow", + "losses", + "costs", + ] + if not self.settings.get("return_existing", False): + # only select not existing pipes + df = df[df["existing"] == 0].copy() + else: # yes, return information about existing pipes + cols_select.append("existing") + cols_return.append("existing") # remove input data - df = df[["from_node", "to_node", "length"]].copy() + df = df[cols_select].copy() # putting the results of the investments in heatpipes to the pipes: df_hp = self.invest_options["network"]["pipes"] @@ -767,18 +842,7 @@ def recalc_costs_losses(): recalc_costs_losses() - return df[ - [ - "from_node", - "to_node", - "length", - "hp_type", - "capacity", - "direction", - "costs", - "losses", - ] - ] + return df[cols_return] def optimize_operation(thermal_network): @@ -813,6 +877,7 @@ def setup_optimise_investment( print_logging_info=False, write_lp_file=False, allow_nonoptimal=False, + return_existing=False, ): """ Function for setting up the oemof solph operational Model. @@ -855,9 +920,12 @@ def setup_optimise_investment( write_lp_file : bool Linear program file is stored (‘User/.oemof/lp_files/DHNx.lp’). allow_nonoptimal : bool - False: If no optimal solution is found, an error will be risen. + False: If no optimal solution is found, an error will be raised. True: If no optimal solution is found, there will be a warning. Default is False. + return_existing : bool + Return existing pipes in the resulting network. Only applies if + ``existing=1`` was used for any input pipe segments. Default is False. Returns ------- oemof.solph.Model : The oemof.solph.Model is build. @@ -887,6 +955,7 @@ def setup_optimise_investment( "print_logging_info": print_logging_info, "write_lp_file": write_lp_file, "allow_nonoptimal": allow_nonoptimal, + "return_existing": return_existing, } model = OemofInvestOptimizationModel( diff --git a/tests/_files/process_geometry/out/pipes_result_01.geojson b/tests/_files/process_geometry/out/pipes_result_01.geojson new file mode 100644 index 00000000..3606c060 --- /dev/null +++ b/tests/_files/process_geometry/out/pipes_result_01.geojson @@ -0,0 +1,297 @@ +{ +"type": "FeatureCollection", +"name": "pipes_result", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::4647" } }, +"features": [ +{ "type": "Feature", "properties": { "id": "0", "id_full": null, "type": "DL", "from_node": "forks-1", "to_node": "forks-173", "length": 74.06718, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1391.7066, "flow": 1390.0522, "losses": 1.6544, "costs": 73265.3842, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506654.861689653247595, 6005025.331065262667835 ], [ 32506672.19807019457221, 6004953.321366431191564 ] ] } }, +{ "type": "Feature", "properties": { "id": "1", "id_full": null, "type": "DL", "from_node": "forks-1", "to_node": "forks-185", "length": 43.59186, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.33202, "flow": 13.36782, "losses": 0.96419, "costs": 41373.38164, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506654.861689653247595, 6005025.331065262667835 ], [ 32506643.925446726381779, 6005067.528800801374018 ] ] } }, +{ "type": "Feature", "properties": { "id": "2", "id_full": null, "type": "DL", "from_node": "forks-1", "to_node": "forks-147", "length": 38.23573, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1375.7202, "flow": 1374.8662, "losses": 0.85395, "costs": 37804.04367, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506654.861689653247595, 6005025.331065262667835 ], [ 32506674.726261701434851, 6005018.216621936298907 ], [ 32506691.422387953847647, 6005014.360785491764545 ] ] } }, +{ "type": "Feature", "properties": { "id": "3", "id_full": null, "type": "DL", "from_node": "forks-2", "to_node": "forks-3", "length": 27.69976, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 641.43089, "flow": 640.81546, "losses": 0.61543, "costs": 26795.35304, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506930.132400441914797, 6005038.999399862252176 ], [ 32506957.828444872051477, 6005039.452800406143069 ] ] } }, +{ "type": "Feature", "properties": { "id": "4", "id_full": null, "type": "DL", "from_node": "forks-2", "to_node": "forks-62", "length": 21.231, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 662.9679, "flow": 662.49612, "losses": 0.47178, "costs": 20551.10005, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506930.132400441914797, 6005038.999399862252176 ], [ 32506909.028953850269318, 6005036.675676330924034 ] ] } }, +{ "type": "Feature", "properties": { "id": "5", "id_full": null, "type": "DL", "from_node": "forks-2", "to_node": "forks-115", "length": 36.70572, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 21.06523, "flow": 20.25331, "losses": 0.81192, "costs": 34844.88149, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506930.132400441914797, 6005038.999399862252176 ], [ 32506926.128980439156294, 6005058.943066515028477 ], [ 32506925.048307441174984, 6005061.689670381136239 ], [ 32506923.234117347747087, 6005066.282159684225917 ], [ 32506920.500818144530058, 6005074.304099330678582 ] ] } }, +{ "type": "Feature", "properties": { "id": "6", "id_full": null, "type": "DL", "from_node": "forks-3", "to_node": "forks-112", "length": 15.24458, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 631.10827, "flow": 630.76959, "losses": 0.33868, "costs": 14742.26623, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506957.828444872051477, 6005039.452800406143069 ], [ 32506968.895207807421684, 6005028.968333300203085 ] ] } }, +{ "type": "Feature", "properties": { "id": "7", "id_full": null, "type": "DL", "from_node": "forks-3", "to_node": "forks-205", "length": 20.16167, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.70719, "flow": 9.26126, "losses": 0.44593, "costs": 19132.88699, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506957.828444872051477, 6005039.452800406143069 ], [ 32506977.857269518077374, 6005041.763435141183436 ] ] } }, +{ "type": "Feature", "properties": { "id": "8", "id_full": null, "type": "DL", "from_node": "forks-4", "to_node": "forks-167", "length": 20.07747, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 287.32299, "flow": 286.87803, "losses": 0.44495, "costs": 19215.12097, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.355939168483019, 6004702.74669920373708 ], [ 32506946.964905600994825, 6004697.54165405780077 ] ] } }, +{ "type": "Feature", "properties": { "id": "9", "id_full": null, "type": "DL", "from_node": "forks-4", "to_node": "forks-188", "length": 46.82296, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 121.64249, "flow": 120.60604, "losses": 1.03646, "costs": 44586.20743, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.355939168483019, 6004702.74669920373708 ], [ 32506953.373247094452381, 6004747.733802417293191 ] ] } }, +{ "type": "Feature", "properties": { "id": "10", "id_full": null, "type": "DL", "from_node": "forks-4", "to_node": "forks-199", "length": 26.77776, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 409.55944, "flow": 408.96548, "losses": 0.59396, "costs": 25722.8417, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.355939168483019, 6004702.74669920373708 ], [ 32506973.341402161866426, 6004704.626499322243035 ], [ 32506991.113808564841747, 6004712.75675640348345 ] ] } }, +{ "type": "Feature", "properties": { "id": "11", "id_full": null, "type": "DL", "from_node": "forks-12", "to_node": "forks-13", "length": 16.54976, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.0, "flow": 4.63397, "losses": 0.36603, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507016.180187117308378, 6004930.535648111253977 ], [ 32507023.054066255688667, 6004915.480935483239591 ] ] } }, +{ "type": "Feature", "properties": { "id": "12", "id_full": null, "type": "DL", "from_node": "forks-12", "to_node": "forks-18", "length": 11.14669, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 612.67694, "flow": 612.42933, "losses": 0.2476, "costs": 10773.42577, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507016.180187117308378, 6004930.535648111253977 ], [ 32507011.754202701151371, 6004940.765964733436704 ] ] } }, +{ "type": "Feature", "properties": { "id": "13", "id_full": "consumers-10", "type": "HL", "from_node": "forks-12", "to_node": "consumers-10", "length": 23.68213, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.58053, "flow": 10.05672, "losses": 0.5238, "costs": 22474.31268, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507016.180187117308378, 6004930.535648111253977 ], [ 32506994.70268876478076, 6004920.557657507248223 ] ] } }, +{ "type": "Feature", "properties": { "id": "14", "id_full": null, "type": "DL", "from_node": "forks-12", "to_node": "forks-14", "length": 81.38333, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 596.84881, "flow": 595.04122, "losses": 1.80759, "costs": 78620.60912, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507016.180187117308378, 6004930.535648111253977 ], [ 32507077.839203715324402, 6004951.436326138675213 ], [ 32507081.034716226160526, 6004935.474812150001526 ] ] } }, +{ "type": "Feature", "properties": { "id": "15", "id_full": null, "type": "DL", "from_node": "forks-13", "to_node": "forks-14", "length": 61.33116, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 595.04122, "flow": 593.67902, "losses": 1.3622, "costs": 59245.92051, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507023.054066255688667, 6004915.480935483239591 ], [ 32507081.034716226160526, 6004935.474812150001526 ] ] } }, +{ "type": "Feature", "properties": { "id": "16", "id_full": null, "type": "DL", "from_node": "forks-13", "to_node": "forks-150", "length": 13.99908, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 598.31299, "flow": 598.00205, "losses": 0.31093, "costs": 13524.45243, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507023.054066255688667, 6004915.480935483239591 ], [ 32507028.353193089365959, 6004902.523559094406664 ] ] } }, +{ "type": "Feature", "properties": { "id": "18", "id_full": null, "type": "DL", "from_node": "forks-15", "to_node": "forks-112", "length": 27.37871, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 615.57317, "flow": 614.96498, "losses": 0.60818, "costs": 26464.19527, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506983.83998479694128, 6005006.224120298400521 ], [ 32506972.555892087519169, 6005025.500261910259724 ], [ 32506968.895207807421684, 6005028.968333300203085 ] ] } }, +{ "type": "Feature", "properties": { "id": "19", "id_full": null, "type": "DL", "from_node": "forks-15", "to_node": "forks-19", "length": 64.30752, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 614.96498, "flow": 613.53648, "losses": 1.4285, "costs": 62158.35534, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506983.83998479694128, 6005006.224120298400521 ], [ 32506997.676446001976728, 6004973.299755467101932 ], [ 32507001.493707738816738, 6004964.482295924797654 ], [ 32507009.032277848571539, 6004947.057481032796204 ] ] } }, +{ "type": "Feature", "properties": { "id": "21", "id_full": null, "type": "DL", "from_node": "forks-18", "to_node": "forks-109", "length": 15.78912, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 999.0, "flow": 612.67694, "losses": 0.35169, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507011.754202701151371, 6004940.765964733436704 ], [ 32507026.568375065922737, 6004946.228253990411758 ] ] } }, +{ "type": "Feature", "properties": { "id": "22", "id_full": null, "type": "DL", "from_node": "forks-19", "to_node": "forks-109", "length": 22.79971, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 999.0, "flow": 613.02863, "losses": 0.50785, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507009.032277848571539, 6004947.057481032796204 ], [ 32507023.825125157833099, 6004952.651473291218281 ], [ 32507026.568375065922737, 6004946.228253990411758 ] ] } }, +{ "type": "Feature", "properties": { "id": "26", "id_full": null, "type": "DL", "from_node": "forks-26", "to_node": "forks-34", "length": 13.21159, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 504.54251, "flow": 504.24927, "losses": 0.29325, "costs": 12727.61707, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507059.691856741905212, 6004782.464862992055714 ], [ 32507066.510839566588402, 6004782.174897360615432 ], [ 32507072.530063845217228, 6004784.309275067411363 ] ] } }, +{ "type": "Feature", "properties": { "id": "27", "id_full": null, "type": "DL", "from_node": "forks-26", "to_node": "forks-35", "length": 33.81629, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 504.24927, "flow": 503.49868, "losses": 0.75059, "costs": 32577.23321, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507059.691856741905212, 6004782.464862992055714 ], [ 32507058.269206289201975, 6004774.08448775857687 ], [ 32507055.049979235976934, 6004762.886378192342818 ], [ 32507049.614296812564135, 6004750.349710370413959 ] ] } }, +{ "type": "Feature", "properties": { "id": "28", "id_full": null, "type": "DL", "from_node": "forks-29", "to_node": "forks-149", "length": 26.56982, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 516.70891, "flow": 516.11911, "losses": 0.5898, "costs": 25605.91252, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507062.904994439333677, 6004810.397108197212219 ], [ 32507062.226572059094906, 6004818.80764533020556 ], [ 32507056.958943579345942, 6004832.941263436339796 ], [ 32507055.788943462073803, 6004835.756441550329328 ] ] } }, +{ "type": "Feature", "properties": { "id": "29", "id_full": null, "type": "DL", "from_node": "forks-34", "to_node": "forks-29", "length": 36.4431, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 516.11911, "flow": 515.31015, "losses": 0.80896, "costs": 35120.37845, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507072.530063845217228, 6004784.309275067411363 ], [ 32507075.421466507017612, 6004787.996558191254735 ], [ 32507077.794186722487211, 6004793.774814426898956 ], [ 32507077.255080308765173, 6004800.672369468957186 ], [ 32507074.454373985528946, 6004805.919742610305548 ], [ 32507067.962735034525394, 6004809.770653950050473 ], [ 32507062.904994439333677, 6004810.397108197212219 ] ] } }, +{ "type": "Feature", "properties": { "id": "30", "id_full": null, "type": "DL", "from_node": "forks-34", "to_node": "forks-126", "length": 35.8905, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.76764, "flow": 9.97381, "losses": 0.79383, "costs": 34060.23562, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507072.530063845217228, 6004784.309275067411363 ], [ 32507078.052897065877914, 6004778.264977178536355 ], [ 32507086.104889433830976, 6004769.620989858172834 ], [ 32507097.670391768217087, 6004758.724990345537663 ] ] } }, +{ "type": "Feature", "properties": { "id": "31", "id_full": null, "type": "DL", "from_node": "forks-35", "to_node": "forks-156", "length": 12.78509, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 495.44177, "flow": 495.15801, "losses": 0.28376, "costs": 12313.36275, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.614296812564135, 6004750.349710370413959 ], [ 32507040.424831099808216, 6004741.460822491906583 ] ] } }, +{ "type": "Feature", "properties": { "id": "32", "id_full": "consumers-26", "type": "HL", "from_node": "forks-35", "to_node": "consumers-26", "length": 19.99136, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.0569, "flow": 7.61474, "losses": 0.44216, "costs": 18970.30748, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.614296812564135, 6004750.349710370413959 ], [ 32507066.040248159319162, 6004738.954864875413477 ] ] } }, +{ "type": "Feature", "properties": { "id": "33", "id_full": null, "type": "DL", "from_node": "forks-62", "to_node": "forks-123", "length": 16.88733, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 673.21856, "flow": 672.84327, "losses": 0.37528, "costs": 16351.57525, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506909.028953850269318, 6005036.675676330924034 ], [ 32506892.243028953671455, 6005034.82775982376188 ] ] } }, +{ "type": "Feature", "properties": { "id": "34", "id_full": "consumers-3", "type": "HL", "from_node": "forks-62", "to_node": "consumers-3", "length": 11.22812, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.87538, "flow": 9.62703, "losses": 0.24834, "costs": 10655.24195, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506909.028953850269318, 6005036.675676330924034 ], [ 32506911.195585753768682, 6005025.658581727184355 ] ] } }, +{ "type": "Feature", "properties": { "id": "35", "id_full": "consumers-134", "type": "HL", "from_node": "forks-90", "to_node": "consumers-134", "length": 8.02778, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.45195, "flow": 11.27439, "losses": 0.17756, "costs": 7618.55603, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506740.583661332726479, 6004747.206024528481066 ], [ 32506739.486436776816845, 6004755.158466172404587 ] ] } }, +{ "type": "Feature", "properties": { "id": "36", "id_full": null, "type": "DL", "from_node": "forks-90", "to_node": "forks-242", "length": 32.25163, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 12.90817, "flow": 12.19481, "losses": 0.71336, "costs": 30608.94384, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506740.583661332726479, 6004747.206024528481066 ], [ 32506717.303097754716873, 6004742.376555414870381 ], [ 32506710.603514529764652, 6004747.567726431414485 ] ] } }, +{ "type": "Feature", "properties": { "id": "37", "id_full": null, "type": "DL", "from_node": "forks-90", "to_node": "forks-230", "length": 16.43162, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 24.72359, "flow": 24.36012, "losses": 0.36347, "costs": 15600.35071, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506740.583661332726479, 6004747.206024528481066 ], [ 32506751.563101142644882, 6004748.624020637013018 ], [ 32506756.913997627794743, 6004748.952905900776386 ] ] } }, +{ "type": "Feature", "properties": { "id": "38", "id_full": "consumers-143", "type": "HL", "from_node": "forks-93", "to_node": "consumers-143", "length": 5.88293, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.699, "flow": 5.56888, "losses": 0.13011, "costs": 5582.05432, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506767.165194243192673, 6004734.672112413682044 ], [ 32506761.573698718100786, 6004732.843453446403146 ] ] } }, +{ "type": "Feature", "properties": { "id": "39", "id_full": null, "type": "DL", "from_node": "forks-93", "to_node": "forks-230", "length": 20.95015, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 33.74783, "flow": 33.28438, "losses": 0.46345, "costs": 19895.78674, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506767.165194243192673, 6004734.672112413682044 ], [ 32506762.504478130489588, 6004749.296516857109964 ], [ 32506756.913997627794743, 6004748.952905900776386 ] ] } }, +{ "type": "Feature", "properties": { "id": "40", "id_full": null, "type": "DL", "from_node": "forks-93", "to_node": "forks-240", "length": 17.53757, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 39.83481, "flow": 39.44683, "losses": 0.38798, "costs": 16658.06239, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506767.165194243192673, 6004734.672112413682044 ], [ 32506770.028414003551006, 6004722.192472074180841 ], [ 32506770.973308652639389, 6004717.554045321419835 ] ] } }, +{ "type": "Feature", "properties": { "id": "41", "id_full": null, "type": "DL", "from_node": "forks-96", "to_node": "forks-97", "length": 12.07233, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 59.24839, "flow": 58.98128, "losses": 0.26711, "costs": 11473.71745, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.079425685107708, 6004700.679925447329879 ], [ 32506774.162415158003569, 6004688.607881280593574 ] ] } }, +{ "type": "Feature", "properties": { "id": "42", "id_full": "consumers-133", "type": "HL", "from_node": "forks-96", "to_node": "consumers-133", "length": 6.71778, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.78114, "flow": 7.63256, "losses": 0.14858, "costs": 6374.62174, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.079425685107708, 6004700.679925447329879 ], [ 32506767.460514899343252, 6004699.53160644788295 ] ] } }, +{ "type": "Feature", "properties": { "id": "43", "id_full": null, "type": "DL", "from_node": "forks-96", "to_node": "forks-240", "length": 17.1595, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 51.20014, "flow": 50.82049, "losses": 0.37965, "costs": 16304.6254, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.079425685107708, 6004700.679925447329879 ], [ 32506772.276173859834671, 6004711.158364219591022 ], [ 32506770.973308652639389, 6004717.554045321419835 ] ] } }, +{ "type": "Feature", "properties": { "id": "44", "id_full": null, "type": "DL", "from_node": "forks-97", "to_node": "forks-231", "length": 15.12586, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 100.64558, "flow": 100.31081, "losses": 0.33477, "costs": 14394.0542, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.162415158003569, 6004688.607881280593574 ], [ 32506777.753673400729895, 6004673.914529996924102 ] ] } }, +{ "type": "Feature", "properties": { "id": "45", "id_full": null, "type": "DL", "from_node": "forks-97", "to_node": "forks-239", "length": 18.23479, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 41.06242, "flow": 40.65901, "losses": 0.40341, "costs": 17320.96777, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.162415158003569, 6004688.607881280593574 ], [ 32506756.704313155263662, 6004683.342672811821103 ] ] } }, +{ "type": "Feature", "properties": { "id": "46", "id_full": "consumers-0", "type": "HL", "from_node": "forks-112", "to_node": "consumers-0", "length": 17.57765, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 15.19642, "flow": 14.80763, "losses": 0.3888, "costs": 16683.52918, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506968.895207807421684, 6005028.968333300203085 ], [ 32506956.806172829121351, 6005016.20788654871285 ] ] } }, +{ "type": "Feature", "properties": { "id": "47", "id_full": null, "type": "DL", "from_node": "forks-113", "to_node": "forks-114", "length": 20.37652, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 877.58354, "flow": 877.13006, "losses": 0.45348, "costs": 19851.20277, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506823.60973072052002, 6005027.680673941038549 ], [ 32506803.475475002080202, 6005024.547870636917651 ] ] } }, +{ "type": "Feature", "properties": { "id": "48", "id_full": null, "type": "DL", "from_node": "forks-113", "to_node": "forks-116", "length": 15.16891, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 846.57571, "flow": 846.2382, "losses": 0.33751, "costs": 14764.1587, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506823.60973072052002, 6005027.680673941038549 ], [ 32506838.698579102754593, 6005029.237066026777029 ] ] } }, +{ "type": "Feature", "properties": { "id": "49", "id_full": null, "type": "DL", "from_node": "forks-113", "to_node": "forks-206", "length": 15.92659, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 30.55435, "flow": 30.20204, "losses": 0.35232, "costs": 15123.56823, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506823.60973072052002, 6005027.680673941038549 ], [ 32506822.627499092370272, 6005043.576945947483182 ] ] } }, +{ "type": "Feature", "properties": { "id": "50", "id_full": null, "type": "DL", "from_node": "forks-114", "to_node": "forks-139", "length": 20.0046, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 886.59455, "flow": 886.14932, "losses": 0.44523, "costs": 19494.11462, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506803.475475002080202, 6005024.547870636917651 ], [ 32506783.708717502653599, 6005021.472248470410705 ] ] } }, +{ "type": "Feature", "properties": { "id": "51", "id_full": "consumers-1", "type": "HL", "from_node": "forks-114", "to_node": "consumers-1", "length": 9.8682, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.56577, "flow": 8.34751, "losses": 0.21826, "costs": 9364.32912, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506803.475475002080202, 6005024.547870636917651 ], [ 32506801.958281926810741, 6005034.298739239573479 ] ] } }, +{ "type": "Feature", "properties": { "id": "52", "id_full": null, "type": "DL", "from_node": "forks-115", "to_node": "forks-202", "length": 18.08834, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.40639, "flow": 10.00631, "losses": 0.40008, "costs": 17165.72266, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.500818144530058, 6005074.304099330678582 ], [ 32506914.666960474103689, 6005091.425845111720264 ] ] } }, +{ "type": "Feature", "properties": { "id": "53", "id_full": "consumers-4", "type": "HL", "from_node": "forks-115", "to_node": "consumers-4", "length": 11.44753, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.84692, "flow": 9.59372, "losses": 0.2532, "costs": 10863.44507, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.500818144530058, 6005074.304099330678582 ], [ 32506909.665018312633038, 6005070.612039260566235 ] ] } }, +{ "type": "Feature", "properties": { "id": "54", "id_full": null, "type": "DL", "from_node": "forks-116", "to_node": "forks-125", "length": 12.43627, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 836.2013, "flow": 835.92461, "losses": 0.27669, "costs": 12100.68251, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506838.698579102754593, 6005029.237066026777029 ], [ 32506851.069212395697832, 6005030.513078302145004 ] ] } }, +{ "type": "Feature", "properties": { "id": "55", "id_full": "consumers-5", "type": "HL", "from_node": "forks-116", "to_node": "consumers-5", "length": 10.69132, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.0369, "flow": 9.80043, "losses": 0.23647, "costs": 10145.88414, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506838.698579102754593, 6005029.237066026777029 ], [ 32506839.795552812516689, 6005018.602168739773333 ] ] } }, +{ "type": "Feature", "properties": { "id": "56", "id_full": null, "type": "DL", "from_node": "forks-117", "to_node": "forks-118", "length": 6.7832, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 4.03633, "flow": 3.8863, "losses": 0.15002, "costs": 6435.96201, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506978.648154817521572, 6004957.660532805137336 ], [ 32506971.996567249298096, 6004956.330777766183019 ] ] } }, +{ "type": "Feature", "properties": { "id": "57", "id_full": "consumers-6", "type": "HL", "from_node": "forks-117", "to_node": "consumers-6", "length": 7.20946, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.8863, "flow": 3.72685, "losses": 0.15945, "costs": 6840.36295, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506978.648154817521572, 6004957.660532805137336 ], [ 32506979.704191863536835, 6004950.528838414698839 ] ] } }, +{ "type": "Feature", "properties": { "id": "58", "id_full": null, "type": "DL", "from_node": "forks-118", "to_node": "forks-221", "length": 5.37555, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 12.39846, "flow": 12.27956, "losses": 0.1189, "costs": 5101.67804, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506971.996567249298096, 6004956.330777766183019 ], [ 32506966.725317884236574, 6004955.276973642408848 ] ] } }, +{ "type": "Feature", "properties": { "id": "59", "id_full": "consumers-9", "type": "HL", "from_node": "forks-118", "to_node": "consumers-9", "length": 7.39944, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.36049, "flow": 4.19684, "losses": 0.16365, "costs": 7020.71783, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506971.996567249298096, 6004956.330777766183019 ], [ 32506970.546008326113224, 6004963.586640256457031 ] ] } }, +{ "type": "Feature", "properties": { "id": "60", "id_full": "consumers-124", "type": "HL", "from_node": "forks-118", "to_node": "consumers-124", "length": 7.09309, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.88275, "flow": 3.72587, "losses": 0.15688, "costs": 6729.95327, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506971.996567249298096, 6004956.330777766183019 ], [ 32506973.918310679495335, 6004949.502978356555104 ] ] } }, +{ "type": "Feature", "properties": { "id": "61", "id_full": null, "type": "DL", "from_node": "forks-119", "to_node": "forks-209", "length": 14.77672, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 6.25655, "flow": 5.92973, "losses": 0.32682, "costs": 14021.23254, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506820.38668043166399, 6005079.841979512013495 ], [ 32506821.297996897250414, 6005065.09338659979403 ] ] } }, +{ "type": "Feature", "properties": { "id": "62", "id_full": "consumers-11", "type": "HL", "from_node": "forks-119", "to_node": "consumers-11", "length": 7.40951, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.01623, "flow": 2.85235, "losses": 0.16388, "costs": 7029.98379, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506820.38668043166399, 6005079.841979512013495 ], [ 32506812.991277109831572, 6005079.385017084889114 ] ] } }, +{ "type": "Feature", "properties": { "id": "63", "id_full": "consumers-13", "type": "HL", "from_node": "forks-119", "to_node": "consumers-13", "length": 6.90747, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.9135, "flow": 2.76073, "losses": 0.15277, "costs": 6553.63645, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506820.38668043166399, 6005079.841979512013495 ], [ 32506827.24805112183094, 6005080.638645489700139 ] ] } }, +{ "type": "Feature", "properties": { "id": "64", "id_full": null, "type": "DL", "from_node": "forks-120", "to_node": "forks-121", "length": 2.86595, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 46.63315, "flow": 46.56974, "losses": 0.06341, "costs": 2722.78457, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506942.140576533973217, 6004950.362104319036007 ], [ 32506939.293046623468399, 6004950.686475987546146 ] ] } }, +{ "type": "Feature", "properties": { "id": "65", "id_full": null, "type": "DL", "from_node": "forks-120", "to_node": "forks-222", "length": 4.41776, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 42.38101, "flow": 42.28328, "losses": 0.09773, "costs": 4196.53209, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506942.140576533973217, 6004950.362104319036007 ], [ 32506946.472613293677568, 6004951.228145343251526 ] ] } }, +{ "type": "Feature", "properties": { "id": "66", "id_full": "consumers-118", "type": "HL", "from_node": "forks-120", "to_node": "consumers-118", "length": 6.539, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.18873, "flow": 4.04411, "losses": 0.14462, "costs": 6204.2874, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506942.140576533973217, 6004950.362104319036007 ], [ 32506942.823230747133493, 6004943.85883572883904 ] ] } }, +{ "type": "Feature", "properties": { "id": "67", "id_full": null, "type": "DL", "from_node": "forks-121", "to_node": "forks-122", "length": 6.93351, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 51.00249, "flow": 50.84909, "losses": 0.1534, "costs": 6588.04669, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506939.293046623468399, 6004950.686475987546146 ], [ 32506932.404087860137224, 6004951.471220351755619 ] ] } }, +{ "type": "Feature", "properties": { "id": "68", "id_full": "consumers-12", "type": "HL", "from_node": "forks-121", "to_node": "consumers-12", "length": 7.69837, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.21594, "flow": 4.04568, "losses": 0.17027, "costs": 7304.32292, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506939.293046623468399, 6004950.686475987546146 ], [ 32506938.421733990311623, 6004943.037568801082671 ] ] } }, +{ "type": "Feature", "properties": { "id": "69", "id_full": null, "type": "DL", "from_node": "forks-122", "to_node": "forks-220", "length": 6.89221, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 55.2649, "flow": 55.11241, "losses": 0.15249, "costs": 6549.6582, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.404087860137224, 6004951.471220351755619 ], [ 32506927.96684343740344, 6004956.74506373051554 ] ] } }, +{ "type": "Feature", "properties": { "id": "70", "id_full": "consumers-47", "type": "HL", "from_node": "forks-122", "to_node": "consumers-47", "length": 7.92036, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.10992, "flow": 3.93474, "losses": 0.17518, "costs": 7514.9252, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.404087860137224, 6004951.471220351755619 ], [ 32506925.748231425881386, 6004947.178000306710601 ] ] } }, +{ "type": "Feature", "properties": { "id": "71", "id_full": null, "type": "DL", "from_node": "forks-123", "to_node": "forks-124", "length": 9.81052, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 684.83449, "flow": 684.61645, "losses": 0.21804, "costs": 9502.59234, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506892.243028953671455, 6005034.82775982376188 ], [ 32506882.491420675069094, 6005033.754231970757246 ] ] } }, +{ "type": "Feature", "properties": { "id": "72", "id_full": "consumers-16", "type": "HL", "from_node": "forks-123", "to_node": "consumers-16", "length": 9.93002, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.3979, "flow": 11.17826, "losses": 0.21963, "costs": 9423.81529, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506892.243028953671455, 6005034.82775982376188 ], [ 32506891.156424593180418, 6005044.698151220567524 ] ] } }, +{ "type": "Feature", "properties": { "id": "73", "id_full": null, "type": "DL", "from_node": "forks-124", "to_node": "forks-204", "length": 18.61466, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 821.09111, "flow": 820.677, "losses": 0.41411, "costs": 18104.17248, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506882.491420675069094, 6005033.754231970757246 ], [ 32506863.975002709776163, 6005031.844291221350431 ] ] } }, +{ "type": "Feature", "properties": { "id": "74", "id_full": null, "type": "DL", "from_node": "forks-124", "to_node": "forks-219", "length": 28.43287, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 135.84251, "flow": 135.21307, "losses": 0.62944, "costs": 27086.35969, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506882.491420675069094, 6005033.754231970757246 ], [ 32506896.847592517733574, 6005009.211856372654438 ] ] } }, +{ "type": "Feature", "properties": { "id": "75", "id_full": null, "type": "DL", "from_node": "forks-125", "to_node": "forks-204", "length": 12.97426, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 828.24616, "flow": 827.95752, "losses": 0.28864, "costs": 12621.15902, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506851.069212395697832, 6005030.513078302145004 ], [ 32506863.975002709776163, 6005031.844291221350431 ] ] } }, +{ "type": "Feature", "properties": { "id": "76", "id_full": "consumers-18", "type": "HL", "from_node": "forks-125", "to_node": "consumers-18", "length": 10.17014, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.67845, "flow": 7.45351, "losses": 0.22494, "costs": 9650.59684, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506851.069212395697832, 6005030.513078302145004 ], [ 32506850.025713745504618, 6005040.629547707736492 ] ] } }, +{ "type": "Feature", "properties": { "id": "77", "id_full": "consumers-22", "type": "HL", "from_node": "forks-126", "to_node": "consumers-22", "length": 11.01213, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.97381, "flow": 9.73024, "losses": 0.24357, "costs": 10450.30312, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507097.670391768217087, 6004758.724990345537663 ], [ 32507090.119091622531414, 6004750.709701854735613 ] ] } }, +{ "type": "Feature", "properties": { "id": "78", "id_full": null, "type": "DL", "from_node": "forks-127", "to_node": "forks-128", "length": 3.25113, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 346.33871, "losses": 0.07216, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506795.28539727628231, 6004969.131627677939832 ], [ 32506797.956073485314846, 6004967.277614421211183 ] ] } }, +{ "type": "Feature", "properties": { "id": "79", "id_full": null, "type": "DL", "from_node": "forks-127", "to_node": "forks-172", "length": 9.85731, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 353.41808, "losses": 0.21879, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506795.28539727628231, 6004969.131627677939832 ], [ 32506787.188013795763254, 6004974.752921739593148 ] ] } }, +{ "type": "Feature", "properties": { "id": "80", "id_full": "consumers-23", "type": "HL", "from_node": "forks-127", "to_node": "consumers-23", "length": 4.71974, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.00721, "flow": 6.90282, "losses": 0.10439, "costs": 4478.53672, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506795.28539727628231, 6004969.131627677939832 ], [ 32506797.976906735450029, 6004973.008703669533134 ] ] } }, +{ "type": "Feature", "properties": { "id": "81", "id_full": null, "type": "DL", "from_node": "forks-128", "to_node": "forks-144", "length": 12.87579, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 338.3824, "losses": 0.28578, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506797.956073485314846, 6004967.277614421211183 ], [ 32506808.533012978732586, 6004959.934984881430864 ] ] } }, +{ "type": "Feature", "properties": { "id": "82", "id_full": "consumers-21", "type": "HL", "from_node": "forks-128", "to_node": "consumers-21", "length": 7.39864, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.67053, "flow": 7.50689, "losses": 0.16364, "costs": 7020.67214, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506797.956073485314846, 6004967.277614421211183 ], [ 32506793.736878149211407, 6004961.199931551702321 ] ] } }, +{ "type": "Feature", "properties": { "id": "83", "id_full": null, "type": "DL", "from_node": "forks-129", "to_node": "forks-197", "length": 7.96555, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 575.31631, "flow": 575.13941, "losses": 0.17689, "costs": 7690.15545, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507031.698386561125517, 6004894.343922664411366 ] ] } }, +{ "type": "Feature", "properties": { "id": "84", "id_full": "consumers-24", "type": "HL", "from_node": "forks-129", "to_node": "consumers-24", "length": 11.13199, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.77146, "flow": 9.52525, "losses": 0.24622, "costs": 10563.98204, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507024.409988515079021, 6004882.757273597642779 ] ] } }, +{ "type": "Feature", "properties": { "id": "85", "id_full": "consumers-99", "type": "HL", "from_node": "forks-129", "to_node": "consumers-99", "length": 7.88742, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.47048, "flow": 6.29603, "losses": 0.17445, "costs": 7484.20671, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507042.319477148354053, 6004889.059707331471145 ] ] } }, +{ "type": "Feature", "properties": { "id": "86", "id_full": null, "type": "DL", "from_node": "forks-129", "to_node": "forks-198", "length": 40.06464, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 558.89747, "flow": 558.00784, "losses": 0.88963, "costs": 38660.331, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507047.633258003741503, 6004855.380120976828039 ], [ 32507049.910564471036196, 6004849.900614405050874 ] ] } }, +{ "type": "Feature", "properties": { "id": "87", "id_full": null, "type": "DL", "from_node": "forks-131", "to_node": "forks-132", "length": 26.6176, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 438.90739, "flow": 438.31685, "losses": 0.59053, "costs": 25591.71647, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507015.504366304725409, 6004726.402119278907776 ], [ 32507038.577310808002949, 6004739.673732662573457 ] ] } }, +{ "type": "Feature", "properties": { "id": "88", "id_full": null, "type": "DL", "from_node": "forks-131", "to_node": "forks-203", "length": 18.08797, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 428.84013, "flow": 428.43886, "losses": 0.40127, "costs": 17385.53806, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507015.504366304725409, 6004726.402119278907776 ], [ 32506999.825161132961512, 6004717.383402610197663 ] ] } }, +{ "type": "Feature", "properties": { "id": "89", "id_full": "consumers-27", "type": "HL", "from_node": "forks-131", "to_node": "consumers-27", "length": 13.76733, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.47673, "flow": 9.17222, "losses": 0.3045, "costs": 13064.73841, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507015.504366304725409, 6004726.402119278907776 ], [ 32507022.368798281997442, 6004714.468177750706673 ] ] } }, +{ "type": "Feature", "properties": { "id": "90", "id_full": null, "type": "DL", "from_node": "forks-132", "to_node": "forks-156", "length": 2.57041, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 450.70323, "flow": 450.6462, "losses": 0.05703, "costs": 2472.22722, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507038.577310808002949, 6004739.673732662573457 ], [ 32507040.424831099808216, 6004741.460822491906583 ] ] } }, +{ "type": "Feature", "properties": { "id": "91", "id_full": "consumers-41", "type": "HL", "from_node": "forks-132", "to_node": "consumers-41", "length": 17.95077, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.73881, "flow": 11.34177, "losses": 0.39704, "costs": 17035.86786, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507038.577310808002949, 6004739.673732662573457 ], [ 32507049.646118275821209, 6004725.541791188530624 ] ] } }, +{ "type": "Feature", "properties": { "id": "92", "id_full": null, "type": "DL", "from_node": "forks-133", "to_node": "forks-134", "length": 19.13128, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.69029, "flow": 8.26715, "losses": 0.42314, "costs": 18154.5122, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506950.185454104095697, 6004758.780014674179256 ], [ 32506944.880887020379305, 6004777.16118751745671 ] ] } }, +{ "type": "Feature", "properties": { "id": "93", "id_full": null, "type": "DL", "from_node": "forks-133", "to_node": "forks-188", "length": 11.49699, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 17.78282, "flow": 17.52851, "losses": 0.2543, "costs": 10913.04087, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506950.185454104095697, 6004758.780014674179256 ], [ 32506953.373247094452381, 6004747.733802417293191 ] ] } }, +{ "type": "Feature", "properties": { "id": "94", "id_full": "consumers-29", "type": "HL", "from_node": "forks-133", "to_node": "consumers-29", "length": 12.45841, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.83822, "flow": 8.56267, "losses": 0.27555, "costs": 11822.38885, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506950.185454104095697, 6004758.780014674179256 ], [ 32506938.215515997260809, 6004755.325646433979273 ] ] } }, +{ "type": "Feature", "properties": { "id": "95", "id_full": "consumers-20", "type": "HL", "from_node": "forks-134", "to_node": "consumers-20", "length": 12.11137, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.26715, "flow": 7.99927, "losses": 0.26788, "costs": 11492.86018, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506944.880887020379305, 6004777.16118751745671 ], [ 32506932.925440527498722, 6004775.224034184589982 ] ] } }, +{ "type": "Feature", "properties": { "id": "96", "id_full": null, "type": "DL", "from_node": "forks-135", "to_node": "forks-136", "length": 15.51376, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1311.6626, "flow": 1311.3162, "losses": 0.34633, "costs": 15309.6958, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.285512860864401, 6005005.676744327880442 ], [ 32506746.461005732417107, 6005002.454771280288696 ] ] } }, +{ "type": "Feature", "properties": { "id": "97", "id_full": null, "type": "DL", "from_node": "forks-135", "to_node": "forks-151", "length": 10.14912, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1317.7212, "flow": 1317.4946, "losses": 0.22658, "costs": 10017.4096, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.285512860864401, 6005005.676744327880442 ], [ 32506721.357687663286924, 6005007.784562867134809 ] ] } }, +{ "type": "Feature", "properties": { "id": "98", "id_full": "consumers-30", "type": "HL", "from_node": "forks-135", "to_node": "consumers-30", "length": 12.94081, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.83207, "flow": 5.54586, "losses": 0.28622, "costs": 12279.02488, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.285512860864401, 6005005.676744327880442 ], [ 32506733.973123203963041, 6005018.335388888604939 ] ] } }, +{ "type": "Feature", "properties": { "id": "99", "id_full": null, "type": "DL", "from_node": "forks-136", "to_node": "forks-164", "length": 16.33399, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 396.74193, "losses": 0.36254, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506746.461005732417107, 6005002.454771280288696 ], [ 32506760.00166030600667, 6004993.319673928432167 ] ] } }, +{ "type": "Feature", "properties": { "id": "100", "id_full": null, "type": "DL", "from_node": "forks-136", "to_node": "forks-171", "length": 15.14272, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 914.21177, "flow": 913.87468, "losses": 0.33709, "costs": 14768.46254, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506746.461005732417107, 6005002.454771280288696 ], [ 32506755.713424861431122, 6005014.442041280679405 ] ] } }, +{ "type": "Feature", "properties": { "id": "101", "id_full": null, "type": "DL", "from_node": "forks-137", "to_node": "forks-159", "length": 10.9107, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 35.65455, "losses": 0.24217, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507012.298958115279675, 6004811.175051878206432 ], [ 32507003.27022797614336, 6004817.300857891328633 ] ] } }, +{ "type": "Feature", "properties": { "id": "102", "id_full": "consumers-31", "type": "HL", "from_node": "forks-137", "to_node": "consumers-31", "length": 8.40283, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 26.3961, "flow": 26.21022, "losses": 0.18588, "costs": 7978.13989, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507012.298958115279675, 6004811.175051878206432 ], [ 32507007.581197116523981, 6004804.22161736804992 ] ] } }, +{ "type": "Feature", "properties": { "id": "103", "id_full": null, "type": "DL", "from_node": "forks-137", "to_node": "forks-157", "length": 19.80602, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 8.81885, "losses": 0.4396, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507012.298958115279675, 6004811.175051878206432 ], [ 32507025.222955066710711, 6004802.406388177536428 ], [ 32507029.144705791026354, 6004800.936656158417463 ] ] } }, +{ "type": "Feature", "properties": { "id": "104", "id_full": null, "type": "DL", "from_node": "forks-139", "to_node": "forks-165", "length": 14.06143, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 891.08035, "flow": 890.76738, "losses": 0.31297, "costs": 13704.44011, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506783.708717502653599, 6005021.472248470410705 ], [ 32506769.814468886703253, 6005019.310363343916833 ] ] } }, +{ "type": "Feature", "properties": { "id": "105", "id_full": "consumers-32", "type": "HL", "from_node": "forks-139", "to_node": "consumers-32", "length": 20.81761, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.17283, "flow": 3.7124, "losses": 0.46042, "costs": 19752.00812, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506783.708717502653599, 6005021.472248470410705 ], [ 32506780.508098892867565, 6005042.04234728962183 ] ] } }, +{ "type": "Feature", "properties": { "id": "106", "id_full": null, "type": "DL", "from_node": "forks-140", "to_node": "forks-141", "length": 4.3681, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 326.77011, "losses": 0.09695, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506813.553776793181896, 6004956.449514558538795 ], [ 32506817.141993094235659, 6004953.958534721285105 ] ] } }, +{ "type": "Feature", "properties": { "id": "107", "id_full": null, "type": "DL", "from_node": "forks-140", "to_node": "forks-144", "length": 6.112, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 331.00754, "losses": 0.13566, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506813.553776793181896, 6004956.449514558538795 ], [ 32506808.533012978732586, 6004959.934984881430864 ] ] } }, +{ "type": "Feature", "properties": { "id": "108", "id_full": "consumers-33", "type": "HL", "from_node": "forks-140", "to_node": "consumers-33", "length": 4.95488, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.14048, "flow": 4.03089, "losses": 0.10959, "costs": 4701.2439, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506813.553776793181896, 6004956.449514558538795 ], [ 32506816.3793770596385, 6004960.519746195524931 ] ] } }, +{ "type": "Feature", "properties": { "id": "109", "id_full": null, "type": "DL", "from_node": "forks-141", "to_node": "forks-193", "length": 19.61253, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 316.67678, "losses": 0.43531, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506817.141993094235659, 6004953.958534721285105 ], [ 32506832.823352623730898, 6004942.179470105096698 ] ] } }, +{ "type": "Feature", "properties": { "id": "110", "id_full": "consumers-48", "type": "HL", "from_node": "forks-141", "to_node": "consumers-48", "length": 8.81443, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.65802, "flow": 9.46306, "losses": 0.19496, "costs": 8364.65179, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506817.141993094235659, 6004953.958534721285105 ], [ 32506812.726330753415823, 6004946.329892166890204 ] ] } }, +{ "type": "Feature", "properties": { "id": "111", "id_full": null, "type": "DL", "from_node": "forks-142", "to_node": "forks-143", "length": 39.61135, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 17.5837, "flow": 16.70754, "losses": 0.87617, "costs": 37599.19018, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.177181214094162, 6004727.085611203685403 ], [ 32506829.537949100136757, 6004688.366671880707145 ] ] } }, +{ "type": "Feature", "properties": { "id": "112", "id_full": "consumers-28", "type": "HL", "from_node": "forks-142", "to_node": "consumers-28", "length": 8.19113, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 16.70754, "flow": 16.52635, "losses": 0.18118, "costs": 7774.83575, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.177181214094162, 6004727.085611203685403 ], [ 32506824.224487852305174, 6004734.688806956633925 ] ] } }, +{ "type": "Feature", "properties": { "id": "113", "id_full": null, "type": "DL", "from_node": "forks-143", "to_node": "forks-162", "length": 6.78776, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 32.35362, "flow": 32.20346, "losses": 0.15016, "costs": 6445.87419, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506829.537949100136757, 6004688.366671880707145 ], [ 32506830.970641527324915, 6004681.731834987178445 ] ] } }, +{ "type": "Feature", "properties": { "id": "114", "id_full": "consumers-35", "type": "HL", "from_node": "forks-143", "to_node": "consumers-35", "length": 13.13322, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.61976, "flow": 14.32927, "losses": 0.29049, "costs": 12464.95179, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506829.537949100136757, 6004688.366671880707145 ], [ 32506816.700609989464283, 6004685.594643141143024 ] ] } }, +{ "type": "Feature", "properties": { "id": "115", "id_full": "consumers-36", "type": "HL", "from_node": "forks-144", "to_node": "consumers-36", "length": 7.72984, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.2392, "flow": 7.06824, "losses": 0.17097, "costs": 7334.85482, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506808.533012978732586, 6004959.934984881430864 ], [ 32506804.124945797026157, 6004953.58523516356945 ] ] } }, +{ "type": "Feature", "properties": { "id": "116", "id_full": null, "type": "DL", "from_node": "forks-145", "to_node": "forks-146", "length": 14.87547, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 84.47933, "flow": 84.15014, "losses": 0.32919, "costs": 14148.78039, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506905.58015414327383, 6004686.432937291450799 ], [ 32506901.362411059439182, 6004700.697937679477036 ] ] } }, +{ "type": "Feature", "properties": { "id": "117", "id_full": null, "type": "DL", "from_node": "forks-145", "to_node": "forks-167", "length": 42.84975, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 278.77562, "flow": 277.82605, "losses": 0.94957, "costs": 40998.66108, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506905.58015414327383, 6004686.432937291450799 ], [ 32506946.964905600994825, 6004697.54165405780077 ] ] } }, +{ "type": "Feature", "properties": { "id": "118", "id_full": null, "type": "DL", "from_node": "forks-145", "to_node": "forks-195", "length": 7.24456, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 193.34672, "flow": 193.18627, "losses": 0.16045, "costs": 6913.59891, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506905.58015414327383, 6004686.432937291450799 ], [ 32506898.579563789069653, 6004684.568682798184454 ] ] } }, +{ "type": "Feature", "properties": { "id": "119", "id_full": "consumers-38", "type": "HL", "from_node": "forks-146", "to_node": "consumers-38", "length": 4.02159, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.32682, "flow": 13.23787, "losses": 0.08895, "costs": 3816.8101, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506901.362411059439182, 6004700.697937679477036 ], [ 32506905.218965120613575, 6004701.838207835331559 ] ] } }, +{ "type": "Feature", "properties": { "id": "120", "id_full": null, "type": "DL", "from_node": "forks-180", "to_node": "forks-146", "length": 46.18249, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 70.82332, "flow": 69.80141, "losses": 1.02191, "costs": 43908.05552, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.853212911635637, 6004719.588307393714786 ], [ 32506894.227891247719526, 6004724.813225808553398 ], [ 32506896.188764546066523, 6004718.19593792874366 ], [ 32506901.362411059439182, 6004700.697937679477036 ] ] } }, +{ "type": "Feature", "properties": { "id": "121", "id_full": null, "type": "DL", "from_node": "forks-147", "to_node": "forks-148", "length": 12.15054, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1355.9454, "flow": 1355.6741, "losses": 0.27133, "costs": 12006.36368, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506691.422387953847647, 6005014.360785491764545 ], [ 32506703.2613147161901, 6005011.626680312678218 ] ] } }, +{ "type": "Feature", "properties": { "id": "122", "id_full": "consumers-39", "type": "HL", "from_node": "forks-147", "to_node": "consumers-39", "length": 11.00586, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.90212, "flow": 7.65869, "losses": 0.24342, "costs": 10443.68935, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506691.422387953847647, 6005014.360785491764545 ], [ 32506688.945857249200344, 6005003.637179887853563 ] ] } }, +{ "type": "Feature", "properties": { "id": "123", "id_full": "consumers-67", "type": "HL", "from_node": "forks-147", "to_node": "consumers-67", "length": 4.73785, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.01869, "flow": 10.9139, "losses": 0.10479, "costs": 4496.27169, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506691.422387953847647, 6005014.360785491764545 ], [ 32506692.036491487175226, 6005019.058664955198765 ] ] } }, +{ "type": "Feature", "properties": { "id": "124", "id_full": null, "type": "DL", "from_node": "forks-148", "to_node": "forks-155", "length": 4.5999, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1349.0278, "flow": 1348.9251, "losses": 0.10271, "costs": 4544.39773, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506703.2613147161901, 6005011.626680312678218 ], [ 32506707.760920882225037, 6005010.671349904499948 ] ] } }, +{ "type": "Feature", "properties": { "id": "125", "id_full": "consumers-25", "type": "HL", "from_node": "forks-148", "to_node": "consumers-25", "length": 5.50895, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.64629, "flow": 6.52445, "losses": 0.12184, "costs": 5227.3599, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506703.2613147161901, 6005011.626680312678218 ], [ 32506703.684640545397997, 6005017.119344805367291 ] ] } }, +{ "type": "Feature", "properties": { "id": "126", "id_full": null, "type": "DL", "from_node": "forks-149", "to_node": "forks-198", "length": 15.31708, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 551.12566, "flow": 550.78557, "losses": 0.34009, "costs": 14776.73855, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507055.788943462073803, 6004835.756441550329328 ], [ 32507049.910564471036196, 6004849.900614405050874 ] ] } }, +{ "type": "Feature", "properties": { "id": "127", "id_full": "consumers-42", "type": "HL", "from_node": "forks-149", "to_node": "consumers-42", "length": 9.33892, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 34.07666, "flow": 33.87006, "losses": 0.20659, "costs": 8869.0078, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507055.788943462073803, 6004835.756441550329328 ], [ 32507047.165152184665203, 6004832.17235685326159 ] ] } }, +{ "type": "Feature", "properties": { "id": "128", "id_full": null, "type": "DL", "from_node": "forks-150", "to_node": "forks-197", "length": 8.83724, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 587.14227, "flow": 586.946, "losses": 0.19627, "costs": 8534.74435, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507028.353193089365959, 6004902.523559094406664 ], [ 32507031.698386561125517, 6004894.343922664411366 ] ] } }, +{ "type": "Feature", "properties": { "id": "129", "id_full": "consumers-44", "type": "HL", "from_node": "forks-150", "to_node": "consumers-44", "length": 13.85068, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.85979, "flow": 10.55344, "losses": 0.30635, "costs": 13144.39235, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507028.353193089365959, 6004902.523559094406664 ], [ 32507015.533176727592945, 6004897.280607845634222 ] ] } }, +{ "type": "Feature", "properties": { "id": "130", "id_full": null, "type": "DL", "from_node": "forks-151", "to_node": "forks-170", "length": 9.33062, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1335.2126, "flow": 1335.0043, "losses": 0.20833, "costs": 9214.27701, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506721.357687663286924, 6005007.784562867134809 ], [ 32506712.230517815798521, 6005009.722390883602202 ] ] } }, +{ "type": "Feature", "properties": { "id": "131", "id_full": "consumers-45", "type": "HL", "from_node": "forks-151", "to_node": "consumers-45", "length": 9.75886, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.08761, "flow": 6.87177, "losses": 0.21584, "costs": 9260.15174, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506721.357687663286924, 6005007.784562867134809 ], [ 32506723.384454604238272, 6005017.330635040067136 ] ] } }, +{ "type": "Feature", "properties": { "id": "132", "id_full": "consumers-69", "type": "HL", "from_node": "forks-151", "to_node": "consumers-69", "length": 7.52883, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.19543, "flow": 10.02891, "losses": 0.16652, "costs": 7144.77043, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506721.357687663286924, 6005007.784562867134809 ], [ 32506720.317849267274141, 6005000.327882694080472 ] ] } }, +{ "type": "Feature", "properties": { "id": "133", "id_full": null, "type": "DL", "from_node": "forks-153", "to_node": "forks-182", "length": 27.40495, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 99.77534, "losses": 0.60827, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506963.536328297108412, 6004844.259484170004725 ], [ 32506986.214231241494417, 6004828.872997689992189 ] ] } }, +{ "type": "Feature", "properties": { "id": "134", "id_full": "consumers-46", "type": "HL", "from_node": "forks-153", "to_node": "consumers-46", "length": 5.44709, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.52533, "flow": 8.40486, "losses": 0.12048, "costs": 5168.95757, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506963.536328297108412, 6004844.259484170004725 ], [ 32506966.594593238085508, 6004848.767013267613947 ] ] } }, +{ "type": "Feature", "properties": { "id": "135", "id_full": null, "type": "DL", "from_node": "forks-153", "to_node": "forks-161", "length": 12.25663, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 108.90894, "losses": 0.27204, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506963.536328297108412, 6004844.259484170004725 ], [ 32506959.887568239122629, 6004846.735092141665518 ], [ 32506953.613189354538918, 6004851.448096403852105 ] ] } }, +{ "type": "Feature", "properties": { "id": "136", "id_full": null, "type": "DL", "from_node": "forks-154", "to_node": "forks-194", "length": 17.49648, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 126.3727, "flow": 125.98539, "losses": 0.38731, "costs": 16663.06864, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506805.844013646245003, 6004659.67782184202224 ], [ 32506822.721852354705334, 6004664.289245317690074 ] ] } }, +{ "type": "Feature", "properties": { "id": "137", "id_full": "consumers-49", "type": "HL", "from_node": "forks-154", "to_node": "consumers-49", "length": 8.51419, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.59436, "flow": 7.40605, "losses": 0.18831, "costs": 8079.21509, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506805.844013646245003, 6004659.67782184202224 ], [ 32506803.599988739937544, 6004667.890967009589076 ] ] } }, +{ "type": "Feature", "properties": { "id": "138", "id_full": null, "type": "DL", "from_node": "forks-232", "to_node": "forks-154", "length": 42.59109, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 118.39102, "flow": 117.44826, "losses": 0.94276, "costs": 40552.46347, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.520040564239025, 6004670.778998891822994 ], [ 32506782.945804461836815, 6004652.67133320029825 ], [ 32506799.387847676873207, 6004657.913845078088343 ], [ 32506805.844013646245003, 6004659.67782184202224 ] ] } }, +{ "type": "Feature", "properties": { "id": "139", "id_full": null, "type": "DL", "from_node": "forks-155", "to_node": "forks-170", "length": 4.56923, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1341.7174, "flow": 1341.6154, "losses": 0.10202, "costs": 4513.11811, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506707.760920882225037, 6005010.671349904499948 ], [ 32506712.230517815798521, 6005009.722390883602202 ] ] } }, +{ "type": "Feature", "properties": { "id": "140", "id_full": "consumers-50", "type": "HL", "from_node": "forks-155", "to_node": "consumers-50", "length": 6.91795, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.20761, "flow": 7.0546, "losses": 0.15301, "costs": 6564.44933, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506707.760920882225037, 6005010.671349904499948 ], [ 32506706.324166893959045, 6005003.904238703660667 ] ] } }, +{ "type": "Feature", "properties": { "id": "141", "id_full": "consumers-51", "type": "HL", "from_node": "forks-156", "to_node": "consumers-51", "length": 6.30456, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 44.45478, "flow": 44.3153, "losses": 0.13948, "costs": 5989.23106, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507040.424831099808216, 6004741.460822491906583 ], [ 32507036.04156120121479, 6004745.992312707006931 ] ] } }, +{ "type": "Feature", "properties": { "id": "142", "id_full": "consumers-52", "type": "HL", "from_node": "forks-157", "to_node": "consumers-52", "length": 15.86307, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.81885, "flow": 8.46799, "losses": 0.35086, "costs": 15053.22143, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507029.144705791026354, 6004800.936656158417463 ], [ 32507023.577880349010229, 6004786.082450474612415 ] ] } }, +{ "type": "Feature", "properties": { "id": "143", "id_full": null, "type": "DL", "from_node": "forks-158", "to_node": "forks-159", "length": 7.86613, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 45.0791, "losses": 0.17459, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506996.760915204882622, 6004821.717291510663927 ], [ 32507003.27022797614336, 6004817.300857891328633 ] ] } }, +{ "type": "Feature", "properties": { "id": "144", "id_full": null, "type": "DL", "from_node": "forks-158", "to_node": "forks-182", "length": 12.74506, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 54.05494, "losses": 0.28288, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506996.760915204882622, 6004821.717291510663927 ], [ 32506986.214231241494417, 6004828.872997689992189 ] ] } }, +{ "type": "Feature", "properties": { "id": "145", "id_full": "consumers-40", "type": "HL", "from_node": "forks-158", "to_node": "consumers-40", "length": 9.05673, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.80125, "flow": 8.60093, "losses": 0.20031, "costs": 8594.36123, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506996.760915204882622, 6004821.717291510663927 ], [ 32506991.67601926997304, 6004814.22274253424257 ] ] } }, +{ "type": "Feature", "properties": { "id": "146", "id_full": "consumers-53", "type": "HL", "from_node": "forks-159", "to_node": "consumers-53", "length": 10.94747, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.18238, "flow": 8.94025, "losses": 0.24213, "costs": 10388.68767, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507003.27022797614336, 6004817.300857891328633 ], [ 32507009.416674129664898, 6004826.360009211115539 ] ] } }, +{ "type": "Feature", "properties": { "id": "147", "id_full": null, "type": "DL", "from_node": "forks-160", "to_node": "forks-161", "length": 2.79685, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 118.14075, "losses": 0.06208, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.376948937773705, 6004853.127850018441677 ], [ 32506953.613189354538918, 6004851.448096403852105 ] ] } }, +{ "type": "Feature", "properties": { "id": "148", "id_full": null, "type": "DL", "from_node": "forks-160", "to_node": "forks-184", "length": 15.30598, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 131.55307, "losses": 0.33972, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.376948937773705, 6004853.127850018441677 ], [ 32506939.138930920511484, 6004862.320446150377393 ] ] } }, +{ "type": "Feature", "properties": { "id": "149", "id_full": "consumers-34", "type": "HL", "from_node": "forks-160", "to_node": "consumers-34", "length": 7.46522, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.35024, "flow": 13.18512, "losses": 0.16512, "costs": 7085.08357, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.376948937773705, 6004853.127850018441677 ], [ 32506946.893424145877361, 6004847.158975023776293 ] ] } }, +{ "type": "Feature", "properties": { "id": "150", "id_full": "consumers-54", "type": "HL", "from_node": "forks-161", "to_node": "consumers-54", "length": 5.36448, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.95977, "flow": 8.84112, "losses": 0.11865, "costs": 5090.62827, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506953.613189354538918, 6004851.448096403852105 ], [ 32506956.835032768547535, 6004855.737306677736342 ] ] } }, +{ "type": "Feature", "properties": { "id": "151", "id_full": null, "type": "DL", "from_node": "forks-162", "to_node": "forks-163", "length": 14.67321, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 39.7227, "flow": 39.39809, "losses": 0.32461, "costs": 13937.29402, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506830.970641527324915, 6004681.731834987178445 ], [ 32506834.067715518176556, 6004667.389202643185854 ] ] } }, +{ "type": "Feature", "properties": { "id": "152", "id_full": "consumers-55", "type": "HL", "from_node": "forks-162", "to_node": "consumers-55", "length": 4.35741, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.04447, "flow": 6.9481, "losses": 0.09637, "costs": 4134.72411, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506830.970641527324915, 6004681.731834987178445 ], [ 32506835.22987837344408, 6004682.65155260451138 ] ] } }, +{ "type": "Feature", "properties": { "id": "153", "id_full": null, "type": "DL", "from_node": "forks-163", "to_node": "forks-194", "length": 11.76173, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 134.13559, "flow": 133.87521, "losses": 0.26038, "costs": 11204.14334, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.067715518176556, 6004667.389202643185854 ], [ 32506822.721852354705334, 6004664.289245317690074 ] ] } }, +{ "type": "Feature", "properties": { "id": "154", "id_full": null, "type": "DL", "from_node": "forks-163", "to_node": "forks-196", "length": 9.42045, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 174.06689, "flow": 173.85829, "losses": 0.20861, "costs": 8984.7972, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.067715518176556, 6004667.389202643185854 ], [ 32506843.170915149152279, 6004669.813381171785295 ] ] } }, +{ "type": "Feature", "properties": { "id": "155", "id_full": null, "type": "DL", "from_node": "forks-164", "to_node": "forks-177", "length": 10.7022, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 389.38752, "losses": 0.23754, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506760.00166030600667, 6004993.319673928432167 ], [ 32506768.873632952570915, 6004987.334266548976302 ] ] } }, +{ "type": "Feature", "properties": { "id": "156", "id_full": "consumers-57", "type": "HL", "from_node": "forks-164", "to_node": "consumers-57", "length": 3.71867, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.11687, "flow": 7.03462, "losses": 0.08225, "costs": 3528.6402, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506760.00166030600667, 6004993.319673928432167 ], [ 32506762.081398293375969, 6004996.402401195839047 ] ] } }, +{ "type": "Feature", "properties": { "id": "157", "id_full": null, "type": "DL", "from_node": "forks-165", "to_node": "forks-166", "length": 11.89662, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 900.75176, "flow": 900.48696, "losses": 0.2648, "costs": 11597.93406, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506769.814468886703253, 6005019.310363343916833 ], [ 32506758.059295017272234, 6005017.481309016235173 ] ] } }, +{ "type": "Feature", "properties": { "id": "158", "id_full": "consumers-58", "type": "HL", "from_node": "forks-165", "to_node": "consumers-58", "length": 4.62673, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.40661, "flow": 9.30428, "losses": 0.10233, "costs": 4390.60208, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506769.814468886703253, 6005019.310363343916833 ], [ 32506769.103129152208567, 6005023.882082251831889 ] ] } }, +{ "type": "Feature", "properties": { "id": "159", "id_full": null, "type": "DL", "from_node": "forks-166", "to_node": "forks-171", "length": 3.8393, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 908.50362, "flow": 908.41816, "losses": 0.08546, "costs": 3743.77734, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506758.059295017272234, 6005017.481309016235173 ], [ 32506755.713424861431122, 6005014.442041280679405 ] ] } }, +{ "type": "Feature", "properties": { "id": "160", "id_full": "consumers-71", "type": "HL", "from_node": "forks-166", "to_node": "consumers-71", "length": 5.07063, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.6664, "flow": 7.55425, "losses": 0.11215, "costs": 4811.58769, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506758.059295017272234, 6005017.481309016235173 ], [ 32506756.826377343386412, 6005022.399759532883763 ] ] } }, +{ "type": "Feature", "properties": { "id": "161", "id_full": "consumers-60", "type": "HL", "from_node": "forks-167", "to_node": "consumers-60", "length": 10.73166, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.10241, "flow": 7.86505, "losses": 0.23736, "costs": 10183.56288, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506946.964905600994825, 6004697.54165405780077 ], [ 32506944.18274212628603, 6004707.906410517171025 ] ] } }, +{ "type": "Feature", "properties": { "id": "162", "id_full": null, "type": "DL", "from_node": "forks-169", "to_node": "forks-172", "length": 10.1484, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 361.12162, "losses": 0.22525, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506787.188013795763254, 6004974.752921739593148 ] ] } }, +{ "type": "Feature", "properties": { "id": "163", "id_full": "consumers-61", "type": "HL", "from_node": "forks-169", "to_node": "consumers-61", "length": 4.77463, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.54858, "flow": 7.44298, "losses": 0.1056, "costs": 4530.70111, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506781.574328914284706, 6004984.462382080033422 ] ] } }, +{ "type": "Feature", "properties": { "id": "164", "id_full": "consumers-70", "type": "HL", "from_node": "forks-169", "to_node": "consumers-70", "length": 7.53682, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.66246, "flow": 6.49576, "losses": 0.1667, "costs": 7151.57027, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506773.870865557342768, 6004974.883647810667753 ] ] } }, +{ "type": "Feature", "properties": { "id": "165", "id_full": null, "type": "DL", "from_node": "forks-169", "to_node": "forks-177", "length": 12.07158, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 375.55791, "losses": 0.26793, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506775.654936447739601, 6004982.75931285880506 ], [ 32506768.873632952570915, 6004987.334266548976302 ] ] } }, +{ "type": "Feature", "properties": { "id": "166", "id_full": "consumers-62", "type": "HL", "from_node": "forks-170", "to_node": "consumers-62", "length": 7.01811, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.40283, "flow": 6.24761, "losses": 0.15522, "costs": 6659.32494, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506712.230517815798521, 6005009.722390883602202 ], [ 32506713.688073087483644, 6005016.587476121261716 ] ] } }, +{ "type": "Feature", "properties": { "id": "167", "id_full": "consumers-64", "type": "HL", "from_node": "forks-171", "to_node": "consumers-64", "length": 9.17995, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.37106, "flow": 5.16802, "losses": 0.20304, "costs": 8710.36928, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506755.713424861431122, 6005014.442041280679405 ], [ 32506748.446399018168449, 6005020.051122324541211 ] ] } }, +{ "type": "Feature", "properties": { "id": "168", "id_full": "consumers-65", "type": "HL", "from_node": "forks-172", "to_node": "consumers-65", "length": 7.39134, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.48475, "flow": 7.32128, "losses": 0.16348, "costs": 7013.71075, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506787.188013795763254, 6004974.752921739593148 ], [ 32506782.97297802194953, 6004968.681230651214719 ] ] } }, +{ "type": "Feature", "properties": { "id": "169", "id_full": null, "type": "DL", "from_node": "forks-173", "to_node": "forks-243", "length": 20.19752, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1450.522, "flow": 1450.0707, "losses": 0.45133, "costs": 20013.43389, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506672.19807019457221, 6004953.321366431191564 ], [ 32506676.925561025738716, 6004933.684903668239713 ] ] } }, +{ "type": "Feature", "properties": { "id": "170", "id_full": "consumers-66", "type": "HL", "from_node": "forks-173", "to_node": "consumers-66", "length": 4.96355, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 58.36409, "flow": 58.25427, "losses": 0.10982, "costs": 4717.30391, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506672.19807019457221, 6004953.321366431191564 ], [ 32506677.023741491138935, 6004954.483149848878384 ] ] } }, +{ "type": "Feature", "properties": { "id": "171", "id_full": null, "type": "DL", "from_node": "forks-174", "to_node": "forks-175", "length": 11.70593, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 262.59314, "losses": 0.25982, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506862.94104577600956, 6004919.556542992591858 ] ] } }, +{ "type": "Feature", "properties": { "id": "172", "id_full": null, "type": "DL", "from_node": "forks-174", "to_node": "forks-179", "length": 14.46307, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 281.2828, "losses": 0.32101, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506842.017403721809387, 6004935.273351938463748 ] ] } }, +{ "type": "Feature", "properties": { "id": "173", "id_full": "consumers-37", "type": "HL", "from_node": "forks-174", "to_node": "consumers-37", "length": 5.15209, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.53078, "flow": 7.41683, "losses": 0.11395, "costs": 4888.86917, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506856.675757963210344, 6004930.706388405524194 ] ] } }, +{ "type": "Feature", "properties": { "id": "174", "id_full": "consumers-89", "type": "HL", "from_node": "forks-174", "to_node": "consumers-89", "length": 8.11162, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.89906, "flow": 10.71965, "losses": 0.17941, "costs": 7697.99359, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506849.055668868124485, 6004919.855315258726478 ] ] } }, +{ "type": "Feature", "properties": { "id": "175", "id_full": null, "type": "DL", "from_node": "forks-175", "to_node": "forks-176", "length": 13.44485, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 245.89249, "losses": 0.29841, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506862.94104577600956, 6004919.556542992591858 ], [ 32506873.690982904285192, 6004911.481719899922609 ] ] } }, +{ "type": "Feature", "properties": { "id": "176", "id_full": "consumers-68", "type": "HL", "from_node": "forks-175", "to_node": "consumers-68", "length": 4.88253, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.8585, "flow": 7.7505, "losses": 0.10799, "costs": 4633.12973, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506862.94104577600956, 6004919.556542992591858 ], [ 32506865.873438727110624, 6004923.460410547442734 ] ] } }, +{ "type": "Feature", "properties": { "id": "177", "id_full": "consumers-82", "type": "HL", "from_node": "forks-175", "to_node": "consumers-82", "length": 8.02626, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.54374, "flow": 8.36622, "losses": 0.17752, "costs": 7616.43839, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506862.94104577600956, 6004919.556542992591858 ], [ 32506857.805172950029373, 6004913.388585176318884 ] ] } }, +{ "type": "Feature", "properties": { "id": "178", "id_full": null, "type": "DL", "from_node": "forks-176", "to_node": "forks-192", "length": 8.33255, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 237.22141, "losses": 0.18494, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.690982904285192, 6004911.481719899922609 ], [ 32506880.353337548673153, 6004906.47728736512363 ] ] } }, +{ "type": "Feature", "properties": { "id": "179", "id_full": "consumers-63", "type": "HL", "from_node": "forks-176", "to_node": "consumers-63", "length": 5.27604, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.48614, "flow": 8.36944, "losses": 0.11669, "costs": 5006.63308, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.690982904285192, 6004911.481719899922609 ], [ 32506876.859712023288012, 6004915.700219604186714 ] ] } }, +{ "type": "Feature", "properties": { "id": "180", "id_full": "consumers-72", "type": "HL", "from_node": "forks-177", "to_node": "consumers-72", "length": 3.95053, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.96455, "flow": 7.87717, "losses": 0.08738, "costs": 3748.74935, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506768.873632952570915, 6004987.334266548976302 ], [ 32506771.083043202757835, 6004990.609202752821147 ] ] } }, +{ "type": "Feature", "properties": { "id": "181", "id_full": "consumers-79", "type": "HL", "from_node": "forks-177", "to_node": "consumers-79", "length": 8.62079, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.59712, "flow": 5.40645, "losses": 0.19067, "costs": 8179.86855, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506768.873632952570915, 6004987.334266548976302 ], [ 32506763.168475586920977, 6004980.87135895434767 ] ] } }, +{ "type": "Feature", "properties": { "id": "182", "id_full": null, "type": "DL", "from_node": "forks-178", "to_node": "forks-179", "length": 9.41834, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 297.98215, "losses": 0.20904, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.486889705061913, 6004940.929903017356992 ], [ 32506842.017403721809387, 6004935.273351938463748 ] ] } }, +{ "type": "Feature", "properties": { "id": "183", "id_full": null, "type": "DL", "from_node": "forks-178", "to_node": "forks-193", "length": 2.08057, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 306.75436, "losses": 0.04618, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.486889705061913, 6004940.929903017356992 ], [ 32506832.823352623730898, 6004942.179470105096698 ] ] } }, +{ "type": "Feature", "properties": { "id": "184", "id_full": "consumers-56", "type": "HL", "from_node": "forks-178", "to_node": "consumers-56", "length": 4.89867, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.56317, "flow": 8.45482, "losses": 0.10835, "costs": 4648.54852, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.486889705061913, 6004940.929903017356992 ], [ 32506837.428977940231562, 6004944.846677812747657 ] ] } }, +{ "type": "Feature", "properties": { "id": "185", "id_full": "consumers-73", "type": "HL", "from_node": "forks-179", "to_node": "consumers-73", "length": 4.99321, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.29658, "flow": 8.18614, "losses": 0.11044, "costs": 4738.21968, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506842.017403721809387, 6004935.273351938463748 ], [ 32506845.016269762068987, 6004939.265714497305453 ] ] } }, +{ "type": "Feature", "properties": { "id": "186", "id_full": "consumers-90", "type": "HL", "from_node": "forks-179", "to_node": "consumers-90", "length": 8.04914, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.08175, "flow": 7.90372, "losses": 0.17803, "costs": 7638.04371, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506842.017403721809387, 6004935.273351938463748 ], [ 32506837.777945671230555, 6004928.431150262244046 ] ] } }, +{ "type": "Feature", "properties": { "id": "187", "id_full": null, "type": "DL", "from_node": "forks-180", "to_node": "forks-181", "length": 9.28727, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.8595, "flow": 14.65408, "losses": 0.20542, "costs": 8814.76001, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.853212911635637, 6004719.588307393714786 ], [ 32506864.857042696326971, 6004717.281313651241362 ] ] } }, +{ "type": "Feature", "properties": { "id": "188", "id_full": "consumers-74", "type": "HL", "from_node": "forks-180", "to_node": "consumers-74", "length": 7.94035, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 54.94191, "flow": 54.76623, "losses": 0.17568, "costs": 7545.62473, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.853212911635637, 6004719.588307393714786 ], [ 32506875.825626276433468, 6004711.896840342320502 ] ] } }, +{ "type": "Feature", "properties": { "id": "189", "id_full": "consumers-19", "type": "HL", "from_node": "forks-181", "to_node": "consumers-19", "length": 15.91497, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.65408, "flow": 14.30206, "losses": 0.35202, "costs": 15105.1743, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506864.857042696326971, 6004717.281313651241362 ], [ 32506852.469767972826958, 6004707.289231175556779 ] ] } }, +{ "type": "Feature", "properties": { "id": "190", "id_full": "consumers-75", "type": "HL", "from_node": "forks-182", "to_node": "consumers-75", "length": 3.22676, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 45.43752, "flow": 45.36613, "losses": 0.07139, "costs": 3065.46031, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506986.214231241494417, 6004828.872997689992189 ], [ 32506988.025891255587339, 6004831.543175185099244 ] ] } }, +{ "type": "Feature", "properties": { "id": "191", "id_full": null, "type": "DL", "from_node": "forks-183", "to_node": "forks-184", "length": 8.76507, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 139.09392, "losses": 0.19454, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506939.138930920511484, 6004862.320446150377393 ] ] } }, +{ "type": "Feature", "properties": { "id": "192", "id_full": null, "type": "DL", "from_node": "forks-183", "to_node": "forks-190", "length": 6.8, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 162.26324, "losses": 0.15093, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506926.6937505453825, 6004871.668652441352606 ] ] } }, +{ "type": "Feature", "properties": { "id": "193", "id_full": "consumers-76", "type": "HL", "from_node": "forks-183", "to_node": "consumers-76", "length": 5.73613, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.62991, "flow": 9.50304, "losses": 0.12687, "costs": 5443.4223, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506935.575799219310284, 6004872.171020341105759 ] ] } }, +{ "type": "Feature", "properties": { "id": "194", "id_full": "consumers-83", "type": "HL", "from_node": "forks-183", "to_node": "consumers-83", "length": 27.814, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.34487, "flow": 12.72966, "losses": 0.6152, "costs": 26397.68636, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506916.607952658087015, 6004844.505193990655243 ] ] } }, +{ "type": "Feature", "properties": { "id": "195", "id_full": "consumers-77", "type": "HL", "from_node": "forks-184", "to_node": "consumers-77", "length": 5.55474, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.20113, "flow": 7.07827, "losses": 0.12286, "costs": 5270.895, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506939.138930920511484, 6004862.320446150377393 ], [ 32506942.475044459104538, 6004866.761783177964389 ] ] } }, +{ "type": "Feature", "properties": { "id": "196", "id_full": "consumers-78", "type": "HL", "from_node": "forks-185", "to_node": "consumers-78", "length": 15.81839, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.36782, "flow": 13.01794, "losses": 0.34988, "costs": 15012.92045, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506643.925446726381779, 6005067.528800801374018 ], [ 32506659.237948231399059, 6005071.497289492748678 ] ] } }, +{ "type": "Feature", "properties": { "id": "197", "id_full": null, "type": "DL", "from_node": "forks-186", "to_node": "forks-187", "length": 15.46324, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 201.88224, "losses": 0.34321, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506900.988204181194305, 6004890.977392285130918 ] ] } }, +{ "type": "Feature", "properties": { "id": "198", "id_full": null, "type": "DL", "from_node": "forks-186", "to_node": "forks-192", "length": 10.3446, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 229.81481, "losses": 0.2296, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506880.353337548673153, 6004906.47728736512363 ] ] } }, +{ "type": "Feature", "properties": { "id": "199", "id_full": "consumers-80", "type": "HL", "from_node": "forks-186", "to_node": "consumers-80", "length": 5.0547, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.78811, "flow": 8.67631, "losses": 0.1118, "costs": 4796.63914, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506891.660241603851318, 6004904.305962592363358 ] ] } }, +{ "type": "Feature", "properties": { "id": "200", "id_full": "consumers-86", "type": "HL", "from_node": "forks-186", "to_node": "consumers-86", "length": 7.99386, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 18.80125, "flow": 18.62443, "losses": 0.17682, "costs": 7588.07189, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506883.288180585950613, 6004894.312463083304465 ] ] } }, +{ "type": "Feature", "properties": { "id": "201", "id_full": null, "type": "DL", "from_node": "forks-187", "to_node": "forks-191", "length": 20.14614, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 183.65701, "losses": 0.44715, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506900.988204181194305, 6004890.977392285130918 ], [ 32506917.096217688173056, 6004878.877846225164831 ] ] } }, +{ "type": "Feature", "properties": { "id": "202", "id_full": "consumers-43", "type": "HL", "from_node": "forks-187", "to_node": "consumers-43", "length": 5.40936, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.40259, "flow": 8.28295, "losses": 0.11964, "costs": 5133.13745, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506900.988204181194305, 6004890.977392285130918 ], [ 32506904.237007018178701, 6004895.302493386901915 ] ] } }, +{ "type": "Feature", "properties": { "id": "203", "id_full": "consumers-87", "type": "HL", "from_node": "forks-187", "to_node": "consumers-87", "length": 7.72474, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.37549, "flow": 9.20463, "losses": 0.17085, "costs": 7330.50092, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506900.988204181194305, 6004890.977392285130918 ], [ 32506897.067452058196068, 6004884.321616514585912 ] ] } }, +{ "type": "Feature", "properties": { "id": "204", "id_full": "consumers-81", "type": "HL", "from_node": "forks-188", "to_node": "consumers-81", "length": 9.52894, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 102.82322, "flow": 102.61232, "losses": 0.2109, "costs": 9068.52563, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506953.373247094452381, 6004747.733802417293191 ], [ 32506962.528575569391251, 6004750.375910975039005 ] ] } }, +{ "type": "Feature", "properties": { "id": "205", "id_full": null, "type": "DL", "from_node": "forks-189", "to_node": "forks-190", "length": 8.79363, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 500.0, "flow": 169.95746, "losses": 0.19518, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506919.662733964622021, 6004876.950005658902228 ], [ 32506926.6937505453825, 6004871.668652441352606 ] ] } }, +{ "type": "Feature", "properties": { "id": "206", "id_full": null, "type": "DL", "from_node": "forks-189", "to_node": "forks-191", "length": 3.20992, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 500.0, "flow": 177.49878, "losses": 0.07125, "costs": 0.0, "existing": 1.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506919.662733964622021, 6004876.950005658902228 ], [ 32506917.096217688173056, 6004878.877846225164831 ] ] } }, +{ "type": "Feature", "properties": { "id": "207", "id_full": "consumers-59", "type": "HL", "from_node": "forks-189", "to_node": "consumers-59", "length": 6.27215, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.34614, "flow": 7.20742, "losses": 0.13872, "costs": 5951.67298, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506919.662733964622021, 6004876.950005658902228 ], [ 32506923.4297163374722, 6004881.964954374358058 ] ] } }, +{ "type": "Feature", "properties": { "id": "208", "id_full": "consumers-84", "type": "HL", "from_node": "forks-190", "to_node": "consumers-84", "length": 14.29423, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.54329, "flow": 7.22713, "losses": 0.31615, "costs": 13563.94792, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.6937505453825, 6004871.668652441352606 ], [ 32506918.108795676380396, 6004860.239581610076129 ] ] } }, +{ "type": "Feature", "properties": { "id": "209", "id_full": "consumers-85", "type": "HL", "from_node": "forks-191", "to_node": "consumers-85", "length": 7.33862, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.08699, "flow": 5.92468, "losses": 0.16231, "costs": 6963.38605, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506917.096217688173056, 6004878.877846225164831 ], [ 32506912.688723333179951, 6004873.010189848020673 ] ] } }, +{ "type": "Feature", "properties": { "id": "210", "id_full": "consumers-88", "type": "HL", "from_node": "forks-192", "to_node": "consumers-88", "length": 8.14258, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.177, "flow": 6.9969, "losses": 0.18009, "costs": 7726.49611, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506880.353337548673153, 6004906.47728736512363 ], [ 32506875.462993998080492, 6004899.966818332672119 ] ] } }, +{ "type": "Feature", "properties": { "id": "211", "id_full": "consumers-91", "type": "HL", "from_node": "forks-193", "to_node": "consumers-91", "length": 8.36688, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.87625, "flow": 9.69119, "losses": 0.18506, "costs": 7939.9887, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506832.823352623730898, 6004942.179470105096698 ], [ 32506827.798298679292202, 6004935.489662369713187 ] ] } }, +{ "type": "Feature", "properties": { "id": "212", "id_full": "consumers-92", "type": "HL", "from_node": "forks-194", "to_node": "consumers-92", "length": 9.48174, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.50251, "flow": 7.2928, "losses": 0.20971, "costs": 8997.30809, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.721852354705334, 6004664.289245317690074 ], [ 32506825.22088723257184, 6004655.142762060277164 ] ] } }, +{ "type": "Feature", "properties": { "id": "213", "id_full": null, "type": "DL", "from_node": "forks-195", "to_node": "forks-196", "length": 57.33967, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 184.37735, "flow": 183.10753, "losses": 1.26982, "costs": 54705.16346, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506898.579563789069653, 6004684.568682798184454 ], [ 32506843.170915149152279, 6004669.813381171785295 ] ] } }, +{ "type": "Feature", "properties": { "id": "214", "id_full": "consumers-93", "type": "HL", "from_node": "forks-195", "to_node": "consumers-93", "length": 8.43095, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.80893, "flow": 8.62245, "losses": 0.18647, "costs": 8000.525, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506898.579563789069653, 6004684.568682798184454 ], [ 32506900.749112118035555, 6004676.421662562526762 ] ] } }, +{ "type": "Feature", "properties": { "id": "215", "id_full": "consumers-94", "type": "HL", "from_node": "forks-196", "to_node": "consumers-94", "length": 8.90737, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.04064, "flow": 8.84362, "losses": 0.19701, "costs": 8452.68263, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506843.170915149152279, 6004669.813381171785295 ], [ 32506845.46306137740612, 6004661.205985110253096 ] ] } }, +{ "type": "Feature", "properties": { "id": "216", "id_full": "consumers-95", "type": "HL", "from_node": "forks-197", "to_node": "consumers-95", "length": 15.94942, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.62969, "flow": 11.27692, "losses": 0.35277, "costs": 15136.47119, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507031.698386561125517, 6004894.343922664411366 ], [ 32507046.460973054170609, 6004900.381319114938378 ] ] } }, +{ "type": "Feature", "properties": { "id": "217", "id_full": "consumers-96", "type": "HL", "from_node": "forks-198", "to_node": "consumers-96", "length": 11.91126, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.88218, "flow": 6.61873, "losses": 0.26345, "costs": 11302.49126, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.910564471036196, 6004849.900614405050874 ], [ 32507060.90971864387393, 6004854.471910123713315 ] ] } }, +{ "type": "Feature", "properties": { "id": "218", "id_full": "consumers-97", "type": "HL", "from_node": "forks-199", "to_node": "consumers-97", "length": 8.38594, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.87189, "flow": 9.68641, "losses": 0.18548, "costs": 7958.07287, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506991.113808564841747, 6004712.75675640348345 ], [ 32506994.602377288043499, 6004705.130889164283872 ] ] } }, +{ "type": "Feature", "properties": { "id": "219", "id_full": null, "type": "DL", "from_node": "forks-199", "to_node": "forks-203", "length": 9.87361, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 419.65036, "flow": 419.43133, "losses": 0.21902, "costs": 9487.53662, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506991.113808564841747, 6004712.75675640348345 ], [ 32506994.376538667827845, 6004714.249341813847423 ], [ 32506999.825161132961512, 6004717.383402610197663 ] ] } }, +{ "type": "Feature", "properties": { "id": "220", "id_full": "consumers-98", "type": "HL", "from_node": "forks-202", "to_node": "consumers-98", "length": 11.40052, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.00631, "flow": 9.75416, "losses": 0.25216, "costs": 10818.8928, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506914.666960474103689, 6005091.425845111720264 ], [ 32506903.875652264803648, 6005087.748944580554962 ] ] } }, +{ "type": "Feature", "properties": { "id": "221", "id_full": "consumers-100", "type": "HL", "from_node": "forks-203", "to_node": "consumers-100", "length": 7.40956, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.7885, "flow": 8.62462, "losses": 0.16388, "costs": 7031.27747, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506999.825161132961512, 6004717.383402610197663 ], [ 32506996.130732461810112, 6004723.806234955787659 ] ] } }, +{ "type": "Feature", "properties": { "id": "222", "id_full": "consumers-101", "type": "HL", "from_node": "forks-204", "to_node": "consumers-101", "length": 10.10723, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.8664, "flow": 6.64286, "losses": 0.22355, "costs": 9590.65957, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506863.975002709776163, 6005031.844291221350431 ], [ 32506862.937959134578705, 6005041.89818021748215 ] ] } }, +{ "type": "Feature", "properties": { "id": "223", "id_full": "consumers-102", "type": "HL", "from_node": "forks-205", "to_node": "consumers-102", "length": 14.81489, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.26126, "flow": 8.93358, "losses": 0.32767, "costs": 14058.74792, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506977.857269518077374, 6005041.763435141183436 ], [ 32506976.159403674304485, 6005056.480714665725827 ] ] } }, +{ "type": "Feature", "properties": { "id": "224", "id_full": null, "type": "DL", "from_node": "forks-206", "to_node": "forks-208", "length": 5.91488, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 23.67644, "flow": 23.5456, "losses": 0.13084, "costs": 5615.46542, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.627499092370272, 6005043.576945947483182 ], [ 32506822.262714140117168, 6005049.480564471334219 ] ] } }, +{ "type": "Feature", "properties": { "id": "225", "id_full": "consumers-103", "type": "HL", "from_node": "forks-206", "to_node": "consumers-103", "length": 7.49398, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.5256, "flow": 6.35985, "losses": 0.16575, "costs": 7110.89587, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.627499092370272, 6005043.576945947483182 ], [ 32506830.107215527445078, 6005044.039118086919188 ] ] } }, +{ "type": "Feature", "properties": { "id": "226", "id_full": null, "type": "DL", "from_node": "forks-207", "to_node": "forks-208", "length": 8.10435, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 16.85882, "flow": 16.67956, "losses": 0.17926, "costs": 7692.49669, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506822.262714140117168, 6005049.480564471334219 ] ] } }, +{ "type": "Feature", "properties": { "id": "227", "id_full": null, "type": "DL", "from_node": "forks-207", "to_node": "forks-209", "length": 7.53825, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.22983, "flow": 11.0631, "losses": 0.16673, "costs": 7153.93367, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506821.297996897250414, 6005065.09338659979403 ] ] } }, +{ "type": "Feature", "properties": { "id": "228", "id_full": "consumers-14", "type": "HL", "from_node": "forks-207", "to_node": "consumers-14", "length": 7.69663, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.89082, "flow": 2.7206, "losses": 0.17023, "costs": 7302.36886, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506814.080922689288855, 6005057.094815383665264 ] ] } }, +{ "type": "Feature", "properties": { "id": "229", "id_full": "consumers-15", "type": "HL", "from_node": "forks-207", "to_node": "consumers-15", "length": 7.64959, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.5589, "flow": 2.38972, "losses": 0.16918, "costs": 7257.66384, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506829.389084823429585, 6005058.167373000644147 ] ] } }, +{ "type": "Feature", "properties": { "id": "230", "id_full": "consumers-104", "type": "HL", "from_node": "forks-208", "to_node": "consumers-104", "length": 7.83427, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.68678, "flow": 6.51351, "losses": 0.17327, "costs": 7433.82657, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.262714140117168, 6005049.480564471334219 ], [ 32506814.443356208503246, 6005048.997405863367021 ] ] } }, +{ "type": "Feature", "properties": { "id": "231", "id_full": "consumers-105", "type": "HL", "from_node": "forks-209", "to_node": "consumers-105", "length": 7.61773, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.52586, "flow": 2.35738, "losses": 0.16848, "costs": 7227.43541, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.297996897250414, 6005065.09338659979403 ], [ 32506813.694764081388712, 6005064.623582374304533 ] ] } }, +{ "type": "Feature", "properties": { "id": "232", "id_full": "consumers-106", "type": "HL", "from_node": "forks-209", "to_node": "consumers-106", "length": 7.72529, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.28069, "flow": 2.10983, "losses": 0.17086, "costs": 7329.42982, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.297996897250414, 6005065.09338659979403 ], [ 32506828.999537546187639, 6005065.698728888295591 ] ] } }, +{ "type": "Feature", "properties": { "id": "233", "id_full": null, "type": "DL", "from_node": "forks-210", "to_node": "forks-211", "length": 5.33174, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 90.35784, "flow": 90.23985, "losses": 0.118, "costs": 5072.19218, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506916.818285368382931, 6004975.071261634118855 ], [ 32506914.126209385693073, 6004979.673459257930517 ] ] } }, +{ "type": "Feature", "properties": { "id": "234", "id_full": null, "type": "DL", "from_node": "forks-210", "to_node": "forks-228", "length": 2.76926, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 85.97175, "flow": 85.91046, "losses": 0.06128, "costs": 2634.0967, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506916.818285368382931, 6004975.071261634118855 ], [ 32506918.21652490645647, 6004972.68092246260494 ] ] } }, +{ "type": "Feature", "properties": { "id": "235", "id_full": "consumers-7", "type": "HL", "from_node": "forks-210", "to_node": "consumers-7", "length": 6.82832, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.2681, "flow": 4.11708, "losses": 0.15102, "costs": 6478.81836, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506916.818285368382931, 6004975.071261634118855 ], [ 32506910.924285426735878, 6004971.623540132306516 ] ] } }, +{ "type": "Feature", "properties": { "id": "236", "id_full": null, "type": "DL", "from_node": "forks-211", "to_node": "forks-212", "length": 5.33265, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 94.74056, "flow": 94.62254, "losses": 0.11802, "costs": 5073.73142, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506914.126209385693073, 6004979.673459257930517 ], [ 32506911.433677285909653, 6004984.276436627842486 ] ] } }, +{ "type": "Feature", "properties": { "id": "237", "id_full": "consumers-109", "type": "HL", "from_node": "forks-211", "to_node": "consumers-109", "length": 6.91247, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.2647, "flow": 4.11181, "losses": 0.15288, "costs": 6558.65141, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506914.126209385693073, 6004979.673459257930517 ], [ 32506908.159581992775202, 6004976.183254008181393 ] ] } }, +{ "type": "Feature", "properties": { "id": "238", "id_full": null, "type": "DL", "from_node": "forks-212", "to_node": "forks-226", "length": 5.36226, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 103.2911, "flow": 103.17242, "losses": 0.11868, "costs": 5103.24001, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506911.433677285909653, 6004984.276436627842486 ], [ 32506908.726193338632584, 6004988.904974701814353 ] ] } }, +{ "type": "Feature", "properties": { "id": "239", "id_full": "consumers-107", "type": "HL", "from_node": "forks-212", "to_node": "consumers-107", "length": 7.01284, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.27137, "flow": 4.11627, "losses": 0.1551, "costs": 6653.8885, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506911.433677285909653, 6004984.276436627842486 ], [ 32506905.380410727113485, 6004980.735551411285996 ] ] } }, +{ "type": "Feature", "properties": { "id": "240", "id_full": "consumers-127", "type": "HL", "from_node": "forks-212", "to_node": "consumers-127", "length": 7.18017, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.16049, "flow": 4.00168, "losses": 0.1588, "costs": 6812.62991, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506911.433677285909653, 6004984.276436627842486 ], [ 32506917.620399676263332, 6004987.920510660856962 ] ] } }, +{ "type": "Feature", "properties": { "id": "241", "id_full": null, "type": "DL", "from_node": "forks-213", "to_node": "forks-214", "length": 6.17035, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 67.58773, "flow": 67.4512, "losses": 0.13653, "costs": 5865.88682, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506923.4450902082026, 6004963.742508036084473 ] ] } }, +{ "type": "Feature", "properties": { "id": "242", "id_full": null, "type": "DL", "from_node": "forks-213", "to_node": "forks-220", "length": 2.18428, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 59.40774, "flow": 59.35942, "losses": 0.04833, "costs": 2075.9832, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506927.96684343740344, 6004956.74506373051554 ] ] } }, +{ "type": "Feature", "properties": { "id": "243", "id_full": "consumers-2", "type": "HL", "from_node": "forks-213", "to_node": "consumers-2", "length": 7.31357, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.96128, "flow": 3.79953, "losses": 0.16175, "costs": 6939.16202, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506932.536496572196484, 6004962.632713946513832 ] ] } }, +{ "type": "Feature", "properties": { "id": "244", "id_full": "consumers-113", "type": "HL", "from_node": "forks-213", "to_node": "consumers-113", "length": 6.51075, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.08217, "flow": 3.93817, "losses": 0.144, "costs": 6177.46756, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506920.564632415771484, 6004955.879049636423588 ] ] } }, +{ "type": "Feature", "properties": { "id": "245", "id_full": null, "type": "DL", "from_node": "forks-214", "to_node": "forks-215", "length": 5.02891, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 76.40927, "flow": 76.29798, "losses": 0.11128, "costs": 4782.06137, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506923.4450902082026, 6004963.742508036084473 ], [ 32506920.905918724834919, 6004968.083310092799366 ] ] } }, +{ "type": "Feature", "properties": { "id": "246", "id_full": "consumers-110", "type": "HL", "from_node": "forks-214", "to_node": "consumers-110", "length": 7.27271, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.33536, "flow": 4.17451, "losses": 0.16085, "costs": 6900.4733, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506923.4450902082026, 6004963.742508036084473 ], [ 32506929.722670953720808, 6004967.414606835693121 ] ] } }, +{ "type": "Feature", "properties": { "id": "247", "id_full": "consumers-111", "type": "HL", "from_node": "forks-214", "to_node": "consumers-111", "length": 6.48995, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.37489, "flow": 4.23135, "losses": 0.14354, "costs": 6157.78222, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506923.4450902082026, 6004963.742508036084473 ], [ 32506917.65685249119997, 6004960.807250146754086 ] ] } }, +{ "type": "Feature", "properties": { "id": "248", "id_full": null, "type": "DL", "from_node": "forks-215", "to_node": "forks-228", "length": 5.32643, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 81.93522, "flow": 81.81734, "losses": 0.11787, "costs": 5065.83365, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.905918724834919, 6004968.083310092799366 ], [ 32506918.21652490645647, 6004972.68092246260494 ] ] } }, +{ "type": "Feature", "properties": { "id": "249", "id_full": "consumers-108", "type": "HL", "from_node": "forks-215", "to_node": "consumers-108", "length": 7.26236, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.40808, "flow": 5.24746, "losses": 0.16062, "costs": 6890.87719, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.905918724834919, 6004968.083310092799366 ], [ 32506927.17456341907382, 6004971.750181707553566 ] ] } }, +{ "type": "Feature", "properties": { "id": "250", "id_full": null, "type": "DL", "from_node": "forks-216", "to_node": "forks-217", "length": 5.37401, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 29.73156, "flow": 29.61268, "losses": 0.11888, "costs": 5102.92184, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506956.185954004526138, 6004953.169992101378739 ] ] } }, +{ "type": "Feature", "properties": { "id": "251", "id_full": null, "type": "DL", "from_node": "forks-216", "to_node": "forks-221", "length": 5.3739, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 21.03913, "flow": 20.92026, "losses": 0.11887, "costs": 5101.46059, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506966.725317884236574, 6004955.276973642408848 ] ] } }, +{ "type": "Feature", "properties": { "id": "252", "id_full": "consumers-114", "type": "HL", "from_node": "forks-216", "to_node": "consumers-114", "length": 7.5241, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.41927, "flow": 4.25286, "losses": 0.16641, "costs": 7139.01438, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506959.98069117218256, 6004961.601601294241846 ] ] } }, +{ "type": "Feature", "properties": { "id": "253", "id_full": "consumers-122", "type": "HL", "from_node": "forks-216", "to_node": "consumers-122", "length": 6.86792, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.15428, "flow": 4.00238, "losses": 0.1519, "costs": 6516.36505, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506963.342329427599907, 6004947.619788060896099 ] ] } }, +{ "type": "Feature", "properties": { "id": "254", "id_full": null, "type": "DL", "from_node": "forks-217", "to_node": "forks-225", "length": 4.50436, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 33.86441, "flow": 33.76477, "losses": 0.09964, "costs": 4277.68271, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506956.185954004526138, 6004953.169992101378739 ], [ 32506951.768994346261024, 6004952.286973678506911 ] ] } }, +{ "type": "Feature", "properties": { "id": "255", "id_full": "consumers-112", "type": "HL", "from_node": "forks-217", "to_node": "consumers-112", "length": 7.58653, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.03321, "flow": 3.86541, "losses": 0.16779, "costs": 7198.16239, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506956.185954004526138, 6004953.169992101378739 ], [ 32506954.698718123137951, 6004960.609316939488053 ] ] } }, +{ "type": "Feature", "properties": { "id": "256", "id_full": null, "type": "DL", "from_node": "forks-218", "to_node": "forks-219", "length": 4.83939, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 129.53712, "flow": 129.42999, "losses": 0.10713, "costs": 4609.32173, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506899.291071772575378, 6005005.034643516875803 ], [ 32506896.847592517733574, 6005009.211856372654438 ] ] } }, +{ "type": "Feature", "properties": { "id": "257", "id_full": null, "type": "DL", "from_node": "forks-218", "to_node": "forks-227", "length": 5.11468, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 124.11661, "flow": 124.00339, "losses": 0.11322, "costs": 4870.71657, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506899.291071772575378, 6005005.034643516875803 ], [ 32506901.873548366129398, 6005000.619809870608151 ] ] } }, +{ "type": "Feature", "properties": { "id": "258", "id_full": "consumers-17", "type": "HL", "from_node": "forks-218", "to_node": "consumers-17", "length": 7.26205, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.31338, "flow": 5.15276, "losses": 0.16062, "costs": 6890.5637, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506899.291071772575378, 6005005.034643516875803 ], [ 32506893.022694058716297, 6005001.367928072810173 ] ] } }, +{ "type": "Feature", "properties": { "id": "259", "id_full": "consumers-115", "type": "HL", "from_node": "forks-219", "to_node": "consumers-115", "length": 7.27736, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.67595, "flow": 5.515, "losses": 0.16096, "costs": 6905.1637, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506896.847592517733574, 6005009.211856372654438 ], [ 32506890.566002946346998, 6005005.537412592209876 ] ] } }, +{ "type": "Feature", "properties": { "id": "260", "id_full": "consumers-116", "type": "HL", "from_node": "forks-220", "to_node": "consumers-116", "length": 6.91123, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.09452, "flow": 3.94166, "losses": 0.15286, "costs": 6557.44234, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506927.96684343740344, 6004956.74506373051554 ], [ 32506922.678448677062988, 6004952.295576239004731 ] ] } }, +{ "type": "Feature", "properties": { "id": "261", "id_full": "consumers-117", "type": "HL", "from_node": "forks-221", "to_node": "consumers-117", "length": 7.46187, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.36172, "flow": 4.19669, "losses": 0.16503, "costs": 7079.9514, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.725317884236574, 6004955.276973642408848 ], [ 32506965.26252069696784, 6004962.594053332693875 ] ] } }, +{ "type": "Feature", "properties": { "id": "262", "id_full": "consumers-123", "type": "HL", "from_node": "forks-221", "to_node": "consumers-123", "length": 6.97832, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.16008, "flow": 4.00574, "losses": 0.15434, "costs": 6621.11302, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.725317884236574, 6004955.276973642408848 ], [ 32506968.629958920180798, 6004948.563608229160309 ] ] } }, +{ "type": "Feature", "properties": { "id": "263", "id_full": null, "type": "DL", "from_node": "forks-222", "to_node": "forks-225", "length": 5.40118, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 38.22293, "flow": 38.10344, "losses": 0.11949, "costs": 5130.05871, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506946.472613293677568, 6004951.228145343251526 ], [ 32506951.768994346261024, 6004952.286973678506911 ] ] } }, +{ "type": "Feature", "properties": { "id": "264", "id_full": "consumers-119", "type": "HL", "from_node": "forks-222", "to_node": "consumers-119", "length": 6.57335, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.06035, "flow": 3.91497, "losses": 0.14538, "costs": 6236.85039, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506946.472613293677568, 6004951.228145343251526 ], [ 32506947.761228282004595, 6004944.782345029525459 ] ] } }, +{ "type": "Feature", "properties": { "id": "265", "id_full": null, "type": "DL", "from_node": "forks-223", "to_node": "forks-224", "length": 5.32801, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 115.30633, "flow": 115.1884, "losses": 0.11793, "costs": 5072.51075, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506906.036651168018579, 6004993.502840680070221 ], [ 32506903.346458375453949, 6004998.101818924769759 ] ] } }, +{ "type": "Feature", "properties": { "id": "266", "id_full": null, "type": "DL", "from_node": "forks-223", "to_node": "forks-226", "length": 5.32673, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 111.03816, "flow": 110.92026, "losses": 0.1179, "costs": 5070.6226, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506906.036651168018579, 6004993.502840680070221 ], [ 32506908.726193338632584, 6004988.904974701814353 ] ] } }, +{ "type": "Feature", "properties": { "id": "267", "id_full": "consumers-120", "type": "HL", "from_node": "forks-223", "to_node": "consumers-120", "length": 7.08776, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.15024, "flow": 3.99348, "losses": 0.15676, "costs": 6724.95429, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506906.036651168018579, 6004993.502840680070221 ], [ 32506912.154591392725706, 6004997.08155704382807 ] ] } }, +{ "type": "Feature", "properties": { "id": "268", "id_full": null, "type": "DL", "from_node": "forks-224", "to_node": "forks-227", "length": 2.91715, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 119.47257, "flow": 119.408, "losses": 0.06457, "costs": 2777.60871, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506903.346458375453949, 6004998.101818924769759 ], [ 32506901.873548366129398, 6005000.619809870608151 ] ] } }, +{ "type": "Feature", "properties": { "id": "269", "id_full": "consumers-8", "type": "HL", "from_node": "forks-224", "to_node": "consumers-8", "length": 7.04024, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.10166, "flow": 3.94596, "losses": 0.15571, "costs": 6679.85403, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506903.346458375453949, 6004998.101818924769759 ], [ 32506909.423378266394138, 6005001.656540264375508 ] ] } }, +{ "type": "Feature", "properties": { "id": "270", "id_full": "consumers-121", "type": "HL", "from_node": "forks-225", "to_node": "consumers-121", "length": 6.6407, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.23903, "flow": 4.09216, "losses": 0.14687, "costs": 6300.78684, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.768994346261024, 6004952.286973678506911 ], [ 32506953.070812314748764, 6004945.775130551308393 ] ] } }, +{ "type": "Feature", "properties": { "id": "271", "id_full": "consumers-125", "type": "HL", "from_node": "forks-226", "to_node": "consumers-125", "length": 7.13528, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.15051, "flow": 3.9927, "losses": 0.15781, "costs": 6770.03818, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506908.726193338632584, 6004988.904974701814353 ], [ 32506914.885148, 6004992.507682644762099 ] ] } }, +{ "type": "Feature", "properties": { "id": "272", "id_full": "consumers-128", "type": "HL", "from_node": "forks-226", "to_node": "consumers-128", "length": 7.12829, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.47865, "flow": 3.32099, "losses": 0.15766, "costs": 6763.26615, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506908.726193338632584, 6004988.904974701814353 ], [ 32506902.582405626773834, 6004985.290228594094515 ] ] } }, +{ "type": "Feature", "properties": { "id": "273", "id_full": "consumers-126", "type": "HL", "from_node": "forks-227", "to_node": "consumers-126", "length": 7.24042, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.53083, "flow": 4.37069, "losses": 0.16014, "costs": 6869.8745, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506901.873548366129398, 6005000.619809870608151 ], [ 32506895.623841777443886, 6004996.964016184210777 ] ] } }, +{ "type": "Feature", "properties": { "id": "274", "id_full": "consumers-129", "type": "HL", "from_node": "forks-228", "to_node": "consumers-129", "length": 7.25155, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.97525, "flow": 3.81487, "losses": 0.16038, "costs": 6880.32336, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506918.21652490645647, 6004972.68092246260494 ], [ 32506924.475843712687492, 6004976.342338857240975 ] ] } }, +{ "type": "Feature", "properties": { "id": "275", "id_full": null, "type": "DL", "from_node": "forks-229", "to_node": "forks-243", "length": 8.03989, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 10.85387, "flow": 10.67604, "losses": 0.17783, "costs": 7629.91352, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506678.807402063161135, 6004925.868346692994237 ], [ 32506676.925561025738716, 6004933.684903668239713 ] ] } }, +{ "type": "Feature", "properties": { "id": "276", "id_full": "consumers-130", "type": "HL", "from_node": "forks-229", "to_node": "consumers-130", "length": 1.87885, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.67604, "flow": 10.63448, "losses": 0.04156, "costs": 1783.03146, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506678.807402063161135, 6004925.868346692994237 ], [ 32506680.634060110896826, 6004926.308115773834288 ] ] } }, +{ "type": "Feature", "properties": { "id": "277", "id_full": "consumers-131", "type": "HL", "from_node": "forks-230", "to_node": "consumers-131", "length": 8.67356, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.56079, "flow": 8.36895, "losses": 0.19184, "costs": 8230.68619, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506756.913997627794743, 6004748.952905900776386 ], [ 32506756.381893862038851, 6004757.610126166604459 ] ] } }, +{ "type": "Feature", "properties": { "id": "278", "id_full": null, "type": "DL", "from_node": "forks-231", "to_node": "forks-232", "length": 3.22783, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 110.86566, "flow": 110.79421, "losses": 0.07144, "costs": 3072.62134, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506777.753673400729895, 6004673.914529996924102 ], [ 32506778.520040564239025, 6004670.778998891822994 ] ] } }, +{ "type": "Feature", "properties": { "id": "279", "id_full": "consumers-135", "type": "HL", "from_node": "forks-231", "to_node": "consumers-135", "length": 7.50548, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.14863, "flow": 9.98263, "losses": 0.16601, "costs": 7122.59823, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506777.753673400729895, 6004673.914529996924102 ], [ 32506785.044541500508785, 6004675.696518983691931 ] ] } }, +{ "type": "Feature", "properties": { "id": "280", "id_full": "consumers-136", "type": "HL", "from_node": "forks-232", "to_node": "consumers-136", "length": 10.81873, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.5826, "flow": 6.34332, "losses": 0.23928, "costs": 10265.70014, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.520040564239025, 6004670.778998891822994 ], [ 32506768.010666660964489, 6004668.210362579673529 ] ] } }, +{ "type": "Feature", "properties": { "id": "281", "id_full": null, "type": "DL", "from_node": "forks-233", "to_node": "forks-234", "length": 5.96967, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 26.21908, "flow": 26.08703, "losses": 0.13205, "costs": 5667.92444, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506754.168573405593634, 6004682.577916230075061 ], [ 32506748.453176658600569, 6004680.854203345254064 ] ] } }, +{ "type": "Feature", "properties": { "id": "282", "id_full": null, "type": "DL", "from_node": "forks-233", "to_node": "forks-239", "length": 2.64855, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 32.76383, "flow": 32.70524, "losses": 0.05859, "costs": 2515.18203, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506754.168573405593634, 6004682.577916230075061 ], [ 32506756.704313155263662, 6004683.342672811821103 ] ] } }, +{ "type": "Feature", "properties": { "id": "283", "id_full": "consumers-132", "type": "HL", "from_node": "forks-233", "to_node": "consumers-132", "length": 11.67084, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.48616, "flow": 6.22803, "losses": 0.25813, "costs": 11074.22213, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506754.168573405593634, 6004682.577916230075061 ], [ 32506757.538471359759569, 6004671.404185398481786 ] ] } }, +{ "type": "Feature", "properties": { "id": "284", "id_full": null, "type": "DL", "from_node": "forks-234", "to_node": "forks-235", "length": 6.15418, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 19.71297, "flow": 19.57684, "losses": 0.13613, "costs": 5841.94903, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506748.453176658600569, 6004680.854203345254064 ], [ 32506742.56112327054143, 6004679.077212387695909 ] ] } }, +{ "type": "Feature", "properties": { "id": "285", "id_full": "consumers-137", "type": "HL", "from_node": "forks-234", "to_node": "consumers-137", "length": 11.86172, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.37406, "flow": 6.11171, "losses": 0.26235, "costs": 11255.30678, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506748.453176658600569, 6004680.854203345254064 ], [ 32506751.878190636634827, 6004669.497721680440009 ] ] } }, +{ "type": "Feature", "properties": { "id": "286", "id_full": null, "type": "DL", "from_node": "forks-235", "to_node": "forks-236", "length": 6.12057, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 12.72436, "flow": 12.58898, "losses": 0.13538, "costs": 5808.79154, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506742.56112327054143, 6004679.077212387695909 ], [ 32506736.701256807893515, 6004677.30992872081697 ] ] } }, +{ "type": "Feature", "properties": { "id": "287", "id_full": "consumers-138", "type": "HL", "from_node": "forks-235", "to_node": "consumers-138", "length": 11.34121, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.85248, "flow": 6.60164, "losses": 0.25084, "costs": 10761.5697, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506742.56112327054143, 6004679.077212387695909 ], [ 32506745.835843969136477, 6004668.219065302051604 ] ] } }, +{ "type": "Feature", "properties": { "id": "288", "id_full": null, "type": "DL", "from_node": "forks-236", "to_node": "forks-237", "length": 5.77552, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.4097, "flow": 6.28196, "losses": 0.12774, "costs": 5480.2617, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506736.701256807893515, 6004677.30992872081697 ], [ 32506731.171738620847464, 6004675.642275160178542 ] ] } }, +{ "type": "Feature", "properties": { "id": "289", "id_full": "consumers-139", "type": "HL", "from_node": "forks-236", "to_node": "consumers-139", "length": 11.54376, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.17929, "flow": 5.92397, "losses": 0.25532, "costs": 10953.54133, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506736.701256807893515, 6004677.30992872081697 ], [ 32506740.034462817013264, 6004666.257859108969569 ] ] } }, +{ "type": "Feature", "properties": { "id": "290", "id_full": "consumers-140", "type": "HL", "from_node": "forks-237", "to_node": "consumers-140", "length": 11.73362, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.28196, "flow": 6.02244, "losses": 0.25952, "costs": 11133.72572, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.171738620847464, 6004675.642275160178542 ], [ 32506734.559764791280031, 6004664.408435733057559 ] ] } }, +{ "type": "Feature", "properties": { "id": "291", "id_full": "consumers-141", "type": "HL", "from_node": "forks-239", "to_node": "consumers-141", "length": 6.63056, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.89518, "flow": 7.74853, "losses": 0.14665, "costs": 6291.87756, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506756.704313155263662, 6004683.342672811821103 ], [ 32506754.789770606905222, 6004689.690812552347779 ] ] } }, +{ "type": "Feature", "properties": { "id": "292", "id_full": "consumers-142", "type": "HL", "from_node": "forks-240", "to_node": "consumers-142", "length": 11.62047, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.98568, "flow": 10.72866, "losses": 0.25702, "costs": 11027.95067, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506770.973308652639389, 6004717.554045321419835 ], [ 32506759.586695671081543, 6004715.234476590529084 ] ] } }, +{ "type": "Feature", "properties": { "id": "293", "id_full": "consumers-144", "type": "HL", "from_node": "forks-242", "to_node": "consumers-144", "length": 5.6321, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 12.19481, "flow": 12.07024, "losses": 0.12457, "costs": 5345.12031, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506710.603514529764652, 6004747.567726431414485 ], [ 32506714.053161434829235, 6004752.019746305420995 ] ] } }, +{ "type": "Feature", "properties": { "id": "294", "id_full": "producers-0", "type": "GL", "from_node": "forks-243", "to_node": "producers-0", "length": 2.27026, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1461.4266, "flow": 1461.3759, "losses": 0.05073, "costs": 2250.28839, "existing": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506676.925561025738716, 6004933.684903668239713 ], [ 32506679.132756624370813, 6004934.216287404298782 ] ] } } +] +} diff --git a/tests/_files/process_geometry/out/pipes_result_02.geojson b/tests/_files/process_geometry/out/pipes_result_02.geojson new file mode 100644 index 00000000..7bd9e423 --- /dev/null +++ b/tests/_files/process_geometry/out/pipes_result_02.geojson @@ -0,0 +1,295 @@ +{ +"type": "FeatureCollection", +"name": "pipes_result_02", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::4647" } }, +"features": [ +{ "type": "Feature", "properties": { "id": "0", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-1", "to_node": "forks-173", "length": 74.06718, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1390.2717, "flow": 1390.2717, "losses": 1.65438, "costs": 2995.42398 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506654.861689653247595, 6005025.331065262667835 ], [ 32506672.19807019457221, 6004953.321366431191564 ] ] } }, +{ "type": "Feature", "properties": { "id": "1", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-1", "to_node": "forks-185", "length": 43.59186, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.33202, "flow": 13.36782, "losses": 0.96419, "costs": 18.17379 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506654.861689653247595, 6005025.331065262667835 ], [ 32506643.925446726381779, 6005067.528800801374018 ] ] } }, +{ "type": "Feature", "properties": { "id": "2", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-1", "to_node": "forks-147", "length": 38.23573, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1374.2853, "flow": 1373.4313, "losses": 0.85395, "costs": 1528.54829 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506654.861689653247595, 6005025.331065262667835 ], [ 32506674.726261701434851, 6005018.216621936298907 ], [ 32506691.422387953847647, 6005014.360785491764545 ] ] } }, +{ "type": "Feature", "properties": { "id": "3", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-2", "to_node": "forks-3", "length": 27.69976, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 80.76634, "flow": 80.15337, "losses": 0.61297, "costs": 65.07874 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506930.132400441914797, 6005038.999399862252176 ], [ 32506957.828444872051477, 6005039.452800406143069 ] ] } }, +{ "type": "Feature", "properties": { "id": "4", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-2", "to_node": "forks-62", "length": 21.231, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 102.30147, "flow": 102.30147, "losses": 0.4699, "costs": 63.18079 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506930.132400441914797, 6005038.999399862252176 ], [ 32506909.028953850269318, 6005036.675676330924034 ] ] } }, +{ "type": "Feature", "properties": { "id": "5", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-2", "to_node": "forks-115", "length": 36.70572, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 21.06523, "flow": 20.25331, "losses": 0.81192, "costs": 22.49225 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506930.132400441914797, 6005038.999399862252176 ], [ 32506926.128980439156294, 6005058.943066515028477 ], [ 32506925.048307441174984, 6005061.689670381136239 ], [ 32506923.234117347747087, 6005066.282159684225917 ], [ 32506920.500818144530058, 6005074.304099330678582 ] ] } }, +{ "type": "Feature", "properties": { "id": "6", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-3", "to_node": "forks-112", "length": 15.24458, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 69.44617, "flow": 69.10885, "losses": 0.33732, "costs": 30.79617 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506957.828444872051477, 6005039.452800406143069 ], [ 32506968.895207807421684, 6005028.968333300203085 ] ] } }, +{ "type": "Feature", "properties": { "id": "7", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-3", "to_node": "forks-205", "length": 20.16167, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.70719, "flow": 10.26126, "losses": 0.44594, "costs": 6.27964 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506957.828444872051477, 6005039.452800406143069 ], [ 32506977.857269518077374, 6005041.763435141183436 ] ] } }, +{ "type": "Feature", "properties": { "id": "8", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-4", "to_node": "forks-167", "length": 20.07747, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 287.32299, "flow": 286.87803, "losses": 0.44495, "costs": 167.80779 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.355939168483019, 6004702.74669920373708 ], [ 32506946.964905600994825, 6004697.54165405780077 ] ] } }, +{ "type": "Feature", "properties": { "id": "9", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-4", "to_node": "forks-188", "length": 46.82296, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 121.64249, "flow": 120.60604, "losses": 1.03646, "costs": 165.68264 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.355939168483019, 6004702.74669920373708 ], [ 32506953.373247094452381, 6004747.733802417293191 ] ] } }, +{ "type": "Feature", "properties": { "id": "10", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-4", "to_node": "forks-199", "length": 26.77776, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 409.55944, "flow": 409.55944, "losses": 0.59396, "costs": 319.02443 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.355939168483019, 6004702.74669920373708 ], [ 32506973.341402161866426, 6004704.626499322243035 ], [ 32506991.113808564841747, 6004712.75675640348345 ] ] } }, +{ "type": "Feature", "properties": { "id": "11", "type": "HL", "id_full": "consumers-10", "existing": 0, "from_node": "forks-12", "to_node": "consumers-10", "length": 23.68213, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.58053, "flow": 10.05672, "losses": 0.5238, "costs": 7.28888 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507016.180187117308378, 6004930.535648111253977 ], [ 32506994.70268876478076, 6004920.557657507248223 ] ] } }, +{ "type": "Feature", "properties": { "id": "12", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-12", "to_node": "forks-150", "length": 30.54884, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 40.77893, "flow": 40.1031, "losses": 0.67583, "costs": 36.23794 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507016.180187117308378, 6004930.535648111253977 ], [ 32507023.054066255688667, 6004915.480935483239591 ], [ 32507028.353193089365959, 6004902.523559094406664 ] ] } }, +{ "type": "Feature", "properties": { "id": "13", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-15", "to_node": "forks-12", "length": 82.30928, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 53.18054, "flow": 51.35946, "losses": 1.82108, "costs": 127.33106 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506983.83998479694128, 6005006.224120298400521 ], [ 32506997.676446001976728, 6004973.299755467101932 ], [ 32507001.493707738816738, 6004964.482295924797654 ], [ 32507009.032277848571539, 6004947.057481032796204 ], [ 32507011.754202701151371, 6004940.765964733436704 ], [ 32507016.180187117308378, 6004930.535648111253977 ] ] } }, +{ "type": "Feature", "properties": { "id": "14", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-205", "to_node": "forks-15", "length": 50.91836, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1.0, "flow": 1.0, "losses": 1.12614, "costs": 1.48118 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506977.857269518077374, 6005041.763435141183436 ], [ 32506988.514574155211449, 6005042.99292008113116 ], [ 32506990.210665870457888, 6005043.184641129337251 ], [ 32506984.83666018769145, 6005033.107077996246517 ], [ 32506983.146614462137222, 6005024.615053474903107 ], [ 32506983.83998479694128, 6005006.224120298400521 ] ] } }, +{ "type": "Feature", "properties": { "id": "15", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-15", "to_node": "forks-112", "length": 27.37871, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 53.91243, "flow": 53.91243, "losses": 0.60575, "costs": 42.9373 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506983.83998479694128, 6005006.224120298400521 ], [ 32506972.555892087519169, 6005025.500261910259724 ], [ 32506968.895207807421684, 6005028.968333300203085 ] ] } }, +{ "type": "Feature", "properties": { "id": "16", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-26", "to_node": "forks-23", "length": 19.48302, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 515.5476, "flow": 515.5476, "losses": 0.43248, "costs": 292.18497 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507059.691856741905212, 6004782.464862992055714 ], [ 32507055.721855498850346, 6004784.328024078160524 ], [ 32507051.015878472477198, 6004789.58362196944654 ], [ 32507049.679193664342165, 6004797.514717630110681 ] ] } }, +{ "type": "Feature", "properties": { "id": "17", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-23", "to_node": "forks-157", "length": 21.05081, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 559.23162, "flow": 559.23162, "losses": 0.46743, "costs": 342.447 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.679193664342165, 6004797.514717630110681 ], [ 32507040.76520436629653, 6004798.157553435303271 ], [ 32507036.399958070367575, 6004798.217646885663271 ], [ 32507029.144705791026354, 6004800.936656158417463 ] ] } }, +{ "type": "Feature", "properties": { "id": "18", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-23", "to_node": "forks-29", "length": 20.11878, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 43.2166, "flow": 42.7715, "losses": 0.44509, "costs": 25.2921 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.679193664342165, 6004797.514717630110681 ], [ 32507050.371553130447865, 6004801.30988694448024 ], [ 32507053.053128503262997, 6004805.67554706055671 ], [ 32507057.250238422304392, 6004808.886380589567125 ], [ 32507062.904994439333677, 6004810.397108197212219 ] ] } }, +{ "type": "Feature", "properties": { "id": "19", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-26", "to_node": "forks-34", "length": 13.21159, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.86585, "flow": 10.57363, "losses": 0.29222, "costs": 4.17591 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507059.691856741905212, 6004782.464862992055714 ], [ 32507066.510839566588402, 6004782.174897360615432 ], [ 32507072.530063845217228, 6004784.309275067411363 ] ] } }, +{ "type": "Feature", "properties": { "id": "20", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-26", "to_node": "forks-35", "length": 33.81629, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 504.24927, "flow": 503.49868, "losses": 0.75059, "costs": 496.0255 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507059.691856741905212, 6004782.464862992055714 ], [ 32507058.269206289201975, 6004774.08448775857687 ], [ 32507055.049979235976934, 6004762.886378192342818 ], [ 32507049.614296812564135, 6004750.349710370413959 ] ] } }, +{ "type": "Feature", "properties": { "id": "21", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-29", "to_node": "forks-149", "length": 26.56982, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 41.7715, "flow": 41.1837, "losses": 0.5878, "costs": 32.28506 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507062.904994439333677, 6004810.397108197212219 ], [ 32507062.226572059094906, 6004818.80764533020556 ], [ 32507056.958943579345942, 6004832.941263436339796 ], [ 32507055.788943462073803, 6004835.756441550329328 ] ] } }, +{ "type": "Feature", "properties": { "id": "22", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-34", "to_node": "forks-29", "length": 36.4431, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1.0, "flow": 1.0, "losses": 0.806, "costs": 1.0601 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507072.530063845217228, 6004784.309275067411363 ], [ 32507075.421466507017612, 6004787.996558191254735 ], [ 32507077.794186722487211, 6004793.774814426898956 ], [ 32507077.255080308765173, 6004800.672369468957186 ], [ 32507074.454373985528946, 6004805.919742610305548 ], [ 32507067.962735034525394, 6004809.770653950050473 ], [ 32507062.904994439333677, 6004810.397108197212219 ] ] } }, +{ "type": "Feature", "properties": { "id": "23", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-34", "to_node": "forks-126", "length": 35.8905, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.76764, "flow": 9.97381, "losses": 0.79383, "costs": 11.24172 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507072.530063845217228, 6004784.309275067411363 ], [ 32507078.052897065877914, 6004778.264977178536355 ], [ 32507086.104889433830976, 6004769.620989858172834 ], [ 32507097.670391768217087, 6004758.724990345537663 ] ] } }, +{ "type": "Feature", "properties": { "id": "24", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-35", "to_node": "forks-156", "length": 12.78509, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 495.44177, "flow": 495.15801, "losses": 0.28376, "costs": 184.25927 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.614296812564135, 6004750.349710370413959 ], [ 32507040.424831099808216, 6004741.460822491906583 ] ] } }, +{ "type": "Feature", "properties": { "id": "25", "type": "HL", "id_full": "consumers-26", "existing": 0, "from_node": "forks-35", "to_node": "consumers-26", "length": 19.99136, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.0569, "flow": 7.61474, "losses": 0.44216, "costs": 4.68536 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.614296812564135, 6004750.349710370413959 ], [ 32507066.040248159319162, 6004738.954864875413477 ] ] } }, +{ "type": "Feature", "properties": { "id": "26", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-62", "to_node": "forks-123", "length": 16.88733, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 112.55063, "flow": 112.55063, "losses": 0.37379, "costs": 55.2894 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506909.028953850269318, 6005036.675676330924034 ], [ 32506892.243028953671455, 6005034.82775982376188 ] ] } }, +{ "type": "Feature", "properties": { "id": "27", "type": "HL", "id_full": "consumers-3", "existing": 0, "from_node": "forks-62", "to_node": "consumers-3", "length": 11.22812, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.87538, "flow": 9.62703, "losses": 0.24834, "costs": 3.22547 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506909.028953850269318, 6005036.675676330924034 ], [ 32506911.195585753768682, 6005025.658581727184355 ] ] } }, +{ "type": "Feature", "properties": { "id": "28", "type": "HL", "id_full": "consumers-134", "existing": 0, "from_node": "forks-90", "to_node": "consumers-134", "length": 8.02778, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.45195, "flow": 11.27439, "losses": 0.17756, "costs": 2.67429 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506740.583661332726479, 6004747.206024528481066 ], [ 32506739.486436776816845, 6004755.158466172404587 ] ] } }, +{ "type": "Feature", "properties": { "id": "29", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-90", "to_node": "forks-242", "length": 32.25163, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 12.90817, "flow": 12.19481, "losses": 0.71336, "costs": 12.11014 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506740.583661332726479, 6004747.206024528481066 ], [ 32506717.303097754716873, 6004742.376555414870381 ], [ 32506710.603514529764652, 6004747.567726431414485 ] ] } }, +{ "type": "Feature", "properties": { "id": "30", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-90", "to_node": "forks-230", "length": 16.43162, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 24.72359, "flow": 24.72359, "losses": 0.36347, "costs": 11.81748 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506740.583661332726479, 6004747.206024528481066 ], [ 32506751.563101142644882, 6004748.624020637013018 ], [ 32506756.913997627794743, 6004748.952905900776386 ] ] } }, +{ "type": "Feature", "properties": { "id": "31", "type": "HL", "id_full": "consumers-143", "existing": 0, "from_node": "forks-93", "to_node": "consumers-143", "length": 5.88293, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.699, "flow": 5.56888, "losses": 0.13011, "costs": 0.97527 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506767.165194243192673, 6004734.672112413682044 ], [ 32506761.573698718100786, 6004732.843453446403146 ] ] } }, +{ "type": "Feature", "properties": { "id": "32", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-93", "to_node": "forks-230", "length": 20.95015, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 33.74783, "flow": 33.28438, "losses": 0.46345, "costs": 20.56676 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506767.165194243192673, 6004734.672112413682044 ], [ 32506762.504478130489588, 6004749.296516857109964 ], [ 32506756.913997627794743, 6004748.952905900776386 ] ] } }, +{ "type": "Feature", "properties": { "id": "33", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-93", "to_node": "forks-240", "length": 17.53757, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 39.83481, "flow": 39.83481, "losses": 0.38798, "costs": 20.32194 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506767.165194243192673, 6004734.672112413682044 ], [ 32506770.028414003551006, 6004722.192472074180841 ], [ 32506770.973308652639389, 6004717.554045321419835 ] ] } }, +{ "type": "Feature", "properties": { "id": "34", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-96", "to_node": "forks-97", "length": 12.07233, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 59.24839, "flow": 59.24839, "losses": 0.26711, "costs": 20.80657 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.079425685107708, 6004700.679925447329879 ], [ 32506774.162415158003569, 6004688.607881280593574 ] ] } }, +{ "type": "Feature", "properties": { "id": "35", "type": "HL", "id_full": "consumers-133", "existing": 0, "from_node": "forks-96", "to_node": "consumers-133", "length": 6.71778, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.78114, "flow": 7.63256, "losses": 0.14858, "costs": 1.52056 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.079425685107708, 6004700.679925447329879 ], [ 32506767.460514899343252, 6004699.53160644788295 ] ] } }, +{ "type": "Feature", "properties": { "id": "36", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-96", "to_node": "forks-240", "length": 17.1595, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 51.20014, "flow": 50.82049, "losses": 0.37965, "costs": 25.55693 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.079425685107708, 6004700.679925447329879 ], [ 32506772.276173859834671, 6004711.158364219591022 ], [ 32506770.973308652639389, 6004717.554045321419835 ] ] } }, +{ "type": "Feature", "properties": { "id": "37", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-97", "to_node": "forks-231", "length": 15.12586, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 100.64558, "flow": 100.64558, "losses": 0.33477, "costs": 44.28408 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.162415158003569, 6004688.607881280593574 ], [ 32506777.753673400729895, 6004673.914529996924102 ] ] } }, +{ "type": "Feature", "properties": { "id": "38", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-97", "to_node": "forks-239", "length": 18.23479, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 41.06242, "flow": 40.65901, "losses": 0.40341, "costs": 21.78102 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506774.162415158003569, 6004688.607881280593574 ], [ 32506756.704313155263662, 6004683.342672811821103 ] ] } }, +{ "type": "Feature", "properties": { "id": "39", "type": "HL", "id_full": "consumers-0", "existing": 0, "from_node": "forks-112", "to_node": "consumers-0", "length": 17.57765, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 15.19642, "flow": 14.80763, "losses": 0.3888, "costs": 7.77025 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506968.895207807421684, 6005028.968333300203085 ], [ 32506956.806172829121351, 6005016.20788654871285 ] ] } }, +{ "type": "Feature", "properties": { "id": "40", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-113", "to_node": "forks-114", "length": 20.37652, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 316.9077, "flow": 316.9077, "losses": 0.45168, "costs": 187.8433 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506823.60973072052002, 6005027.680673941038549 ], [ 32506803.475475002080202, 6005024.547870636917651 ] ] } }, +{ "type": "Feature", "properties": { "id": "41", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-113", "to_node": "forks-116", "length": 15.16891, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 285.90167, "flow": 285.5655, "losses": 0.33617, "costs": 126.1548 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506823.60973072052002, 6005027.680673941038549 ], [ 32506838.698579102754593, 6005029.237066026777029 ] ] } }, +{ "type": "Feature", "properties": { "id": "42", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-113", "to_node": "forks-206", "length": 15.92659, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 30.55435, "flow": 30.20204, "losses": 0.35232, "costs": 14.15561 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506823.60973072052002, 6005027.680673941038549 ], [ 32506822.627499092370272, 6005043.576945947483182 ] ] } }, +{ "type": "Feature", "properties": { "id": "43", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-114", "to_node": "forks-139", "length": 20.0046, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 325.91693, "flow": 325.91693, "losses": 0.44346, "costs": 189.65735 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506803.475475002080202, 6005024.547870636917651 ], [ 32506783.708717502653599, 6005021.472248470410705 ] ] } }, +{ "type": "Feature", "properties": { "id": "44", "type": "HL", "id_full": "consumers-1", "existing": 0, "from_node": "forks-114", "to_node": "consumers-1", "length": 9.8682, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.56577, "flow": 8.34751, "losses": 0.21826, "costs": 2.45888 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506803.475475002080202, 6005024.547870636917651 ], [ 32506801.958281926810741, 6005034.298739239573479 ] ] } }, +{ "type": "Feature", "properties": { "id": "45", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-115", "to_node": "forks-202", "length": 18.08834, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.40639, "flow": 10.00631, "losses": 0.40008, "costs": 5.4756 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.500818144530058, 6005074.304099330678582 ], [ 32506914.666960474103689, 6005091.425845111720264 ] ] } }, +{ "type": "Feature", "properties": { "id": "46", "type": "HL", "id_full": "consumers-4", "existing": 0, "from_node": "forks-115", "to_node": "consumers-4", "length": 11.44753, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.84692, "flow": 9.59372, "losses": 0.2532, "costs": 3.27903 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.500818144530058, 6005074.304099330678582 ], [ 32506909.665018312633038, 6005070.612039260566235 ] ] } }, +{ "type": "Feature", "properties": { "id": "47", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-116", "to_node": "forks-125", "length": 12.43627, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 275.5286, "flow": 275.25301, "losses": 0.27559, "costs": 99.67577 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506838.698579102754593, 6005029.237066026777029 ], [ 32506851.069212395697832, 6005030.513078302145004 ] ] } }, +{ "type": "Feature", "properties": { "id": "48", "type": "HL", "id_full": "consumers-5", "existing": 0, "from_node": "forks-116", "to_node": "consumers-5", "length": 10.69132, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.0369, "flow": 9.80043, "losses": 0.23647, "costs": 3.1215 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506838.698579102754593, 6005029.237066026777029 ], [ 32506839.795552812516689, 6005018.602168739773333 ] ] } }, +{ "type": "Feature", "properties": { "id": "49", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-117", "to_node": "forks-118", "length": 6.7832, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 4.03633, "flow": 4.03633, "losses": 0.15002, "costs": 0.79644 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506978.648154817521572, 6004957.660532805137336 ], [ 32506971.996567249298096, 6004956.330777766183019 ] ] } }, +{ "type": "Feature", "properties": { "id": "50", "type": "HL", "id_full": "consumers-6", "existing": 0, "from_node": "forks-117", "to_node": "consumers-6", "length": 7.20946, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.8863, "flow": 3.72685, "losses": 0.15945, "costs": 0.81503 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506978.648154817521572, 6004957.660532805137336 ], [ 32506979.704191863536835, 6004950.528838414698839 ] ] } }, +{ "type": "Feature", "properties": { "id": "51", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-118", "to_node": "forks-221", "length": 5.37555, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 12.39846, "flow": 12.39846, "losses": 0.1189, "costs": 1.93876 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506971.996567249298096, 6004956.330777766183019 ], [ 32506966.725317884236574, 6004955.276973642408848 ] ] } }, +{ "type": "Feature", "properties": { "id": "52", "type": "HL", "id_full": "consumers-9", "existing": 0, "from_node": "forks-118", "to_node": "consumers-9", "length": 7.39944, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.36049, "flow": 4.19684, "losses": 0.16365, "costs": 0.93857 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506971.996567249298096, 6004956.330777766183019 ], [ 32506970.546008326113224, 6004963.586640256457031 ] ] } }, +{ "type": "Feature", "properties": { "id": "53", "type": "HL", "id_full": "consumers-124", "existing": 0, "from_node": "forks-118", "to_node": "consumers-124", "length": 7.09309, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.88275, "flow": 3.72587, "losses": 0.15688, "costs": 0.80114 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506971.996567249298096, 6004956.330777766183019 ], [ 32506973.918310679495335, 6004949.502978356555104 ] ] } }, +{ "type": "Feature", "properties": { "id": "54", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-119", "to_node": "forks-209", "length": 14.77672, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 6.25655, "flow": 6.25655, "losses": 0.32682, "costs": 2.68934 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506820.38668043166399, 6005079.841979512013495 ], [ 32506821.297996897250414, 6005065.09338659979403 ] ] } }, +{ "type": "Feature", "properties": { "id": "55", "type": "HL", "id_full": "consumers-11", "existing": 0, "from_node": "forks-119", "to_node": "consumers-11", "length": 7.40951, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.01623, "flow": 2.85235, "losses": 0.16388, "costs": 0.65011 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506820.38668043166399, 6005079.841979512013495 ], [ 32506812.991277109831572, 6005079.385017084889114 ] ] } }, +{ "type": "Feature", "properties": { "id": "56", "type": "HL", "id_full": "consumers-13", "existing": 0, "from_node": "forks-119", "to_node": "consumers-13", "length": 6.90747, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.9135, "flow": 2.76073, "losses": 0.15277, "costs": 0.58542 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506820.38668043166399, 6005079.841979512013495 ], [ 32506827.24805112183094, 6005080.638645489700139 ] ] } }, +{ "type": "Feature", "properties": { "id": "57", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-120", "to_node": "forks-121", "length": 2.86595, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 46.63315, "flow": 46.63315, "losses": 0.06341, "costs": 3.88772 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506942.140576533973217, 6004950.362104319036007 ], [ 32506939.293046623468399, 6004950.686475987546146 ] ] } }, +{ "type": "Feature", "properties": { "id": "58", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-120", "to_node": "forks-222", "length": 4.41776, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 42.38101, "flow": 42.28328, "losses": 0.09773, "costs": 5.44635 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506942.140576533973217, 6004950.362104319036007 ], [ 32506946.472613293677568, 6004951.228145343251526 ] ] } }, +{ "type": "Feature", "properties": { "id": "59", "type": "HL", "id_full": "consumers-118", "existing": 0, "from_node": "forks-120", "to_node": "consumers-118", "length": 6.539, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.18873, "flow": 4.04411, "losses": 0.14462, "costs": 0.79676 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506942.140576533973217, 6004950.362104319036007 ], [ 32506942.823230747133493, 6004943.85883572883904 ] ] } }, +{ "type": "Feature", "properties": { "id": "60", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-121", "to_node": "forks-122", "length": 6.93351, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 51.00249, "flow": 51.00249, "losses": 0.1534, "costs": 10.28673 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506939.293046623468399, 6004950.686475987546146 ], [ 32506932.404087860137224, 6004951.471220351755619 ] ] } }, +{ "type": "Feature", "properties": { "id": "61", "type": "HL", "id_full": "consumers-12", "existing": 0, "from_node": "forks-121", "to_node": "consumers-12", "length": 7.69837, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.21594, "flow": 4.04568, "losses": 0.17027, "costs": 0.94412 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506939.293046623468399, 6004950.686475987546146 ], [ 32506938.421733990311623, 6004943.037568801082671 ] ] } }, +{ "type": "Feature", "properties": { "id": "62", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-122", "to_node": "forks-220", "length": 6.89221, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 55.2649, "flow": 55.2649, "losses": 0.15249, "costs": 11.08002 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.404087860137224, 6004951.471220351755619 ], [ 32506927.96684343740344, 6004956.74506373051554 ] ] } }, +{ "type": "Feature", "properties": { "id": "63", "type": "HL", "id_full": "consumers-47", "existing": 0, "from_node": "forks-122", "to_node": "consumers-47", "length": 7.92036, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.10992, "flow": 3.93474, "losses": 0.17518, "costs": 0.94692 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.404087860137224, 6004951.471220351755619 ], [ 32506925.748231425881386, 6004947.178000306710601 ] ] } }, +{ "type": "Feature", "properties": { "id": "64", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-123", "to_node": "forks-124", "length": 9.81052, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 124.1657, "flow": 124.1657, "losses": 0.21717, "costs": 35.43452 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506892.243028953671455, 6005034.82775982376188 ], [ 32506882.491420675069094, 6005033.754231970757246 ] ] } }, +{ "type": "Feature", "properties": { "id": "65", "type": "HL", "id_full": "consumers-16", "existing": 0, "from_node": "forks-123", "to_node": "consumers-16", "length": 9.93002, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.3979, "flow": 11.17826, "losses": 0.21963, "costs": 3.29236 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506892.243028953671455, 6005034.82775982376188 ], [ 32506891.156424593180418, 6005044.698151220567524 ] ] } }, +{ "type": "Feature", "properties": { "id": "66", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-124", "to_node": "forks-204", "length": 18.61466, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 260.42067, "flow": 260.42067, "losses": 0.41246, "costs": 141.01438 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506882.491420675069094, 6005033.754231970757246 ], [ 32506863.975002709776163, 6005031.844291221350431 ] ] } }, +{ "type": "Feature", "properties": { "id": "67", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-124", "to_node": "forks-219", "length": 28.43287, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 135.84251, "flow": 135.21307, "losses": 0.62944, "costs": 112.35416 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506882.491420675069094, 6005033.754231970757246 ], [ 32506896.847592517733574, 6005009.211856372654438 ] ] } }, +{ "type": "Feature", "properties": { "id": "68", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-125", "to_node": "forks-204", "length": 12.97426, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 267.57456, "flow": 267.28707, "losses": 0.28749, "costs": 100.98582 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506851.069212395697832, 6005030.513078302145004 ], [ 32506863.975002709776163, 6005031.844291221350431 ] ] } }, +{ "type": "Feature", "properties": { "id": "69", "type": "HL", "id_full": "consumers-18", "existing": 0, "from_node": "forks-125", "to_node": "consumers-18", "length": 10.17014, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.67845, "flow": 7.45351, "losses": 0.22494, "costs": 2.27161 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506851.069212395697832, 6005030.513078302145004 ], [ 32506850.025713745504618, 6005040.629547707736492 ] ] } }, +{ "type": "Feature", "properties": { "id": "70", "type": "HL", "id_full": "consumers-22", "existing": 0, "from_node": "forks-126", "to_node": "consumers-22", "length": 11.01213, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.97381, "flow": 9.73024, "losses": 0.24357, "costs": 3.19496 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507097.670391768217087, 6004758.724990345537663 ], [ 32507090.119091622531414, 6004750.709701854735613 ] ] } }, +{ "type": "Feature", "properties": { "id": "71", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-127", "to_node": "forks-128", "length": 3.25113, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 905.65354, "flow": 905.58117, "losses": 0.07237, "costs": 85.65049 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506795.28539727628231, 6004969.131627677939832 ], [ 32506797.956073485314846, 6004967.277614421211183 ] ] } }, +{ "type": "Feature", "properties": { "id": "72", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-127", "to_node": "forks-172", "length": 9.85731, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 912.88017, "flow": 912.88017, "losses": 0.21943, "costs": 261.76105 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506795.28539727628231, 6004969.131627677939832 ], [ 32506787.188013795763254, 6004974.752921739593148 ] ] } }, +{ "type": "Feature", "properties": { "id": "73", "type": "HL", "id_full": "consumers-23", "existing": 0, "from_node": "forks-127", "to_node": "consumers-23", "length": 4.71974, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.00721, "flow": 6.90282, "losses": 0.10439, "costs": 0.96205 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506795.28539727628231, 6004969.131627677939832 ], [ 32506797.976906735450029, 6004973.008703669533134 ] ] } }, +{ "type": "Feature", "properties": { "id": "74", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-128", "to_node": "forks-144", "length": 12.87579, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 897.91063, "flow": 897.62404, "losses": 0.28659, "costs": 336.30992 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506797.956073485314846, 6004967.277614421211183 ], [ 32506808.533012978732586, 6004959.934984881430864 ] ] } }, +{ "type": "Feature", "properties": { "id": "75", "type": "HL", "id_full": "consumers-21", "existing": 0, "from_node": "forks-128", "to_node": "consumers-21", "length": 7.39864, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.67053, "flow": 7.50689, "losses": 0.16364, "costs": 1.65086 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506797.956073485314846, 6004967.277614421211183 ], [ 32506793.736878149211407, 6004961.199931551702321 ] ] } }, +{ "type": "Feature", "properties": { "id": "76", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-129", "to_node": "forks-197", "length": 7.96555, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 17.41814, "flow": 17.41814, "losses": 0.17619, "costs": 4.03599 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507031.698386561125517, 6004894.343922664411366 ] ] } }, +{ "type": "Feature", "properties": { "id": "77", "type": "HL", "id_full": "consumers-24", "existing": 0, "from_node": "forks-129", "to_node": "consumers-24", "length": 11.13199, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.77146, "flow": 9.52525, "losses": 0.24622, "costs": 3.16421 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507024.409988515079021, 6004882.757273597642779 ] ] } }, +{ "type": "Feature", "properties": { "id": "78", "type": "HL", "id_full": "consumers-99", "existing": 0, "from_node": "forks-129", "to_node": "consumers-99", "length": 7.88742, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.47048, "flow": 6.29603, "losses": 0.17445, "costs": 1.48458 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507042.319477148354053, 6004889.059707331471145 ] ] } }, +{ "type": "Feature", "properties": { "id": "79", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-129", "to_node": "forks-198", "length": 40.06464, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1.0, "flow": 0.11391, "losses": 0.88609, "costs": 1.16545 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507034.713617399334908, 6004886.971107837744057 ], [ 32507047.633258003741503, 6004855.380120976828039 ], [ 32507049.910564471036196, 6004849.900614405050874 ] ] } }, +{ "type": "Feature", "properties": { "id": "80", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-131", "to_node": "forks-132", "length": 26.6176, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 438.90739, "flow": 438.90739, "losses": 0.59053, "costs": 339.84006 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507015.504366304725409, 6004726.402119278907776 ], [ 32507038.577310808002949, 6004739.673732662573457 ] ] } }, +{ "type": "Feature", "properties": { "id": "81", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-131", "to_node": "forks-203", "length": 18.08797, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 428.84013, "flow": 428.43886, "losses": 0.40127, "costs": 225.64105 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507015.504366304725409, 6004726.402119278907776 ], [ 32506999.825161132961512, 6004717.383402610197663 ] ] } }, +{ "type": "Feature", "properties": { "id": "82", "type": "HL", "id_full": "consumers-27", "existing": 0, "from_node": "forks-131", "to_node": "consumers-27", "length": 13.76733, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.47673, "flow": 9.17222, "losses": 0.3045, "costs": 3.79525 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507015.504366304725409, 6004726.402119278907776 ], [ 32507022.368798281997442, 6004714.468177750706673 ] ] } }, +{ "type": "Feature", "properties": { "id": "83", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-132", "to_node": "forks-156", "length": 2.57041, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 450.70323, "flow": 450.70323, "losses": 0.05703, "costs": 33.69972 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507038.577310808002949, 6004739.673732662573457 ], [ 32507040.424831099808216, 6004741.460822491906583 ] ] } }, +{ "type": "Feature", "properties": { "id": "84", "type": "HL", "id_full": "consumers-41", "existing": 0, "from_node": "forks-132", "to_node": "consumers-41", "length": 17.95077, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.73881, "flow": 11.34177, "losses": 0.39704, "costs": 6.12971 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507038.577310808002949, 6004739.673732662573457 ], [ 32507049.646118275821209, 6004725.541791188530624 ] ] } }, +{ "type": "Feature", "properties": { "id": "85", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-133", "to_node": "forks-134", "length": 19.13128, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.69029, "flow": 8.26715, "losses": 0.42314, "costs": 4.83628 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506950.185454104095697, 6004758.780014674179256 ], [ 32506944.880887020379305, 6004777.16118751745671 ] ] } }, +{ "type": "Feature", "properties": { "id": "86", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-133", "to_node": "forks-188", "length": 11.49699, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 17.78282, "flow": 17.78282, "losses": 0.2543, "costs": 5.94727 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506950.185454104095697, 6004758.780014674179256 ], [ 32506953.373247094452381, 6004747.733802417293191 ] ] } }, +{ "type": "Feature", "properties": { "id": "87", "type": "HL", "id_full": "consumers-29", "existing": 0, "from_node": "forks-133", "to_node": "consumers-29", "length": 12.45841, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.83822, "flow": 8.56267, "losses": 0.27555, "costs": 3.20303 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506950.185454104095697, 6004758.780014674179256 ], [ 32506938.215515997260809, 6004755.325646433979273 ] ] } }, +{ "type": "Feature", "properties": { "id": "88", "type": "HL", "id_full": "consumers-20", "existing": 0, "from_node": "forks-134", "to_node": "consumers-20", "length": 12.11137, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.26715, "flow": 7.99927, "losses": 0.26788, "costs": 2.91261 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506944.880887020379305, 6004777.16118751745671 ], [ 32506932.925440527498722, 6004775.224034184589982 ] ] } }, +{ "type": "Feature", "properties": { "id": "89", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-135", "to_node": "forks-136", "length": 15.51376, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1310.2277, "flow": 1309.8814, "losses": 0.34632, "costs": 591.28467 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.285512860864401, 6005005.676744327880442 ], [ 32506746.461005732417107, 6005002.454771280288696 ] ] } }, +{ "type": "Feature", "properties": { "id": "90", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-135", "to_node": "forks-151", "length": 10.14912, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1316.2864, "flow": 1316.2864, "losses": 0.22657, "costs": 388.60783 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.285512860864401, 6005005.676744327880442 ], [ 32506721.357687663286924, 6005007.784562867134809 ] ] } }, +{ "type": "Feature", "properties": { "id": "91", "type": "HL", "id_full": "consumers-30", "existing": 0, "from_node": "forks-135", "to_node": "consumers-30", "length": 12.94081, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.83207, "flow": 5.54586, "losses": 0.28622, "costs": 2.19542 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.285512860864401, 6005005.676744327880442 ], [ 32506733.973123203963041, 6005018.335388888604939 ] ] } }, +{ "type": "Feature", "properties": { "id": "92", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-136", "to_node": "forks-164", "length": 16.33399, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 956.35122, "flow": 955.9875, "losses": 0.36372, "costs": 454.40448 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506746.461005732417107, 6005002.454771280288696 ], [ 32506760.00166030600667, 6004993.319673928432167 ] ] } }, +{ "type": "Feature", "properties": { "id": "93", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-136", "to_node": "forks-171", "length": 15.14272, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 353.53016, "flow": 353.19442, "losses": 0.33575, "costs": 155.72671 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506746.461005732417107, 6005002.454771280288696 ], [ 32506755.713424861431122, 6005014.442041280679405 ] ] } }, +{ "type": "Feature", "properties": { "id": "94", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-137", "to_node": "forks-159", "length": 10.9107, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 595.12873, "flow": 595.12873, "losses": 0.24233, "costs": 188.88459 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507012.298958115279675, 6004811.175051878206432 ], [ 32507003.27022797614336, 6004817.300857891328633 ] ] } }, +{ "type": "Feature", "properties": { "id": "95", "type": "HL", "id_full": "consumers-31", "existing": 0, "from_node": "forks-137", "to_node": "consumers-31", "length": 8.40283, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 26.3961, "flow": 26.21022, "losses": 0.18588, "costs": 6.45206 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507012.298958115279675, 6004811.175051878206432 ], [ 32507007.581197116523981, 6004804.22161736804992 ] ] } }, +{ "type": "Feature", "properties": { "id": "96", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-137", "to_node": "forks-157", "length": 19.80602, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 568.49029, "flow": 568.05047, "losses": 0.43982, "costs": 327.53149 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507012.298958115279675, 6004811.175051878206432 ], [ 32507025.222955066710711, 6004802.406388177536428 ], [ 32507029.144705791026354, 6004800.936656158417463 ] ] } }, +{ "type": "Feature", "properties": { "id": "97", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-139", "to_node": "forks-165", "length": 14.06143, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 330.40148, "flow": 330.40148, "losses": 0.31172, "costs": 135.14637 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506783.708717502653599, 6005021.472248470410705 ], [ 32506769.814468886703253, 6005019.310363343916833 ] ] } }, +{ "type": "Feature", "properties": { "id": "98", "type": "HL", "id_full": "consumers-32", "existing": 0, "from_node": "forks-139", "to_node": "consumers-32", "length": 20.81761, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.17283, "flow": 3.7124, "losses": 0.46042, "costs": 2.52694 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506783.708717502653599, 6005021.472248470410705 ], [ 32506780.508098892867565, 6005042.04234728962183 ] ] } }, +{ "type": "Feature", "properties": { "id": "99", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-140", "to_node": "forks-141", "length": 4.3681, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 886.10833, "flow": 886.01111, "losses": 0.09722, "costs": 112.59315 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506813.553776793181896, 6004956.449514558538795 ], [ 32506817.141993094235659, 6004953.958534721285105 ] ] } }, +{ "type": "Feature", "properties": { "id": "100", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-140", "to_node": "forks-144", "length": 6.112, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 890.38484, "flow": 890.38484, "losses": 0.13604, "costs": 158.3048 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506813.553776793181896, 6004956.449514558538795 ], [ 32506808.533012978732586, 6004959.934984881430864 ] ] } }, +{ "type": "Feature", "properties": { "id": "101", "type": "HL", "id_full": "consumers-33", "existing": 0, "from_node": "forks-140", "to_node": "consumers-33", "length": 4.95488, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.14048, "flow": 4.03089, "losses": 0.10959, "costs": 0.59678 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506813.553776793181896, 6004956.449514558538795 ], [ 32506816.3793770596385, 6004960.519746195524931 ] ] } }, +{ "type": "Feature", "properties": { "id": "102", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-141", "to_node": "forks-193", "length": 19.61253, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 876.35309, "flow": 875.91661, "losses": 0.43648, "costs": 499.97191 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506817.141993094235659, 6004953.958534721285105 ], [ 32506832.823352623730898, 6004942.179470105096698 ] ] } }, +{ "type": "Feature", "properties": { "id": "103", "type": "HL", "id_full": "consumers-48", "existing": 0, "from_node": "forks-141", "to_node": "consumers-48", "length": 8.81443, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.65802, "flow": 9.46306, "losses": 0.19496, "costs": 2.47637 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506817.141993094235659, 6004953.958534721285105 ], [ 32506812.726330753415823, 6004946.329892166890204 ] ] } }, +{ "type": "Feature", "properties": { "id": "104", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-142", "to_node": "forks-143", "length": 39.61135, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 17.5837, "flow": 17.5837, "losses": 0.87617, "costs": 20.26109 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.177181214094162, 6004727.085611203685403 ], [ 32506829.537949100136757, 6004688.366671880707145 ] ] } }, +{ "type": "Feature", "properties": { "id": "105", "type": "HL", "id_full": "consumers-28", "existing": 0, "from_node": "forks-142", "to_node": "consumers-28", "length": 8.19113, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 16.70754, "flow": 16.52635, "losses": 0.18118, "costs": 3.98097 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.177181214094162, 6004727.085611203685403 ], [ 32506824.224487852305174, 6004734.688806956633925 ] ] } }, +{ "type": "Feature", "properties": { "id": "106", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-143", "to_node": "forks-162", "length": 6.78776, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 32.35362, "flow": 32.35362, "losses": 0.15016, "costs": 6.38825 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506829.537949100136757, 6004688.366671880707145 ], [ 32506830.970641527324915, 6004681.731834987178445 ] ] } }, +{ "type": "Feature", "properties": { "id": "107", "type": "HL", "id_full": "consumers-35", "existing": 0, "from_node": "forks-143", "to_node": "consumers-35", "length": 13.13322, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.61976, "flow": 14.32927, "losses": 0.29049, "costs": 5.58527 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506829.537949100136757, 6004688.366671880707145 ], [ 32506816.700609989464283, 6004685.594643141143024 ] ] } }, +{ "type": "Feature", "properties": { "id": "108", "type": "HL", "id_full": "consumers-36", "existing": 0, "from_node": "forks-144", "to_node": "consumers-36", "length": 7.72984, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.2392, "flow": 7.06824, "losses": 0.17097, "costs": 1.62777 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506808.533012978732586, 6004959.934984881430864 ], [ 32506804.124945797026157, 6004953.58523516356945 ] ] } }, +{ "type": "Feature", "properties": { "id": "109", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-145", "to_node": "forks-146", "length": 14.87547, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 84.47933, "flow": 84.15014, "losses": 0.32919, "costs": 36.55561 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506905.58015414327383, 6004686.432937291450799 ], [ 32506901.362411059439182, 6004700.697937679477036 ] ] } }, +{ "type": "Feature", "properties": { "id": "110", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-145", "to_node": "forks-167", "length": 42.84975, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 278.77562, "flow": 278.77562, "losses": 0.94957, "costs": 347.48489 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506905.58015414327383, 6004686.432937291450799 ], [ 32506946.964905600994825, 6004697.54165405780077 ] ] } }, +{ "type": "Feature", "properties": { "id": "111", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-145", "to_node": "forks-195", "length": 7.24456, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 193.34672, "flow": 193.18627, "losses": 0.16045, "costs": 40.74571 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506905.58015414327383, 6004686.432937291450799 ], [ 32506898.579563789069653, 6004684.568682798184454 ] ] } }, +{ "type": "Feature", "properties": { "id": "112", "type": "HL", "id_full": "consumers-38", "existing": 0, "from_node": "forks-146", "to_node": "consumers-38", "length": 4.02159, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.32682, "flow": 13.23787, "losses": 0.08895, "costs": 1.55904 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506901.362411059439182, 6004700.697937679477036 ], [ 32506905.218965120613575, 6004701.838207835331559 ] ] } }, +{ "type": "Feature", "properties": { "id": "113", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-180", "to_node": "forks-146", "length": 46.18249, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 70.82332, "flow": 70.82332, "losses": 1.02191, "costs": 95.1451 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.853212911635637, 6004719.588307393714786 ], [ 32506894.227891247719526, 6004724.813225808553398 ], [ 32506896.188764546066523, 6004718.19593792874366 ], [ 32506901.362411059439182, 6004700.697937679477036 ] ] } }, +{ "type": "Feature", "properties": { "id": "114", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-147", "to_node": "forks-148", "length": 12.15054, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1354.5105, "flow": 1354.2392, "losses": 0.27133, "costs": 478.75203 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506691.422387953847647, 6005014.360785491764545 ], [ 32506703.2613147161901, 6005011.626680312678218 ] ] } }, +{ "type": "Feature", "properties": { "id": "115", "type": "HL", "id_full": "consumers-39", "existing": 0, "from_node": "forks-147", "to_node": "consumers-39", "length": 11.00586, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.90212, "flow": 7.65869, "losses": 0.24342, "costs": 2.52988 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506691.422387953847647, 6005014.360785491764545 ], [ 32506688.945857249200344, 6005003.637179887853563 ] ] } }, +{ "type": "Feature", "properties": { "id": "116", "type": "HL", "id_full": "consumers-67", "existing": 0, "from_node": "forks-147", "to_node": "consumers-67", "length": 4.73785, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.01869, "flow": 10.9139, "losses": 0.10479, "costs": 1.5186 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506691.422387953847647, 6005014.360785491764545 ], [ 32506692.036491487175226, 6005019.058664955198765 ] ] } }, +{ "type": "Feature", "properties": { "id": "117", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-148", "to_node": "forks-155", "length": 4.5999, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1347.5929, "flow": 1347.4902, "losses": 0.10271, "costs": 180.31849 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506703.2613147161901, 6005011.626680312678218 ], [ 32506707.760920882225037, 6005010.671349904499948 ] ] } }, +{ "type": "Feature", "properties": { "id": "118", "type": "HL", "id_full": "consumers-25", "existing": 0, "from_node": "forks-148", "to_node": "consumers-25", "length": 5.50895, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.64629, "flow": 6.52445, "losses": 0.12184, "costs": 1.06508 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506703.2613147161901, 6005011.626680312678218 ], [ 32506703.684640545397997, 6005017.119344805367291 ] ] } }, +{ "type": "Feature", "properties": { "id": "119", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-149", "to_node": "forks-198", "length": 15.31708, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.10705, "flow": 6.76827, "losses": 0.33878, "costs": 3.16663 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507055.788943462073803, 6004835.756441550329328 ], [ 32507049.910564471036196, 6004849.900614405050874 ] ] } }, +{ "type": "Feature", "properties": { "id": "120", "type": "HL", "id_full": "consumers-42", "existing": 0, "from_node": "forks-149", "to_node": "consumers-42", "length": 9.33892, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 34.07666, "flow": 33.87006, "losses": 0.20659, "costs": 9.25735 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507055.788943462073803, 6004835.756441550329328 ], [ 32507047.165152184665203, 6004832.17235685326159 ] ] } }, +{ "type": "Feature", "properties": { "id": "121", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-150", "to_node": "forks-197", "length": 8.83724, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 29.24332, "flow": 29.04783, "losses": 0.19549, "costs": 7.51754 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507028.353193089365959, 6004902.523559094406664 ], [ 32507031.698386561125517, 6004894.343922664411366 ] ] } }, +{ "type": "Feature", "properties": { "id": "122", "type": "HL", "id_full": "consumers-44", "existing": 0, "from_node": "forks-150", "to_node": "consumers-44", "length": 13.85068, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.85979, "flow": 10.55344, "losses": 0.30635, "costs": 4.37548 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507028.353193089365959, 6004902.523559094406664 ], [ 32507015.533176727592945, 6004897.280607845634222 ] ] } }, +{ "type": "Feature", "properties": { "id": "123", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-151", "to_node": "forks-170", "length": 9.33062, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1333.7777, "flow": 1333.7777, "losses": 0.20833, "costs": 362.01505 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506721.357687663286924, 6005007.784562867134809 ], [ 32506712.230517815798521, 6005009.722390883602202 ] ] } }, +{ "type": "Feature", "properties": { "id": "124", "type": "HL", "id_full": "consumers-45", "existing": 0, "from_node": "forks-151", "to_node": "consumers-45", "length": 9.75886, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.08761, "flow": 6.87177, "losses": 0.21584, "costs": 2.01202 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506721.357687663286924, 6005007.784562867134809 ], [ 32506723.384454604238272, 6005017.330635040067136 ] ] } }, +{ "type": "Feature", "properties": { "id": "125", "type": "HL", "id_full": "consumers-69", "existing": 0, "from_node": "forks-151", "to_node": "consumers-69", "length": 7.52883, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.19543, "flow": 10.02891, "losses": 0.16652, "costs": 2.23288 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506721.357687663286924, 6005007.784562867134809 ], [ 32506720.317849267274141, 6005000.327882694080472 ] ] } }, +{ "type": "Feature", "properties": { "id": "126", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-153", "to_node": "forks-182", "length": 27.40495, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 659.61666, "flow": 659.0077, "losses": 0.60896, "costs": 525.83979 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506963.536328297108412, 6004844.259484170004725 ], [ 32506986.214231241494417, 6004828.872997689992189 ] ] } }, +{ "type": "Feature", "properties": { "id": "127", "type": "HL", "id_full": "consumers-46", "existing": 0, "from_node": "forks-153", "to_node": "consumers-46", "length": 5.44709, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.52533, "flow": 8.40486, "losses": 0.12048, "costs": 1.35086 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506963.536328297108412, 6004844.259484170004725 ], [ 32506966.594593238085508, 6004848.767013267613947 ] ] } }, +{ "type": "Feature", "properties": { "id": "128", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-153", "to_node": "forks-161", "length": 12.25663, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 668.41436, "flow": 668.41436, "losses": 0.27237, "costs": 238.31398 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506963.536328297108412, 6004844.259484170004725 ], [ 32506959.887568239122629, 6004846.735092141665518 ], [ 32506953.613189354538918, 6004851.448096403852105 ] ] } }, +{ "type": "Feature", "properties": { "id": "129", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-154", "to_node": "forks-194", "length": 17.49648, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 126.3727, "flow": 126.3727, "losses": 0.38731, "costs": 64.31861 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506805.844013646245003, 6004659.67782184202224 ], [ 32506822.721852354705334, 6004664.289245317690074 ] ] } }, +{ "type": "Feature", "properties": { "id": "130", "type": "HL", "id_full": "consumers-49", "existing": 0, "from_node": "forks-154", "to_node": "consumers-49", "length": 8.51419, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.59436, "flow": 7.40605, "losses": 0.18831, "costs": 1.88091 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506805.844013646245003, 6004659.67782184202224 ], [ 32506803.599988739937544, 6004667.890967009589076 ] ] } }, +{ "type": "Feature", "properties": { "id": "131", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-232", "to_node": "forks-154", "length": 42.59109, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 118.39102, "flow": 118.39102, "losses": 0.94276, "costs": 146.6798 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.520040564239025, 6004670.778998891822994 ], [ 32506782.945804461836815, 6004652.67133320029825 ], [ 32506799.387847676873207, 6004657.913845078088343 ], [ 32506805.844013646245003, 6004659.67782184202224 ] ] } }, +{ "type": "Feature", "properties": { "id": "132", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-155", "to_node": "forks-170", "length": 4.56923, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 1340.2826, "flow": 1340.1806, "losses": 0.10202, "costs": 178.14424 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506707.760920882225037, 6005010.671349904499948 ], [ 32506712.230517815798521, 6005009.722390883602202 ] ] } }, +{ "type": "Feature", "properties": { "id": "133", "type": "HL", "id_full": "consumers-50", "existing": 0, "from_node": "forks-155", "to_node": "consumers-50", "length": 6.91795, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.20761, "flow": 7.0546, "losses": 0.15301, "costs": 1.45045 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506707.760920882225037, 6005010.671349904499948 ], [ 32506706.324166893959045, 6005003.904238703660667 ] ] } }, +{ "type": "Feature", "properties": { "id": "134", "type": "HL", "id_full": "consumers-51", "existing": 0, "from_node": "forks-156", "to_node": "consumers-51", "length": 6.30456, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 44.45478, "flow": 44.3153, "losses": 0.13948, "costs": 8.15278 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507040.424831099808216, 6004741.460822491906583 ], [ 32507036.04156120121479, 6004745.992312707006931 ] ] } }, +{ "type": "Feature", "properties": { "id": "135", "type": "HL", "id_full": "consumers-52", "existing": 0, "from_node": "forks-157", "to_node": "consumers-52", "length": 15.86307, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.81885, "flow": 8.46799, "losses": 0.35086, "costs": 4.06942 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507029.144705791026354, 6004800.936656158417463 ], [ 32507023.577880349010229, 6004786.082450474612415 ] ] } }, +{ "type": "Feature", "properties": { "id": "136", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-158", "to_node": "forks-159", "length": 7.86613, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 604.48583, "flow": 604.31111, "losses": 0.17472, "costs": 138.31848 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506996.760915204882622, 6004821.717291510663927 ], [ 32507003.27022797614336, 6004817.300857891328633 ] ] } }, +{ "type": "Feature", "properties": { "id": "137", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-158", "to_node": "forks-182", "length": 12.74506, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 613.57019, "flow": 613.57019, "losses": 0.28311, "costs": 227.47785 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506996.760915204882622, 6004821.717291510663927 ], [ 32506986.214231241494417, 6004828.872997689992189 ] ] } }, +{ "type": "Feature", "properties": { "id": "138", "type": "HL", "id_full": "consumers-40", "existing": 0, "from_node": "forks-158", "to_node": "consumers-40", "length": 9.05673, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.80125, "flow": 8.60093, "losses": 0.20031, "costs": 2.31872 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506996.760915204882622, 6004821.717291510663927 ], [ 32506991.67601926997304, 6004814.22274253424257 ] ] } }, +{ "type": "Feature", "properties": { "id": "139", "type": "HL", "id_full": "consumers-53", "existing": 0, "from_node": "forks-159", "to_node": "consumers-53", "length": 10.94747, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.18238, "flow": 8.94025, "losses": 0.24213, "costs": 2.92416 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507003.27022797614336, 6004817.300857891328633 ], [ 32507009.416674129664898, 6004826.360009211115539 ] ] } }, +{ "type": "Feature", "properties": { "id": "140", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-160", "to_node": "forks-161", "length": 2.79685, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 677.43629, "flow": 677.37413, "losses": 0.06216, "costs": 55.11499 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.376948937773705, 6004853.127850018441677 ], [ 32506953.613189354538918, 6004851.448096403852105 ] ] } }, +{ "type": "Feature", "properties": { "id": "141", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-160", "to_node": "forks-184", "length": 15.30598, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 691.12672, "flow": 691.12672, "losses": 0.34019, "costs": 307.71704 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.376948937773705, 6004853.127850018441677 ], [ 32506939.138930920511484, 6004862.320446150377393 ] ] } }, +{ "type": "Feature", "properties": { "id": "142", "type": "HL", "id_full": "consumers-34", "existing": 0, "from_node": "forks-160", "to_node": "consumers-34", "length": 7.46522, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.35024, "flow": 13.18512, "losses": 0.16512, "costs": 2.89911 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.376948937773705, 6004853.127850018441677 ], [ 32506946.893424145877361, 6004847.158975023776293 ] ] } }, +{ "type": "Feature", "properties": { "id": "143", "type": "HL", "id_full": "consumers-54", "existing": 0, "from_node": "forks-161", "to_node": "consumers-54", "length": 5.36448, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.95977, "flow": 8.84112, "losses": 0.11865, "costs": 1.39816 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506953.613189354538918, 6004851.448096403852105 ], [ 32506956.835032768547535, 6004855.737306677736342 ] ] } }, +{ "type": "Feature", "properties": { "id": "144", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-162", "to_node": "forks-163", "length": 14.67321, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 39.7227, "flow": 39.7227, "losses": 0.32461, "costs": 16.95495 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506830.970641527324915, 6004681.731834987178445 ], [ 32506834.067715518176556, 6004667.389202643185854 ] ] } }, +{ "type": "Feature", "properties": { "id": "145", "type": "HL", "id_full": "consumers-55", "existing": 0, "from_node": "forks-162", "to_node": "consumers-55", "length": 4.35741, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.04447, "flow": 6.9481, "losses": 0.09637, "costs": 0.89291 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506830.970641527324915, 6004681.731834987178445 ], [ 32506835.22987837344408, 6004682.65155260451138 ] ] } }, +{ "type": "Feature", "properties": { "id": "146", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-163", "to_node": "forks-194", "length": 11.76173, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 134.13559, "flow": 133.87521, "losses": 0.26038, "costs": 45.89318 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.067715518176556, 6004667.389202643185854 ], [ 32506822.721852354705334, 6004664.289245317690074 ] ] } }, +{ "type": "Feature", "properties": { "id": "147", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-163", "to_node": "forks-196", "length": 9.42045, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 174.06689, "flow": 174.06689, "losses": 0.20861, "costs": 47.70025 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.067715518176556, 6004667.389202643185854 ], [ 32506843.170915149152279, 6004669.813381171785295 ] ] } }, +{ "type": "Feature", "properties": { "id": "148", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-164", "to_node": "forks-177", "length": 10.7022, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 948.87062, "flow": 948.63232, "losses": 0.2383, "costs": 295.40152 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506760.00166030600667, 6004993.319673928432167 ], [ 32506768.873632952570915, 6004987.334266548976302 ] ] } }, +{ "type": "Feature", "properties": { "id": "149", "type": "HL", "id_full": "consumers-57", "existing": 0, "from_node": "forks-164", "to_node": "consumers-57", "length": 3.71867, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.11687, "flow": 7.03462, "losses": 0.08225, "costs": 0.76986 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506760.00166030600667, 6004993.319673928432167 ], [ 32506762.081398293375969, 6004996.402401195839047 ] ] } }, +{ "type": "Feature", "properties": { "id": "150", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-165", "to_node": "forks-166", "length": 11.89662, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 340.07184, "flow": 340.07184, "losses": 0.26375, "costs": 117.68661 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506769.814468886703253, 6005019.310363343916833 ], [ 32506758.059295017272234, 6005017.481309016235173 ] ] } }, +{ "type": "Feature", "properties": { "id": "151", "type": "HL", "id_full": "consumers-58", "existing": 0, "from_node": "forks-165", "to_node": "consumers-58", "length": 4.62673, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.40661, "flow": 9.30428, "losses": 0.10233, "costs": 1.26602 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506769.814468886703253, 6005019.310363343916833 ], [ 32506769.103129152208567, 6005023.882082251831889 ] ] } }, +{ "type": "Feature", "properties": { "id": "152", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-166", "to_node": "forks-171", "length": 3.8393, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 347.82336, "flow": 347.82336, "losses": 0.08512, "costs": 38.8458 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506758.059295017272234, 6005017.481309016235173 ], [ 32506755.713424861431122, 6005014.442041280679405 ] ] } }, +{ "type": "Feature", "properties": { "id": "153", "type": "HL", "id_full": "consumers-71", "existing": 0, "from_node": "forks-166", "to_node": "consumers-71", "length": 5.07063, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.6664, "flow": 7.55425, "losses": 0.11215, "costs": 1.1308 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506758.059295017272234, 6005017.481309016235173 ], [ 32506756.826377343386412, 6005022.399759532883763 ] ] } }, +{ "type": "Feature", "properties": { "id": "154", "type": "HL", "id_full": "consumers-60", "existing": 0, "from_node": "forks-167", "to_node": "consumers-60", "length": 10.73166, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.10241, "flow": 7.86505, "losses": 0.23736, "costs": 2.52938 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506946.964905600994825, 6004697.54165405780077 ], [ 32506944.18274212628603, 6004707.906410517171025 ] ] } }, +{ "type": "Feature", "properties": { "id": "155", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-169", "to_node": "forks-172", "length": 10.1484, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 920.59085, "flow": 920.36493, "losses": 0.22592, "costs": 271.76711 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506787.188013795763254, 6004974.752921739593148 ] ] } }, +{ "type": "Feature", "properties": { "id": "156", "type": "HL", "id_full": "consumers-61", "existing": 0, "from_node": "forks-169", "to_node": "consumers-61", "length": 4.77463, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.54858, "flow": 7.44298, "losses": 0.1056, "costs": 1.04843 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506781.574328914284706, 6004984.462382080033422 ] ] } }, +{ "type": "Feature", "properties": { "id": "157", "type": "HL", "id_full": "consumers-70", "existing": 0, "from_node": "forks-169", "to_node": "consumers-70", "length": 7.53682, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.66246, "flow": 6.49576, "losses": 0.1667, "costs": 1.46068 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506773.870865557342768, 6004974.883647810667753 ] ] } }, +{ "type": "Feature", "properties": { "id": "158", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-169", "to_node": "forks-177", "length": 12.07158, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 935.07066, "flow": 935.07066, "losses": 0.26876, "costs": 328.35319 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.851514901965857, 6004980.540212389081717 ], [ 32506775.654936447739601, 6004982.75931285880506 ], [ 32506768.873632952570915, 6004987.334266548976302 ] ] } }, +{ "type": "Feature", "properties": { "id": "159", "type": "HL", "id_full": "consumers-62", "existing": 0, "from_node": "forks-170", "to_node": "consumers-62", "length": 7.01811, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.40283, "flow": 6.24761, "losses": 0.15522, "costs": 1.30715 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506712.230517815798521, 6005009.722390883602202 ], [ 32506713.688073087483644, 6005016.587476121261716 ] ] } }, +{ "type": "Feature", "properties": { "id": "160", "type": "HL", "id_full": "consumers-64", "existing": 0, "from_node": "forks-171", "to_node": "consumers-64", "length": 9.17995, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.37106, "flow": 5.16802, "losses": 0.20304, "costs": 1.43428 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506755.713424861431122, 6005014.442041280679405 ], [ 32506748.446399018168449, 6005020.051122324541211 ] ] } }, +{ "type": "Feature", "properties": { "id": "161", "type": "HL", "id_full": "consumers-65", "existing": 0, "from_node": "forks-172", "to_node": "consumers-65", "length": 7.39134, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.48475, "flow": 7.32128, "losses": 0.16348, "costs": 1.60929 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506787.188013795763254, 6004974.752921739593148 ], [ 32506782.97297802194953, 6004968.681230651214719 ] ] } }, +{ "type": "Feature", "properties": { "id": "162", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-173", "to_node": "forks-243", "length": 20.19752, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1449.0871, "flow": 1449.0871, "losses": 0.45132, "costs": 851.38378 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506672.19807019457221, 6004953.321366431191564 ], [ 32506676.925561025738716, 6004933.684903668239713 ] ] } }, +{ "type": "Feature", "properties": { "id": "163", "type": "HL", "id_full": "consumers-66", "existing": 0, "from_node": "forks-173", "to_node": "consumers-66", "length": 4.96355, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 58.36409, "flow": 58.25427, "losses": 0.10982, "costs": 8.42696 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506672.19807019457221, 6004953.321366431191564 ], [ 32506677.023741491138935, 6004954.483149848878384 ] ] } }, +{ "type": "Feature", "properties": { "id": "164", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-174", "to_node": "forks-175", "length": 11.70593, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 822.09136, "flow": 821.83094, "losses": 0.26041, "costs": 279.93612 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506862.94104577600956, 6004919.556542992591858 ] ] } }, +{ "type": "Feature", "properties": { "id": "165", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-174", "to_node": "forks-179", "length": 14.46307, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 840.843, "flow": 840.843, "losses": 0.32179, "costs": 353.75967 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506842.017403721809387, 6004935.273351938463748 ] ] } }, +{ "type": "Feature", "properties": { "id": "166", "type": "HL", "id_full": "consumers-37", "existing": 0, "from_node": "forks-174", "to_node": "consumers-37", "length": 5.15209, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.53078, "flow": 7.41683, "losses": 0.11395, "costs": 1.12864 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506856.675757963210344, 6004930.706388405524194 ] ] } }, +{ "type": "Feature", "properties": { "id": "167", "type": "HL", "id_full": "consumers-89", "existing": 0, "from_node": "forks-174", "to_node": "consumers-89", "length": 8.11162, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.89906, "flow": 10.71965, "losses": 0.17941, "costs": 2.57176 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506853.581471737474203, 6004926.586993836797774 ], [ 32506849.055668868124485, 6004919.855315258726478 ] ] } }, +{ "type": "Feature", "properties": { "id": "168", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-175", "to_node": "forks-176", "length": 13.44485, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 805.42871, "flow": 805.12964, "losses": 0.29906, "costs": 315.00381 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506862.94104577600956, 6004919.556542992591858 ], [ 32506873.690982904285192, 6004911.481719899922609 ] ] } }, +{ "type": "Feature", "properties": { "id": "169", "type": "HL", "id_full": "consumers-68", "existing": 0, "from_node": "forks-175", "to_node": "consumers-68", "length": 4.88253, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.8585, "flow": 7.7505, "losses": 0.10799, "costs": 1.11614 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506862.94104577600956, 6004919.556542992591858 ], [ 32506865.873438727110624, 6004923.460410547442734 ] ] } }, +{ "type": "Feature", "properties": { "id": "170", "type": "HL", "id_full": "consumers-82", "existing": 0, "from_node": "forks-175", "to_node": "consumers-82", "length": 8.02626, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.54374, "flow": 8.36622, "losses": 0.17752, "costs": 1.99478 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506862.94104577600956, 6004919.556542992591858 ], [ 32506857.805172950029373, 6004913.388585176318884 ] ] } }, +{ "type": "Feature", "properties": { "id": "171", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-176", "to_node": "forks-192", "length": 8.33255, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 796.64351, "flow": 796.45817, "losses": 0.18534, "costs": 193.09656 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.690982904285192, 6004911.481719899922609 ], [ 32506880.353337548673153, 6004906.47728736512363 ] ] } }, +{ "type": "Feature", "properties": { "id": "172", "type": "HL", "id_full": "consumers-63", "existing": 0, "from_node": "forks-176", "to_node": "consumers-63", "length": 5.27604, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.48614, "flow": 8.36944, "losses": 0.11669, "costs": 1.30242 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.690982904285192, 6004911.481719899922609 ], [ 32506876.859712023288012, 6004915.700219604186714 ] ] } }, +{ "type": "Feature", "properties": { "id": "173", "type": "HL", "id_full": "consumers-72", "existing": 0, "from_node": "forks-177", "to_node": "consumers-72", "length": 3.95053, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.96455, "flow": 7.87717, "losses": 0.08738, "costs": 0.91527 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506768.873632952570915, 6004987.334266548976302 ], [ 32506771.083043202757835, 6004990.609202752821147 ] ] } }, +{ "type": "Feature", "properties": { "id": "174", "type": "HL", "id_full": "consumers-79", "existing": 0, "from_node": "forks-177", "to_node": "consumers-79", "length": 8.62079, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.59712, "flow": 5.40645, "losses": 0.19067, "costs": 1.4036 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506768.873632952570915, 6004987.334266548976302 ], [ 32506763.168475586920977, 6004980.87135895434767 ] ] } }, +{ "type": "Feature", "properties": { "id": "175", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-178", "to_node": "forks-179", "length": 9.41834, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 857.4309, "flow": 857.22132, "losses": 0.20958, "costs": 234.91271 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.486889705061913, 6004940.929903017356992 ], [ 32506842.017403721809387, 6004935.273351938463748 ] ] } }, +{ "type": "Feature", "properties": { "id": "176", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-178", "to_node": "forks-193", "length": 2.08057, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 866.04037, "flow": 866.04037, "losses": 0.0463, "costs": 52.41473 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.486889705061913, 6004940.929903017356992 ], [ 32506832.823352623730898, 6004942.179470105096698 ] ] } }, +{ "type": "Feature", "properties": { "id": "177", "type": "HL", "id_full": "consumers-56", "existing": 0, "from_node": "forks-178", "to_node": "consumers-56", "length": 4.89867, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.56317, "flow": 8.45482, "losses": 0.10835, "costs": 1.22024 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506834.486889705061913, 6004940.929903017356992 ], [ 32506837.428977940231562, 6004944.846677812747657 ] ] } }, +{ "type": "Feature", "properties": { "id": "178", "type": "HL", "id_full": "consumers-73", "existing": 0, "from_node": "forks-179", "to_node": "consumers-73", "length": 4.99321, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.29658, "flow": 8.18614, "losses": 0.11044, "costs": 1.20507 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506842.017403721809387, 6004935.273351938463748 ], [ 32506845.016269762068987, 6004939.265714497305453 ] ] } }, +{ "type": "Feature", "properties": { "id": "179", "type": "HL", "id_full": "consumers-90", "existing": 0, "from_node": "forks-179", "to_node": "consumers-90", "length": 8.04914, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.08175, "flow": 7.90372, "losses": 0.17803, "costs": 1.89229 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506842.017403721809387, 6004935.273351938463748 ], [ 32506837.777945671230555, 6004928.431150262244046 ] ] } }, +{ "type": "Feature", "properties": { "id": "180", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-180", "to_node": "forks-181", "length": 9.28727, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.8595, "flow": 14.65408, "losses": 0.20542, "costs": 4.01444 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.853212911635637, 6004719.588307393714786 ], [ 32506864.857042696326971, 6004717.281313651241362 ] ] } }, +{ "type": "Feature", "properties": { "id": "181", "type": "HL", "id_full": "consumers-74", "existing": 0, "from_node": "forks-180", "to_node": "consumers-74", "length": 7.94035, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 54.94191, "flow": 54.76623, "losses": 0.17568, "costs": 12.69042 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506873.853212911635637, 6004719.588307393714786 ], [ 32506875.825626276433468, 6004711.896840342320502 ] ] } }, +{ "type": "Feature", "properties": { "id": "182", "type": "HL", "id_full": "consumers-19", "existing": 0, "from_node": "forks-181", "to_node": "consumers-19", "length": 15.91497, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 14.65408, "flow": 14.30206, "losses": 0.35202, "costs": 6.78418 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506864.857042696326971, 6004717.281313651241362 ], [ 32506852.469767972826958, 6004707.289231175556779 ] ] } }, +{ "type": "Feature", "properties": { "id": "183", "type": "HL", "id_full": "consumers-75", "existing": 0, "from_node": "forks-182", "to_node": "consumers-75", "length": 3.22676, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 45.43752, "flow": 45.36613, "losses": 0.07139, "costs": 4.26495 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506986.214231241494417, 6004828.872997689992189 ], [ 32506988.025891255587339, 6004831.543175185099244 ] ] } }, +{ "type": "Feature", "properties": { "id": "184", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-183", "to_node": "forks-184", "length": 8.76507, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 698.52266, "flow": 698.32784, "losses": 0.19482, "costs": 178.10205 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506939.138930920511484, 6004862.320446150377393 ] ] } }, +{ "type": "Feature", "properties": { "id": "185", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-183", "to_node": "forks-190", "length": 6.8, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 721.6486, "flow": 721.6486, "losses": 0.15117, "costs": 142.74713 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506926.6937505453825, 6004871.668652441352606 ] ] } }, +{ "type": "Feature", "properties": { "id": "186", "type": "HL", "id_full": "consumers-76", "existing": 0, "from_node": "forks-183", "to_node": "consumers-76", "length": 5.73613, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.62991, "flow": 9.50304, "losses": 0.12687, "costs": 1.60684 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506935.575799219310284, 6004872.171020341105759 ] ] } }, +{ "type": "Feature", "properties": { "id": "187", "type": "HL", "id_full": "consumers-83", "existing": 0, "from_node": "forks-183", "to_node": "consumers-83", "length": 27.814, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.34487, "flow": 12.72966, "losses": 0.6152, "costs": 10.79718 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506932.130744282156229, 6004867.584650640375912 ], [ 32506916.607952658087015, 6004844.505193990655243 ] ] } }, +{ "type": "Feature", "properties": { "id": "188", "type": "HL", "id_full": "consumers-77", "existing": 0, "from_node": "forks-184", "to_node": "consumers-77", "length": 5.55474, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.20113, "flow": 7.07827, "losses": 0.12286, "costs": 1.16358 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506939.138930920511484, 6004862.320446150377393 ], [ 32506942.475044459104538, 6004866.761783177964389 ] ] } }, +{ "type": "Feature", "properties": { "id": "189", "type": "HL", "id_full": "consumers-78", "existing": 0, "from_node": "forks-185", "to_node": "consumers-78", "length": 15.81839, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 13.36782, "flow": 13.01794, "losses": 0.34988, "costs": 6.15114 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506643.925446726381779, 6005067.528800801374018 ], [ 32506659.237948231399059, 6005071.497289492748678 ] ] } }, +{ "type": "Feature", "properties": { "id": "190", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-186", "to_node": "forks-187", "length": 15.46324, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 761.46175, "flow": 761.11789, "losses": 0.34385, "costs": 342.51637 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506900.988204181194305, 6004890.977392285130918 ] ] } }, +{ "type": "Feature", "properties": { "id": "191", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-186", "to_node": "forks-192", "length": 10.3446, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 789.28117, "flow": 789.28117, "losses": 0.23008, "costs": 237.50802 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506880.353337548673153, 6004906.47728736512363 ] ] } }, +{ "type": "Feature", "properties": { "id": "192", "type": "HL", "id_full": "consumers-80", "existing": 0, "from_node": "forks-186", "to_node": "consumers-80", "length": 5.0547, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.78811, "flow": 8.67631, "losses": 0.1118, "costs": 1.29218 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506891.660241603851318, 6004904.305962592363358 ] ] } }, +{ "type": "Feature", "properties": { "id": "193", "type": "HL", "id_full": "consumers-86", "existing": 0, "from_node": "forks-186", "to_node": "consumers-86", "length": 7.99386, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 18.80125, "flow": 18.62443, "losses": 0.17682, "costs": 4.37196 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506888.624447051435709, 6004900.264437445439398 ], [ 32506883.288180585950613, 6004894.312463083304465 ] ] } }, +{ "type": "Feature", "properties": { "id": "194", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-187", "to_node": "forks-191", "length": 20.14614, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 743.33982, "flow": 742.89189, "losses": 0.44793, "costs": 435.62436 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506900.988204181194305, 6004890.977392285130918 ], [ 32506917.096217688173056, 6004878.877846225164831 ] ] } }, +{ "type": "Feature", "properties": { "id": "195", "type": "HL", "id_full": "consumers-43", "existing": 0, "from_node": "forks-187", "to_node": "consumers-43", "length": 5.40936, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.40259, "flow": 8.28295, "losses": 0.11964, "costs": 1.32218 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506900.988204181194305, 6004890.977392285130918 ], [ 32506904.237007018178701, 6004895.302493386901915 ] ] } }, +{ "type": "Feature", "properties": { "id": "196", "type": "HL", "id_full": "consumers-87", "existing": 0, "from_node": "forks-187", "to_node": "consumers-87", "length": 7.72474, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.37549, "flow": 9.20463, "losses": 0.17085, "costs": 2.10674 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506900.988204181194305, 6004890.977392285130918 ], [ 32506897.067452058196068, 6004884.321616514585912 ] ] } }, +{ "type": "Feature", "properties": { "id": "197", "type": "HL", "id_full": "consumers-81", "existing": 0, "from_node": "forks-188", "to_node": "consumers-81", "length": 9.52894, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 102.82322, "flow": 102.61232, "losses": 0.2109, "costs": 28.50157 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506953.373247094452381, 6004747.733802417293191 ], [ 32506962.528575569391251, 6004750.375910975039005 ] ] } }, +{ "type": "Feature", "properties": { "id": "198", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-189", "to_node": "forks-190", "length": 8.79363, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 729.38739, "flow": 729.19189, "losses": 0.1955, "costs": 186.57745 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506919.662733964622021, 6004876.950005658902228 ], [ 32506926.6937505453825, 6004871.668652441352606 ] ] } }, +{ "type": "Feature", "properties": { "id": "199", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-189", "to_node": "forks-191", "length": 3.20992, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 736.8049, "flow": 736.8049, "losses": 0.07137, "costs": 68.79855 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506919.662733964622021, 6004876.950005658902228 ], [ 32506917.096217688173056, 6004878.877846225164831 ] ] } }, +{ "type": "Feature", "properties": { "id": "200", "type": "HL", "id_full": "consumers-59", "existing": 0, "from_node": "forks-189", "to_node": "consumers-59", "length": 6.27215, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.34614, "flow": 7.20742, "losses": 0.13872, "costs": 1.34032 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506919.662733964622021, 6004876.950005658902228 ], [ 32506923.4297163374722, 6004881.964954374358058 ] ] } }, +{ "type": "Feature", "properties": { "id": "201", "type": "HL", "id_full": "consumers-84", "existing": 0, "from_node": "forks-190", "to_node": "consumers-84", "length": 14.29423, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.54329, "flow": 7.22713, "losses": 0.31615, "costs": 3.13657 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.6937505453825, 6004871.668652441352606 ], [ 32506918.108795676380396, 6004860.239581610076129 ] ] } }, +{ "type": "Feature", "properties": { "id": "202", "type": "HL", "id_full": "consumers-85", "existing": 0, "from_node": "forks-191", "to_node": "consumers-85", "length": 7.33862, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.08699, "flow": 5.92468, "losses": 0.16231, "costs": 1.29942 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506917.096217688173056, 6004878.877846225164831 ], [ 32506912.688723333179951, 6004873.010189848020673 ] ] } }, +{ "type": "Feature", "properties": { "id": "203", "type": "HL", "id_full": "consumers-88", "existing": 0, "from_node": "forks-192", "to_node": "consumers-88", "length": 8.14258, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.177, "flow": 6.9969, "losses": 0.18009, "costs": 1.69996 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506880.353337548673153, 6004906.47728736512363 ], [ 32506875.462993998080492, 6004899.966818332672119 ] ] } }, +{ "type": "Feature", "properties": { "id": "204", "type": "HL", "id_full": "consumers-91", "existing": 0, "from_node": "forks-193", "to_node": "consumers-91", "length": 8.36688, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.87625, "flow": 9.69119, "losses": 0.18506, "costs": 2.40374 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506832.823352623730898, 6004942.179470105096698 ], [ 32506827.798298679292202, 6004935.489662369713187 ] ] } }, +{ "type": "Feature", "properties": { "id": "205", "type": "HL", "id_full": "consumers-92", "existing": 0, "from_node": "forks-194", "to_node": "consumers-92", "length": 9.48174, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.50251, "flow": 7.2928, "losses": 0.20971, "costs": 2.06932 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.721852354705334, 6004664.289245317690074 ], [ 32506825.22088723257184, 6004655.142762060277164 ] ] } }, +{ "type": "Feature", "properties": { "id": "206", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-195", "to_node": "forks-196", "length": 57.33967, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 184.37735, "flow": 183.10753, "losses": 1.26982, "costs": 307.53571 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506898.579563789069653, 6004684.568682798184454 ], [ 32506843.170915149152279, 6004669.813381171785295 ] ] } }, +{ "type": "Feature", "properties": { "id": "207", "type": "HL", "id_full": "consumers-93", "existing": 0, "from_node": "forks-195", "to_node": "consumers-93", "length": 8.43095, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.80893, "flow": 8.62245, "losses": 0.18647, "costs": 2.16039 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506898.579563789069653, 6004684.568682798184454 ], [ 32506900.749112118035555, 6004676.421662562526762 ] ] } }, +{ "type": "Feature", "properties": { "id": "208", "type": "HL", "id_full": "consumers-94", "existing": 0, "from_node": "forks-196", "to_node": "consumers-94", "length": 8.90737, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.04064, "flow": 8.84362, "losses": 0.19701, "costs": 2.34251 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506843.170915149152279, 6004669.813381171785295 ], [ 32506845.46306137740612, 6004661.205985110253096 ] ] } }, +{ "type": "Feature", "properties": { "id": "209", "type": "HL", "id_full": "consumers-95", "existing": 0, "from_node": "forks-197", "to_node": "consumers-95", "length": 15.94942, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.62969, "flow": 11.27692, "losses": 0.35277, "costs": 5.39568 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507031.698386561125517, 6004894.343922664411366 ], [ 32507046.460973054170609, 6004900.381319114938378 ] ] } }, +{ "type": "Feature", "properties": { "id": "210", "type": "HL", "id_full": "consumers-96", "existing": 0, "from_node": "forks-198", "to_node": "consumers-96", "length": 11.91126, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.88218, "flow": 6.61873, "losses": 0.26345, "costs": 2.38461 }, "geometry": { "type": "LineString", "coordinates": [ [ 32507049.910564471036196, 6004849.900614405050874 ], [ 32507060.90971864387393, 6004854.471910123713315 ] ] } }, +{ "type": "Feature", "properties": { "id": "211", "type": "HL", "id_full": "consumers-97", "existing": 0, "from_node": "forks-199", "to_node": "consumers-97", "length": 8.38594, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.87189, "flow": 9.68641, "losses": 0.18548, "costs": 2.40816 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506991.113808564841747, 6004712.75675640348345 ], [ 32506994.602377288043499, 6004705.130889164283872 ] ] } }, +{ "type": "Feature", "properties": { "id": "212", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-199", "to_node": "forks-203", "length": 9.87361, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 419.65036, "flow": 419.65036, "losses": 0.21902, "costs": 120.53035 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506991.113808564841747, 6004712.75675640348345 ], [ 32506994.376538667827845, 6004714.249341813847423 ], [ 32506999.825161132961512, 6004717.383402610197663 ] ] } }, +{ "type": "Feature", "properties": { "id": "213", "type": "HL", "id_full": "consumers-98", "existing": 0, "from_node": "forks-202", "to_node": "consumers-98", "length": 11.40052, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.00631, "flow": 9.75416, "losses": 0.25216, "costs": 3.31842 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506914.666960474103689, 6005091.425845111720264 ], [ 32506903.875652264803648, 6005087.748944580554962 ] ] } }, +{ "type": "Feature", "properties": { "id": "214", "type": "HL", "id_full": "consumers-100", "existing": 0, "from_node": "forks-203", "to_node": "consumers-100", "length": 7.40956, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.7885, "flow": 8.62462, "losses": 0.16388, "costs": 1.89426 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506999.825161132961512, 6004717.383402610197663 ], [ 32506996.130732461810112, 6004723.806234955787659 ] ] } }, +{ "type": "Feature", "properties": { "id": "215", "type": "HL", "id_full": "consumers-101", "existing": 0, "from_node": "forks-204", "to_node": "consumers-101", "length": 10.10723, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.8664, "flow": 6.64286, "losses": 0.22355, "costs": 2.01881 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506863.975002709776163, 6005031.844291221350431 ], [ 32506862.937959134578705, 6005041.89818021748215 ] ] } }, +{ "type": "Feature", "properties": { "id": "216", "type": "HL", "id_full": "consumers-102", "existing": 0, "from_node": "forks-205", "to_node": "consumers-102", "length": 14.81489, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 9.26126, "flow": 8.93358, "losses": 0.32767, "costs": 3.99118 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506977.857269518077374, 6005041.763435141183436 ], [ 32506976.159403674304485, 6005056.480714665725827 ] ] } }, +{ "type": "Feature", "properties": { "id": "217", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-206", "to_node": "forks-208", "length": 5.91488, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 23.67644, "flow": 23.5456, "losses": 0.13084, "costs": 4.07376 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.627499092370272, 6005043.576945947483182 ], [ 32506822.262714140117168, 6005049.480564471334219 ] ] } }, +{ "type": "Feature", "properties": { "id": "218", "type": "HL", "id_full": "consumers-103", "existing": 0, "from_node": "forks-206", "to_node": "consumers-103", "length": 7.49398, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.5256, "flow": 6.35985, "losses": 0.16575, "costs": 1.42254 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.627499092370272, 6005043.576945947483182 ], [ 32506830.107215527445078, 6005044.039118086919188 ] ] } }, +{ "type": "Feature", "properties": { "id": "219", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-207", "to_node": "forks-208", "length": 8.10435, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 16.85882, "flow": 16.85882, "losses": 0.17926, "costs": 3.97446 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506822.262714140117168, 6005049.480564471334219 ] ] } }, +{ "type": "Feature", "properties": { "id": "220", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-207", "to_node": "forks-209", "length": 7.53825, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 11.22983, "flow": 11.0631, "losses": 0.16673, "costs": 2.4625 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506821.297996897250414, 6005065.09338659979403 ] ] } }, +{ "type": "Feature", "properties": { "id": "221", "type": "HL", "id_full": "consumers-14", "existing": 0, "from_node": "forks-207", "to_node": "consumers-14", "length": 7.69663, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.89082, "flow": 2.7206, "losses": 0.17023, "costs": 0.64722 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506814.080922689288855, 6005057.094815383665264 ] ] } }, +{ "type": "Feature", "properties": { "id": "222", "type": "HL", "id_full": "consumers-15", "existing": 0, "from_node": "forks-207", "to_node": "consumers-15", "length": 7.64959, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.5589, "flow": 2.38972, "losses": 0.16918, "costs": 0.56941 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.762899231165648, 6005057.56948518846184 ], [ 32506829.389084823429585, 6005058.167373000644147 ] ] } }, +{ "type": "Feature", "properties": { "id": "223", "type": "HL", "id_full": "consumers-104", "existing": 0, "from_node": "forks-208", "to_node": "consumers-104", "length": 7.83427, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.68678, "flow": 6.51351, "losses": 0.17327, "costs": 1.52387 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506822.262714140117168, 6005049.480564471334219 ], [ 32506814.443356208503246, 6005048.997405863367021 ] ] } }, +{ "type": "Feature", "properties": { "id": "224", "type": "HL", "id_full": "consumers-105", "existing": 0, "from_node": "forks-209", "to_node": "consumers-105", "length": 7.61773, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.52586, "flow": 2.35738, "losses": 0.16848, "costs": 0.55972 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.297996897250414, 6005065.09338659979403 ], [ 32506813.694764081388712, 6005064.623582374304533 ] ] } }, +{ "type": "Feature", "properties": { "id": "225", "type": "HL", "id_full": "consumers-106", "existing": 0, "from_node": "forks-209", "to_node": "consumers-106", "length": 7.72529, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 2.28069, "flow": 2.10983, "losses": 0.17086, "costs": 0.51252 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506821.297996897250414, 6005065.09338659979403 ], [ 32506828.999537546187639, 6005065.698728888295591 ] ] } }, +{ "type": "Feature", "properties": { "id": "226", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-210", "to_node": "forks-211", "length": 5.33174, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 90.35784, "flow": 90.35784, "losses": 0.118, "costs": 14.01419 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506916.818285368382931, 6004975.071261634118855 ], [ 32506914.126209385693073, 6004979.673459257930517 ] ] } }, +{ "type": "Feature", "properties": { "id": "227", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-210", "to_node": "forks-228", "length": 2.76926, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 85.97175, "flow": 85.91046, "losses": 0.06128, "costs": 6.92552 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506916.818285368382931, 6004975.071261634118855 ], [ 32506918.21652490645647, 6004972.68092246260494 ] ] } }, +{ "type": "Feature", "properties": { "id": "228", "type": "HL", "id_full": "consumers-7", "existing": 0, "from_node": "forks-210", "to_node": "consumers-7", "length": 6.82832, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.2681, "flow": 4.11708, "losses": 0.15102, "costs": 0.84778 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506916.818285368382931, 6004975.071261634118855 ], [ 32506910.924285426735878, 6004971.623540132306516 ] ] } }, +{ "type": "Feature", "properties": { "id": "229", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-211", "to_node": "forks-212", "length": 5.33265, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 94.74056, "flow": 94.74056, "losses": 0.11802, "costs": 14.69642 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506914.126209385693073, 6004979.673459257930517 ], [ 32506911.433677285909653, 6004984.276436627842486 ] ] } }, +{ "type": "Feature", "properties": { "id": "230", "type": "HL", "id_full": "consumers-109", "existing": 0, "from_node": "forks-211", "to_node": "consumers-109", "length": 6.91247, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.2647, "flow": 4.11181, "losses": 0.15288, "costs": 0.85754 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506914.126209385693073, 6004979.673459257930517 ], [ 32506908.159581992775202, 6004976.183254008181393 ] ] } }, +{ "type": "Feature", "properties": { "id": "231", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-212", "to_node": "forks-226", "length": 5.36226, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 103.2911, "flow": 103.2911, "losses": 0.11868, "costs": 16.11178 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506911.433677285909653, 6004984.276436627842486 ], [ 32506908.726193338632584, 6004988.904974701814353 ] ] } }, +{ "type": "Feature", "properties": { "id": "232", "type": "HL", "id_full": "consumers-107", "existing": 0, "from_node": "forks-212", "to_node": "consumers-107", "length": 7.01284, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.27137, "flow": 4.11627, "losses": 0.1551, "costs": 0.87135 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506911.433677285909653, 6004984.276436627842486 ], [ 32506905.380410727113485, 6004980.735551411285996 ] ] } }, +{ "type": "Feature", "properties": { "id": "233", "type": "HL", "id_full": "consumers-127", "existing": 0, "from_node": "forks-212", "to_node": "consumers-127", "length": 7.18017, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.16049, "flow": 4.00168, "losses": 0.1588, "costs": 0.86898 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506911.433677285909653, 6004984.276436627842486 ], [ 32506917.620399676263332, 6004987.920510660856962 ] ] } }, +{ "type": "Feature", "properties": { "id": "234", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-213", "to_node": "forks-214", "length": 6.17035, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 67.58773, "flow": 67.58773, "losses": 0.13653, "costs": 12.13139 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506923.4450902082026, 6004963.742508036084473 ] ] } }, +{ "type": "Feature", "properties": { "id": "235", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-213", "to_node": "forks-220", "length": 2.18428, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 59.40774, "flow": 59.35942, "losses": 0.04833, "costs": 3.77472 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506927.96684343740344, 6004956.74506373051554 ] ] } }, +{ "type": "Feature", "properties": { "id": "236", "type": "HL", "id_full": "consumers-2", "existing": 0, "from_node": "forks-213", "to_node": "consumers-2", "length": 7.31357, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.96128, "flow": 3.79953, "losses": 0.16175, "costs": 0.84275 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506932.536496572196484, 6004962.632713946513832 ] ] } }, +{ "type": "Feature", "properties": { "id": "237", "type": "HL", "id_full": "consumers-113", "existing": 0, "from_node": "forks-213", "to_node": "consumers-113", "length": 6.51075, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.08217, "flow": 3.93817, "losses": 0.144, "costs": 0.77314 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506926.560590386390686, 6004958.41645201575011 ], [ 32506920.564632415771484, 6004955.879049636423588 ] ] } }, +{ "type": "Feature", "properties": { "id": "238", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-214", "to_node": "forks-215", "length": 5.02891, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 76.40927, "flow": 76.40927, "losses": 0.11128, "costs": 11.17771 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506923.4450902082026, 6004963.742508036084473 ], [ 32506920.905918724834919, 6004968.083310092799366 ] ] } }, +{ "type": "Feature", "properties": { "id": "239", "type": "HL", "id_full": "consumers-110", "existing": 0, "from_node": "forks-214", "to_node": "consumers-110", "length": 7.27271, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.33536, "flow": 4.17451, "losses": 0.16085, "costs": 0.91718 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506923.4450902082026, 6004963.742508036084473 ], [ 32506929.722670953720808, 6004967.414606835693121 ] ] } }, +{ "type": "Feature", "properties": { "id": "240", "type": "HL", "id_full": "consumers-111", "existing": 0, "from_node": "forks-214", "to_node": "consumers-111", "length": 6.48995, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.37489, "flow": 4.23135, "losses": 0.14354, "costs": 0.82593 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506923.4450902082026, 6004963.742508036084473 ], [ 32506917.65685249119997, 6004960.807250146754086 ] ] } }, +{ "type": "Feature", "properties": { "id": "241", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-215", "to_node": "forks-228", "length": 5.32643, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 81.93522, "flow": 81.93522, "losses": 0.11787, "costs": 12.69521 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.905918724834919, 6004968.083310092799366 ], [ 32506918.21652490645647, 6004972.68092246260494 ] ] } }, +{ "type": "Feature", "properties": { "id": "242", "type": "HL", "id_full": "consumers-108", "existing": 0, "from_node": "forks-215", "to_node": "consumers-108", "length": 7.26236, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.40808, "flow": 5.24746, "losses": 0.16062, "costs": 1.14249 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506920.905918724834919, 6004968.083310092799366 ], [ 32506927.17456341907382, 6004971.750181707553566 ] ] } }, +{ "type": "Feature", "properties": { "id": "243", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-216", "to_node": "forks-217", "length": 5.37401, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 29.73156, "flow": 29.73156, "losses": 0.11888, "costs": 4.64782 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506956.185954004526138, 6004953.169992101378739 ] ] } }, +{ "type": "Feature", "properties": { "id": "244", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-216", "to_node": "forks-221", "length": 5.3739, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 21.03913, "flow": 20.92026, "losses": 0.11887, "costs": 3.2889 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506966.725317884236574, 6004955.276973642408848 ] ] } }, +{ "type": "Feature", "properties": { "id": "245", "type": "HL", "id_full": "consumers-114", "existing": 0, "from_node": "forks-216", "to_node": "consumers-114", "length": 7.5241, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.41927, "flow": 4.25286, "losses": 0.16641, "costs": 0.96725 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506959.98069117218256, 6004961.601601294241846 ] ] } }, +{ "type": "Feature", "properties": { "id": "246", "type": "HL", "id_full": "consumers-122", "existing": 0, "from_node": "forks-216", "to_node": "consumers-122", "length": 6.86792, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.15428, "flow": 4.00238, "losses": 0.1519, "costs": 0.82995 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506961.455688830465078, 6004954.223493444733322 ], [ 32506963.342329427599907, 6004947.619788060896099 ] ] } }, +{ "type": "Feature", "properties": { "id": "247", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-217", "to_node": "forks-225", "length": 4.50436, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 33.86441, "flow": 33.86441, "losses": 0.09964, "costs": 4.4372 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506956.185954004526138, 6004953.169992101378739 ], [ 32506951.768994346261024, 6004952.286973678506911 ] ] } }, +{ "type": "Feature", "properties": { "id": "248", "type": "HL", "id_full": "consumers-112", "existing": 0, "from_node": "forks-217", "to_node": "consumers-112", "length": 7.58653, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.03321, "flow": 3.86541, "losses": 0.16779, "costs": 0.89007 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506956.185954004526138, 6004953.169992101378739 ], [ 32506954.698718123137951, 6004960.609316939488053 ] ] } }, +{ "type": "Feature", "properties": { "id": "249", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-218", "to_node": "forks-219", "length": 4.83939, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 129.53712, "flow": 129.53712, "losses": 0.10713, "costs": 18.2355 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506899.291071772575378, 6005005.034643516875803 ], [ 32506896.847592517733574, 6005009.211856372654438 ] ] } }, +{ "type": "Feature", "properties": { "id": "250", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-218", "to_node": "forks-227", "length": 5.11468, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 124.11661, "flow": 124.00339, "losses": 0.11322, "costs": 18.46635 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506899.291071772575378, 6005005.034643516875803 ], [ 32506901.873548366129398, 6005000.619809870608151 ] ] } }, +{ "type": "Feature", "properties": { "id": "251", "type": "HL", "id_full": "consumers-17", "existing": 0, "from_node": "forks-218", "to_node": "consumers-17", "length": 7.26205, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.31338, "flow": 5.15276, "losses": 0.16062, "costs": 1.12244 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506899.291071772575378, 6005005.034643516875803 ], [ 32506893.022694058716297, 6005001.367928072810173 ] ] } }, +{ "type": "Feature", "properties": { "id": "252", "type": "HL", "id_full": "consumers-115", "existing": 0, "from_node": "forks-219", "to_node": "consumers-115", "length": 7.27736, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 5.67595, "flow": 5.515, "losses": 0.16096, "costs": 1.20156 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506896.847592517733574, 6005009.211856372654438 ], [ 32506890.566002946346998, 6005005.537412592209876 ] ] } }, +{ "type": "Feature", "properties": { "id": "253", "type": "HL", "id_full": "consumers-116", "existing": 0, "from_node": "forks-220", "to_node": "consumers-116", "length": 6.91123, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.09452, "flow": 3.94166, "losses": 0.15286, "costs": 0.82317 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506927.96684343740344, 6004956.74506373051554 ], [ 32506922.678448677062988, 6004952.295576239004731 ] ] } }, +{ "type": "Feature", "properties": { "id": "254", "type": "HL", "id_full": "consumers-117", "existing": 0, "from_node": "forks-221", "to_node": "consumers-117", "length": 7.46187, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.36172, "flow": 4.19669, "losses": 0.16503, "costs": 0.94676 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.725317884236574, 6004955.276973642408848 ], [ 32506965.26252069696784, 6004962.594053332693875 ] ] } }, +{ "type": "Feature", "properties": { "id": "255", "type": "HL", "id_full": "consumers-123", "existing": 0, "from_node": "forks-221", "to_node": "consumers-123", "length": 6.97832, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.16008, "flow": 4.00574, "losses": 0.15434, "costs": 0.84447 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506966.725317884236574, 6004955.276973642408848 ], [ 32506968.629958920180798, 6004948.563608229160309 ] ] } }, +{ "type": "Feature", "properties": { "id": "256", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-222", "to_node": "forks-225", "length": 5.40118, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 38.22293, "flow": 38.10344, "losses": 0.11949, "costs": 6.00545 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506946.472613293677568, 6004951.228145343251526 ], [ 32506951.768994346261024, 6004952.286973678506911 ] ] } }, +{ "type": "Feature", "properties": { "id": "257", "type": "HL", "id_full": "consumers-119", "existing": 0, "from_node": "forks-222", "to_node": "consumers-119", "length": 6.57335, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.06035, "flow": 3.91497, "losses": 0.14538, "costs": 0.7764 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506946.472613293677568, 6004951.228145343251526 ], [ 32506947.761228282004595, 6004944.782345029525459 ] ] } }, +{ "type": "Feature", "properties": { "id": "258", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-223", "to_node": "forks-224", "length": 5.32801, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 115.30633, "flow": 115.30633, "losses": 0.11793, "costs": 17.8711 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506906.036651168018579, 6004993.502840680070221 ], [ 32506903.346458375453949, 6004998.101818924769759 ] ] } }, +{ "type": "Feature", "properties": { "id": "259", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-223", "to_node": "forks-226", "length": 5.32673, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 111.03816, "flow": 110.92026, "losses": 0.1179, "costs": 17.20543 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506906.036651168018579, 6004993.502840680070221 ], [ 32506908.726193338632584, 6004988.904974701814353 ] ] } }, +{ "type": "Feature", "properties": { "id": "260", "type": "HL", "id_full": "consumers-120", "existing": 0, "from_node": "forks-223", "to_node": "consumers-120", "length": 7.08776, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.15024, "flow": 3.99348, "losses": 0.15676, "costs": 0.85569 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506906.036651168018579, 6004993.502840680070221 ], [ 32506912.154591392725706, 6004997.08155704382807 ] ] } }, +{ "type": "Feature", "properties": { "id": "261", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-224", "to_node": "forks-227", "length": 2.91715, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 119.47257, "flow": 119.47257, "losses": 0.06457, "costs": 10.13816 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506903.346458375453949, 6004998.101818924769759 ], [ 32506901.873548366129398, 6005000.619809870608151 ] ] } }, +{ "type": "Feature", "properties": { "id": "262", "type": "HL", "id_full": "consumers-8", "existing": 0, "from_node": "forks-224", "to_node": "consumers-8", "length": 7.04024, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.10166, "flow": 3.94596, "losses": 0.15571, "costs": 0.84 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506903.346458375453949, 6004998.101818924769759 ], [ 32506909.423378266394138, 6005001.656540264375508 ] ] } }, +{ "type": "Feature", "properties": { "id": "263", "type": "HL", "id_full": "consumers-121", "existing": 0, "from_node": "forks-225", "to_node": "consumers-121", "length": 6.6407, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.23903, "flow": 4.09216, "losses": 0.14687, "costs": 0.81887 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506951.768994346261024, 6004952.286973678506911 ], [ 32506953.070812314748764, 6004945.775130551308393 ] ] } }, +{ "type": "Feature", "properties": { "id": "264", "type": "HL", "id_full": "consumers-125", "existing": 0, "from_node": "forks-226", "to_node": "consumers-125", "length": 7.13528, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.15051, "flow": 3.9927, "losses": 0.15781, "costs": 0.86148 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506908.726193338632584, 6004988.904974701814353 ], [ 32506914.885148, 6004992.507682644762099 ] ] } }, +{ "type": "Feature", "properties": { "id": "265", "type": "HL", "id_full": "consumers-128", "existing": 0, "from_node": "forks-226", "to_node": "consumers-128", "length": 7.12829, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.47865, "flow": 3.32099, "losses": 0.15766, "costs": 0.72132 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506908.726193338632584, 6004988.904974701814353 ], [ 32506902.582405626773834, 6004985.290228594094515 ] ] } }, +{ "type": "Feature", "properties": { "id": "266", "type": "HL", "id_full": "consumers-126", "existing": 0, "from_node": "forks-227", "to_node": "consumers-126", "length": 7.24042, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 4.53083, "flow": 4.37069, "losses": 0.16014, "costs": 0.95428 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506901.873548366129398, 6005000.619809870608151 ], [ 32506895.623841777443886, 6004996.964016184210777 ] ] } }, +{ "type": "Feature", "properties": { "id": "267", "type": "HL", "id_full": "consumers-129", "existing": 0, "from_node": "forks-228", "to_node": "consumers-129", "length": 7.25155, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 3.97525, "flow": 3.81487, "losses": 0.16038, "costs": 0.83855 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506918.21652490645647, 6004972.68092246260494 ], [ 32506924.475843712687492, 6004976.342338857240975 ] ] } }, +{ "type": "Feature", "properties": { "id": "268", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-229", "to_node": "forks-243", "length": 8.03989, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 10.85387, "flow": 10.85387, "losses": 0.17783, "costs": 2.53844 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506678.807402063161135, 6004925.868346692994237 ], [ 32506676.925561025738716, 6004933.684903668239713 ] ] } }, +{ "type": "Feature", "properties": { "id": "269", "type": "HL", "id_full": "consumers-130", "existing": 0, "from_node": "forks-229", "to_node": "consumers-130", "length": 1.87885, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.67604, "flow": 10.63448, "losses": 0.04156, "costs": 0.58349 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506678.807402063161135, 6004925.868346692994237 ], [ 32506680.634060110896826, 6004926.308115773834288 ] ] } }, +{ "type": "Feature", "properties": { "id": "270", "type": "HL", "id_full": "consumers-131", "existing": 0, "from_node": "forks-230", "to_node": "consumers-131", "length": 8.67356, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 8.56079, "flow": 8.36895, "losses": 0.19184, "costs": 2.15995 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506756.913997627794743, 6004748.952905900776386 ], [ 32506756.381893862038851, 6004757.610126166604459 ] ] } }, +{ "type": "Feature", "properties": { "id": "271", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-231", "to_node": "forks-232", "length": 3.22783, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 110.86566, "flow": 110.86566, "losses": 0.07144, "costs": 10.40975 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506777.753673400729895, 6004673.914529996924102 ], [ 32506778.520040564239025, 6004670.778998891822994 ] ] } }, +{ "type": "Feature", "properties": { "id": "272", "type": "HL", "id_full": "consumers-135", "existing": 0, "from_node": "forks-231", "to_node": "consumers-135", "length": 7.50548, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.14863, "flow": 9.98263, "losses": 0.16601, "costs": 2.21574 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506777.753673400729895, 6004673.914529996924102 ], [ 32506785.044541500508785, 6004675.696518983691931 ] ] } }, +{ "type": "Feature", "properties": { "id": "273", "type": "HL", "id_full": "consumers-136", "existing": 0, "from_node": "forks-232", "to_node": "consumers-136", "length": 10.81873, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.5826, "flow": 6.34332, "losses": 0.23928, "costs": 2.0716 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506778.520040564239025, 6004670.778998891822994 ], [ 32506768.010666660964489, 6004668.210362579673529 ] ] } }, +{ "type": "Feature", "properties": { "id": "274", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-233", "to_node": "forks-234", "length": 5.96967, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 26.21908, "flow": 26.08703, "losses": 0.13205, "costs": 4.55303 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506754.168573405593634, 6004682.577916230075061 ], [ 32506748.453176658600569, 6004680.854203345254064 ] ] } }, +{ "type": "Feature", "properties": { "id": "275", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-233", "to_node": "forks-239", "length": 2.64855, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 32.76383, "flow": 32.76383, "losses": 0.05859, "costs": 2.52427 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506754.168573405593634, 6004682.577916230075061 ], [ 32506756.704313155263662, 6004683.342672811821103 ] ] } }, +{ "type": "Feature", "properties": { "id": "276", "type": "HL", "id_full": "consumers-132", "existing": 0, "from_node": "forks-233", "to_node": "consumers-132", "length": 11.67084, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.48616, "flow": 6.22803, "losses": 0.25813, "costs": 2.20203 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506754.168573405593634, 6004682.577916230075061 ], [ 32506757.538471359759569, 6004671.404185398481786 ] ] } }, +{ "type": "Feature", "properties": { "id": "277", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-234", "to_node": "forks-235", "length": 6.15418, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 19.71297, "flow": 19.57684, "losses": 0.13613, "costs": 3.52903 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506748.453176658600569, 6004680.854203345254064 ], [ 32506742.56112327054143, 6004679.077212387695909 ] ] } }, +{ "type": "Feature", "properties": { "id": "278", "type": "HL", "id_full": "consumers-137", "existing": 0, "from_node": "forks-234", "to_node": "consumers-137", "length": 11.86172, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.37406, "flow": 6.11171, "losses": 0.26235, "costs": 2.19936 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506748.453176658600569, 6004680.854203345254064 ], [ 32506751.878190636634827, 6004669.497721680440009 ] ] } }, +{ "type": "Feature", "properties": { "id": "279", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-235", "to_node": "forks-236", "length": 6.12057, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 12.72436, "flow": 12.58898, "losses": 0.13538, "costs": 2.26548 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506742.56112327054143, 6004679.077212387695909 ], [ 32506736.701256807893515, 6004677.30992872081697 ] ] } }, +{ "type": "Feature", "properties": { "id": "280", "type": "HL", "id_full": "consumers-138", "existing": 0, "from_node": "forks-235", "to_node": "consumers-138", "length": 11.34121, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.85248, "flow": 6.60164, "losses": 0.25084, "costs": 2.26069 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506742.56112327054143, 6004679.077212387695909 ], [ 32506745.835843969136477, 6004668.219065302051604 ] ] } }, +{ "type": "Feature", "properties": { "id": "281", "type": "DL", "id_full": null, "existing": 0, "from_node": "forks-236", "to_node": "forks-237", "length": 5.77552, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.4097, "flow": 6.28196, "losses": 0.12774, "costs": 1.07687 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506736.701256807893515, 6004677.30992872081697 ], [ 32506731.171738620847464, 6004675.642275160178542 ] ] } }, +{ "type": "Feature", "properties": { "id": "282", "type": "HL", "id_full": "consumers-139", "existing": 0, "from_node": "forks-236", "to_node": "consumers-139", "length": 11.54376, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.17929, "flow": 5.92397, "losses": 0.25532, "costs": 2.075 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506736.701256807893515, 6004677.30992872081697 ], [ 32506740.034462817013264, 6004666.257859108969569 ] ] } }, +{ "type": "Feature", "properties": { "id": "283", "type": "HL", "id_full": "consumers-140", "existing": 0, "from_node": "forks-237", "to_node": "consumers-140", "length": 11.73362, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 6.28196, "flow": 6.02244, "losses": 0.25952, "costs": 2.14417 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506731.171738620847464, 6004675.642275160178542 ], [ 32506734.559764791280031, 6004664.408435733057559 ] ] } }, +{ "type": "Feature", "properties": { "id": "284", "type": "HL", "id_full": "consumers-141", "existing": 0, "from_node": "forks-239", "to_node": "consumers-141", "length": 6.63056, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 7.89518, "flow": 7.74853, "losses": 0.14665, "costs": 1.52281 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506756.704313155263662, 6004683.342672811821103 ], [ 32506754.789770606905222, 6004689.690812552347779 ] ] } }, +{ "type": "Feature", "properties": { "id": "285", "type": "HL", "id_full": "consumers-142", "existing": 0, "from_node": "forks-240", "to_node": "consumers-142", "length": 11.62047, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 10.98568, "flow": 10.72866, "losses": 0.25702, "costs": 3.7135 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506770.973308652639389, 6004717.554045321419835 ], [ 32506759.586695671081543, 6004715.234476590529084 ] ] } }, +{ "type": "Feature", "properties": { "id": "286", "type": "HL", "id_full": "consumers-144", "existing": 0, "from_node": "forks-242", "to_node": "consumers-144", "length": 5.6321, "hp_type": "pipe-typ-A", "direction": 1, "capacity": 12.19481, "flow": 12.07024, "losses": 0.12457, "costs": 1.99792 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506710.603514529764652, 6004747.567726431414485 ], [ 32506714.053161434829235, 6004752.019746305420995 ] ] } }, +{ "type": "Feature", "properties": { "id": "287", "type": "GL", "id_full": "producers-0", "existing": 0, "from_node": "forks-243", "to_node": "producers-0", "length": 2.27026, "hp_type": "pipe-typ-A", "direction": -1, "capacity": 1459.9917, "flow": 1459.941, "losses": 0.05073, "costs": 96.41816 }, "geometry": { "type": "LineString", "coordinates": [ [ 32506676.925561025738716, 6004933.684903668239713 ], [ 32506679.132756624370813, 6004934.216287404298782 ] ] } } +] +} diff --git a/tests/test_gistools.py b/tests/test_gistools.py index 554e6a87..22e80b01 100644 --- a/tests/test_gistools.py +++ b/tests/test_gistools.py @@ -16,6 +16,7 @@ import networkx as nx import numpy as np import pandas as pd +from geopandas.testing import assert_geodataframe_equal from shapely.geometry import LineString from shapely.geometry import MultiLineString from shapely.geometry import Point @@ -366,6 +367,7 @@ def test_process_geometry(): assert tn_input["pipes"].index.name == "id" tn_input["pipes"] = tn_input["pipes"][sorted(tn_input["pipes"].columns)] + tn_input["pipes"] = tn_input["pipes"].replace({None: np.nan}) tn_input["pipes"] = tn_input["pipes"].round(5) # Update expected result (after intentional changes) @@ -376,15 +378,13 @@ def test_process_geometry(): gpd.read_file(file_pipes) .set_index("id") .reindex(tn_input["pipes"].columns, axis="columns") + .replace({None: np.nan}) ) - assert (gdf_pipes_test.columns == tn_input["pipes"].columns).all() - - # Compare with tolerance, due to loss of floating point precision - for col in tn_input["pipes"].columns: - if col == tn_input["pipes"].geometry.name: - assert gdf_pipes_test.geom_equals_exact( - tn_input["pipes"], tolerance=1e-7 - ).all() - else: - assert gdf_pipes_test[[col]].equals(tn_input["pipes"][[col]]) + assert_geodataframe_equal( + tn_input["pipes"], + gdf_pipes_test, + check_index_type=False, # dtype changes after reading file + check_column_type=False, # dtype changes after reading file + check_less_precise=True, # Required due to floating point precision + ) diff --git a/tests/test_optimization.py b/tests/test_optimization.py new file mode 100644 index 00000000..bb0b23bb --- /dev/null +++ b/tests/test_optimization.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*- +""" +Test the complete investment optimization workflow of DHNx. + +This file is part of project oemof (). It's copyrighted +by the contributors recorded in the version control history of the file, +available from its original location oemof/oemof/tools/helpers.py + +SPDX-License-Identifier: MIT +""" + +import io +import os + +import geopandas as gpd +import numpy as np +import pandas as pd +from geopandas.testing import assert_geodataframe_equal + +import dhnx + + +def get_default_dhnx_invest_options(): + """Generate a dictionary with default investments options for DHNx.""" + consumers_bus = """ +label_2,active,excess,shortage,shortage costs,excess costs +heat,1,0,0,999999,9999 +""" + consumers_demand = """ +label_2,active,nominal_capacity +heat,1,1 +""" + producers_bus = """ +,label_2,active,excess,shortage,shortage costs,excess costs +1,heat,1,0,0,9999,9999 +""" + producers_source = """ +label_2,active +heat,1 +""" + network = """ +label_3,nonconvex,l_factor,l_factor_fix,cap_min,cap_max,capex_pipes,fix_costs +pipe-typ-A,1,1.5812551e-07,0.0221164,1,519307.085403,0.02908927,948.69105059 +""" + + invest_options = dict( + consumers=dict( + bus=pd.read_csv(io.StringIO(consumers_bus)), + demand=pd.read_csv(io.StringIO(consumers_demand)), + ), + producers=dict( + bus=pd.read_csv(io.StringIO(producers_bus)), + source=pd.read_csv(io.StringIO(producers_source)), + ), + network=dict(pipes=pd.read_csv(io.StringIO(network))), + ) + return invest_options + + +def test_optimization_example_01(): + """Test ``optimize_investment()`` function with a simple example. + + It includes pipes with ``existing=1``, which is supposed to cover + certain edge cases in the optimization workflow. + """ + base_dir = os.path.join( + os.path.dirname(__file__), "_files/process_geometry" + ) + gdf_lines = gpd.read_file( + os.path.join(base_dir, "in/lines_input_existing.geojson") + ) + gdf_prod = gpd.read_file( + os.path.join(base_dir, "in/producers_polygon.geojson") + ) + gdf_cons = gpd.read_file( + os.path.join(base_dir, "in/consumers_polygon.geojson") + ) + file_pipes = os.path.join(base_dir, "out/pipes_result_01.geojson") + os.makedirs(os.path.dirname(file_pipes), exist_ok=True) + + tn_input = dhnx.gistools.connect_points.process_geometry( + lines=gdf_lines, + producers=gdf_prod, + consumers=gdf_cons, + method="boundary", + reset_index=True, + simplify=True, + ) + + # initialize a ThermalNetwork + network = dhnx.network.ThermalNetwork() + + # add the pipes, forks, consumer, and producers to the ThermalNetwork + for k, v in tn_input.items(): + network.components[k] = v + + # check if ThermalNetwork is consistent + network.is_consistent() + + # load the specification of the oemof-solph components + invest_opt = get_default_dhnx_invest_options() + + settings = dict( + solve_kw={"tee": False}, # Hide solver output + return_existing=True, # Include existing pipes in results + ) + + # Perform the investment optimisation + network.optimize_investment(invest_options=invest_opt, **settings) + + results_edges = network.results.optimization["components"]["pipes"] + gdf_pipes = network.components["pipes"].copy() + cols_drop = [c for c in results_edges.columns if c in gdf_pipes] + gdf_pipes = gdf_pipes.drop(columns=cols_drop) # Drop duplicate columns + gdf_pipes = gdf_pipes.join(results_edges, rsuffix="_results") + gdf_pipes = gdf_pipes[gdf_pipes["capacity"] > 0] # Keep only DN>0 + + gdf_pipes = gdf_pipes.round(5) # Round for comparison + + # Update expected result (after intentional changes) + # gdf_pipes.to_file(file_pipes) + + # Load expected result (and fix column order) + gdf_pipes_test = ( + gpd.read_file(file_pipes) + .set_index("id") + .reindex(gdf_pipes.columns, axis="columns") + .replace({None: np.nan}) + ) + + assert_geodataframe_equal( + gdf_pipes, + gdf_pipes_test, + check_dtype=False, # dtype changes after reading file + check_index_type=False, # dtype changes after reading file + check_column_type=False, # dtype changes after reading file + check_less_precise=True, # Required due to floating point precision + ) + + +def test_optimization_example_02(): + """Test ``optimize_investment()`` function with a simple example. + + Differences to test_optimization_example_01: + + - All pipes are new pipes (existing=0) + - An artificial time series for consumer demand is used to + increase code coverage + - nonconvex=0 is chosen for pipe costs. This is purely to increase + code coverage and not a recommmended setting + - Argument 'welding' is used instead of 'simplify', just to trigger + FutureWarning + - Optimization settings 'bidirectional_pipes', and + 'allow_nonoptimal' are changed to increase code coverage + """ + base_dir = os.path.join( + os.path.dirname(__file__), "_files/process_geometry" + ) + gdf_lines = gpd.read_file( + os.path.join(base_dir, "in/lines_input_existing.geojson") + ) + gdf_prod = gpd.read_file( + os.path.join(base_dir, "in/producers_polygon.geojson") + ) + gdf_cons = gpd.read_file( + os.path.join(base_dir, "in/consumers_polygon.geojson") + ) + file_pipes = os.path.join(base_dir, "out/pipes_result_02.geojson") + os.makedirs(os.path.dirname(file_pipes), exist_ok=True) + + # Remove columns related to existing pipes (make all pipes new) + gdf_lines = gdf_lines.drop(columns=["existing", "hp_type", "capacity"]) + + # Create artificial time series for consumers + df_timeseries = pd.concat( + [ + gdf_cons["P_heat_max"], # Time step 1 + gdf_cons["P_heat_max"].mul(0.5), # Time step 2 + gdf_cons["P_heat_max"].mul(0.1), # Time step 3 + ], + axis="columns", + ).T + # Rename row index + df_timeseries.index = range(len(df_timeseries)) + # Enforce string column names, because dhnx expects them + df_timeseries.columns = df_timeseries.columns.astype(str) + + tn_input = dhnx.gistools.connect_points.process_geometry( + lines=gdf_lines, + producers=gdf_prod, + consumers=gdf_cons, + method="boundary", + reset_index=True, + welding=True, # Instead of 'simplify', just to trigger FutureWarning + ) + + # initialize a ThermalNetwork + network = dhnx.network.ThermalNetwork() + + # add the pipes, forks, consumer, and producers to the ThermalNetwork + for k, v in tn_input.items(): + network.components[k] = v + + network.sequences["consumers"]["heat_flow"] = df_timeseries + + # check if ThermalNetwork is consistent + network.is_consistent() + + # load the specification of the oemof-solph components + invest_opt = get_default_dhnx_invest_options() + + # Change to nonconvex=0 (purely to increase code coverage of test) + invest_opt["network"]["pipes"]["nonconvex"] = 0 + invest_opt["network"]["pipes"].drop(columns=["fix_costs"], inplace=True) + + settings = dict( + solve_kw={"tee": False}, # Hide solver output + solver_cmdline_options={ + "seconds": 30, # maximum runtime for cbc solver + }, + return_existing=False, + bidirectional_pipes=True, # Just to increase code coverage + allow_nonoptimal=True, + heat_demand="series", # Setting required for time series + num_ts=len(df_timeseries), # Setting required for time series + frequence="h", # Setting required for time series + ) + + # Perform the investment optimisation + network.optimize_investment(invest_options=invest_opt, **settings) + + results_edges = network.results.optimization["components"]["pipes"] + gdf_pipes = network.components["pipes"].copy() + cols_drop = [c for c in results_edges.columns if c in gdf_pipes] + gdf_pipes = gdf_pipes.drop(columns=cols_drop) # Drop duplicate columns + gdf_pipes = gdf_pipes.join(results_edges, rsuffix="_results") + gdf_pipes = gdf_pipes[gdf_pipes["capacity"] > 0] # Keep only DN>0 + + gdf_pipes = gdf_pipes.round(5) # Round for comparison + + # Update expected result (after intentional changes) + # gdf_pipes.to_file(file_pipes) + + # Load expected result (and fix column order) + gdf_pipes_test = ( + gpd.read_file(file_pipes) + .set_index("id") + .reindex(gdf_pipes.columns, axis="columns") + .replace({None: np.nan}) + ) + + assert_geodataframe_equal( + gdf_pipes, + gdf_pipes_test, + check_dtype=False, # dtype changes after reading file + check_index_type=False, # dtype changes after reading file + check_column_type=False, # dtype changes after reading file + check_less_precise=True, # Required due to floating point precision + )