From ab7e44a80916471d87d0855b160abf69b43003b3 Mon Sep 17 00:00:00 2001 From: Garrett Barter Date: Tue, 28 Jul 2026 15:55:40 -0600 Subject: [PATCH] fixing cable units bug from rotorD to km --- landbosse/model/CollectionCost.py | 7 +++++-- .../ge15_expected_validation.xlsx | Bin 10650 -> 11201 bytes 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/landbosse/model/CollectionCost.py b/landbosse/model/CollectionCost.py index 0d27fc5..46b8422 100644 --- a/landbosse/model/CollectionCost.py +++ b/landbosse/model/CollectionCost.py @@ -380,7 +380,7 @@ def calc_num_turb_partial_strings(self, num_leftover_turb, num_turb_per_cable): # TODO: change length_to_substation calculation as a user defined input? @staticmethod def calc_cable_len_to_substation( - distance_to_grid, turbine_spacing_rotor_diameters, row_spacing_rotor_diameters, num_strings + distance_to_grid, turbine_spacing_rotor_diameters, row_spacing_rotor_diameters, num_strings, rotor_diameter_m, ): """ Calculate the distance for the largest cable run to substation @@ -395,6 +395,8 @@ def calc_cable_len_to_substation( Spacing between rows in wind plant, # of rotor diameters num_strings : int Total number of strings + rotor_diameter_m : int or float + Rotor diameter, m Returns ------- @@ -437,7 +439,7 @@ def calc_cable_len_to_substation( string_to_substation_length.append(distance_to_grid) # Sum up total length to substation - len_to_substation = np.sum(string_to_substation_length) + len_to_substation = np.sum(string_to_substation_length) * rotor_diameter_m * 1e-3 return len_to_substation @@ -610,6 +612,7 @@ def create_ArraySystem(self): self.input_dict["turbine_spacing_rotor_diameters"], self.input_dict["row_spacing_rotor_diameters"], self.output_dict["num_strings"], + self.input_dict["rotor_diameter_m"], ) else: self.output_dict["distance_to_grid_connection_km"] = self.input_dict["distance_to_grid_connection_km"] diff --git a/project_input_template/project_data/ge15_expected_validation.xlsx b/project_input_template/project_data/ge15_expected_validation.xlsx index 7f2a6a68fe316c3aad08d91e6c062495871b5e13..b8d7f35adaae1a792687f81ec6ce7f1f86c83905 100644 GIT binary patch delta 6240 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