-
Notifications
You must be signed in to change notification settings - Fork 10
FLOWERS subpackage integration #169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
FLOWERS subpackage integration #169
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR integrates the FLOWERS package (a rapid wind farm energy simulation tool) into the Ard repository. The integration includes moving FLOWERS code into the main repository structure, updating test infrastructure to support both packages, and reorganizing example data files.
Changes:
- Added complete FLOWERS package source code and tests
- Updated test scripts to support running tests for both ard and flowers packages
- Relocated example data files from
examples/data/toexamples/ard/data/ - Updated pyproject.toml to include flowers package and add Christopher Bay as an author
Reviewed changes
Copilot reviewed 35 out of 74 changed files in this pull request and generated 31 comments.
Show a summary per file
| File | Description |
|---|---|
| test/run_local_test_unit.sh | Updated to support running unit tests for both ard and flowers packages |
| test/run_local_test_system.sh | Updated to support running system tests for both ard and flowers packages |
| flowers/*.py | New FLOWERS source code for wind farm modeling and optimization |
| test/flowers/**/*.py | New comprehensive test suite for FLOWERS functionality |
| pyproject.toml | Updated to include flowers package in build configuration |
| examples/ard/data/*.yaml | Relocated data files with updated paths in dependent test files |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…aybe more examples
FLOWERS subpackage integration
While working with some offshore work, we brought in FLOWERS but in a mostly untested standalone repo; this is a more permanent home for FLOWERS in Ard that will allow it to live with Ard but still be used independently, i.e. this still would work with complete backward compatibility:
Merge with
flowersrepoThe FLOWERS git history has been preserved in its entirety in this Ard pr. Try
git blameon OG FLOWERS features to see changes frombaycorlocascio-mTo do this, I:unitandsystemsubdirectories were underneath their target subpackage in the Ard repotest/ard/unit, etc.test/flowers/systempyproject.tomlto allow independent subpackage installationpip install ardresults in bothimport flowersandimport ardbeing available in the python envOther updates
Outstanding work
File changes summarized
The following is a summary of changes by type, to help streamline the review process since this PR is so heavy.
examples/flowers/_archive/compute_AEP.py: moved to a directory for legacy testsexamples/flowers/data/HKW_wind_rose.csv: moved to a shared locationflowers/__init__.py: auto-removed trailing whitespaceflowers/flowers_model.pyflowers/optimization/__init__.pyflowers/optimization/model_interface.pyflowers/optimization/optimization_interface.pyflowers/tools.pyflowers/visualization.pypyproject_flowers.toml: renamed to dodge conflict, saved for validationtest/flowers/__init__.pytest/flowers/_archive/conftest.pytest/flowers/_archive/regression/test_flowers_aep.py.coveragerc: add ignores for legacy FLOWERS code I don't want to dispose yet.github/workflows/python-tests-consolidated.yaml: integrate parallel FLOWERS testingpyproject.toml: updated to include subpackagetest/run_local_test_system.shtest/run_local_test_unit.shexamples/{ => ard}/01_onshore/inputs/ard_system.yamlexamples/{ => ard}/01_onshore/inputs/windio.yamlexamples/{ => ard}/01_onshore/optimization_demo.ipynbexamples/{ => ard}/02_offshore_fixed/inputs/ard_system.yamlexamples/{ => ard}/02_offshore_fixed/inputs/windio.yamlexamples/{ => ard}/02_offshore_fixed/optimization_demo.ipynbexamples/{ => ard}/03_offshore_floating_custom_system/inputs/ard_system.yamlexamples/{ => ard}/03_offshore_floating_custom_system/inputs/windio.yamlexamples/{ => ard}/03_offshore_floating_custom_system/optimization_demo.ipynbexamples/{ => ard}/05_onshore_batch/inputs/NREL_Reference_5MW_126.csvexamples/{ => ard}/05_onshore_batch/inputs/ard_system.yamlexamples/{ => ard}/05_onshore_batch/inputs/h2i/driver_config.yamlexamples/{ => ard}/05_onshore_batch/inputs/h2i/h2i_ard.yamlexamples/{ => ard}/05_onshore_batch/inputs/h2i/plant_config.yamlexamples/{ => ard}/05_onshore_batch/inputs/open-meteo-56.20N8.54E86m-short.yamlexamples/{ => ard}/05_onshore_batch/inputs/open-meteo-56.20N8.54E86m.yaml.../{ => ard}/05_onshore_batch/inputs/power_thrust_table_ccblade_NREL-5p0-126-RWT.csvexamples/{ => ard}/05_onshore_batch/inputs/resource_prep/convert_weather_to_speed_dir.pyexamples/{ => ard}/05_onshore_batch/inputs/resource_prep/open-meteo-56.20N8.54E86m.csvexamples/{ => ard}/05_onshore_batch/inputs/windIO-plant_turbine_NREL-5.0MW-126m-RWT.yamlexamples/{ => ard}/05_onshore_batch/inputs/windio.yamlexamples/{ => ard}/05_onshore_batch/onshore-batch.ipynbexamples/{ => ard}/05_onshore_batch/run_wind_ard.pyexamples/{ => ard}/06_onshore_multiobjective/inputs/ard_system.yamlexamples/{ => ard}/06_onshore_multiobjective/inputs/windio.yamlexamples/{ => ard}/06_onshore_multiobjective/optimization_demo.ipynbexamples/{ => ard}/data/offshore/GulfOfMaine_bathymetry_100x99.txtexamples/{ => ard}/data/windIO-plant_turbine_IEA-22MW-284m-RWT.yamlexamples/{ => ard}/data/windIO-plant_turbine_IEA-3.4MW-130m-RWT.yamlexamples/{ => ard}/data/windIO-plant_wind-resource_wrg-example.yamlassets/logomaker/inputs/windio.yamltest/ard/system/api/inputs_offshore_floating/ard_system.yamltest/ard/system/api/inputs_offshore_monopile/ard_system.yamltest/ard/system/api/inputs_onshore/ard_system.yamltest/ard/system/collection/test_optiwindnet.pytest/ard/system/cost/test_spacing_approximations_connections.pytest/ard/system/geometry/test_constraints.pytest/ard/system/offshore/test_mooring_packing.pytest/ard/unit/api/inputs_onshore/ard_system_bad_windio.yamltest/ard/unit/api/inputs_onshore/windio.yamltest/ard/unit/cost/test_orbit_wrap.pytest/ard/unit/cost/test_wisdem_wrap.pytest/ard/unit/farm_aero/test_floris.pytest/ard/unit/geographic/test_geomorphology.pytest/flowers/system/rotation/__init__.pytest/flowers/system/rotation/precooked.yamltest/flowers/system/rotation/rotational_consistency.npztest/flowers/system/rotation/sandbox.pytest/flowers/system/rotation/test_rotational_consistency.pytest/flowers/system/rotation/test_rotational_workbench.pytest/flowers/system/test_flowers_stack.pytest/flowers/system/wind_roses/wr4.ptest/flowers/unit/layouts/garbage5.ptest/flowers/unit/test_flowers_model.pytest/flowers/unit/test_tool_discrete_pyrite.npztest/flowers/unit/test_tool_random_pyrite.npztest/flowers/unit/test_tools.pytest/flowers/unit/wind_roses/wr4.p.gitignore: auto-removal of trailing whitespaceard/__init__.py: extraneous addition of experimental "house style" code for matplotlib...