From 39472a4ff6e4d174ca8178d6b2e5c32cb80c38e7 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Thu, 2 Apr 2026 07:59:00 -0700 Subject: [PATCH 1/3] add custom create_layout_df for CustomArrayDesign --- ORBIT/phases/design/array_system_design.py | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/ORBIT/phases/design/array_system_design.py b/ORBIT/phases/design/array_system_design.py index 0e401bab..2f5ab108 100644 --- a/ORBIT/phases/design/array_system_design.py +++ b/ORBIT/phases/design/array_system_design.py @@ -7,6 +7,7 @@ import warnings +from copy import deepcopy from collections import OrderedDict import numpy as np @@ -1129,3 +1130,39 @@ def cable_lengths_by_type_speed(self): for name in self.cables } return cables + + def create_layout_df(self) -> pd.DataFrame: + """Creates a Pandas DataFrame layout. + + Returns + ------- + pd.DataFrame + The wind farm layout returned back in its original form. + """ + layout_df = deepcopy(self.location_data) + substation_cols = [ + "substation_id", + "substation_name", + "substation_latitude", + "substation_longitude", + ] + substations = ( + layout_df[substation_cols] + .drop_duplicates() + .rename( + columns={ + col: col.replace("substation_", "") + for col in layout_df.columns + } + ) + ) + layout_df = layout_df.drop(columns=substation_cols).rename( + columns={ + col: col.replace("turbine_", "") for col in layout_df.columns + } + ) + layout_df = ( + pd.concat((layout_df, substations)) + .reset_index(drop=True) + .fillna("") + ) From 5779876c80a8c1a7f7ffd04127cf4f07a5ee7d21 Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:02:42 -0700 Subject: [PATCH 2/3] update changelog --- docs/source/changelog.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index d150de16..d69e45ee 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -3,8 +3,13 @@ ORBIT Changelog =============== -Unreleased ----------- +1.2.6 +----- +- Implements `create_layout_df` for the `CustomArraySystemDesign` model to ensure + compatibility with workflows relying on the layout generation tools. + +1.2.5 +----- - Allow for a Pandas DataFrame to be passed directly to the ``CustomArraySystemDesign.layout_data`` configuration input. - Move the matplotlib import from the import section of ``/ORBIT/phases/design/array_system_design.py`` From 4380f0ee28641a4de61dda006959ac1402dc694c Mon Sep 17 00:00:00 2001 From: "Hammond, Rob" <13874373+RHammond2@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:02:54 -0700 Subject: [PATCH 3/3] bump version --- ORBIT/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ORBIT/__init__.py b/ORBIT/__init__.py index 41703e9e..086b6995 100644 --- a/ORBIT/__init__.py +++ b/ORBIT/__init__.py @@ -17,4 +17,4 @@ from ORBIT.parametric import ParametricManager from ORBIT.supply_chain import SupplyChainManager -__version__ = "1.2.5" +__version__ = "1.2.6"