-
Notifications
You must be signed in to change notification settings - Fork 28
Issue 173 coordinate system integration #173
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
Open
ChristopherCampos
wants to merge
191
commits into
develop
Choose a base branch
from
issue_172_coordinate_system_integration
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 162 commits
Commits
Show all changes
191 commits
Select commit
Hold shift + click to select a range
348b934
add version requirements for landbosse dependencies
3a8d7e8
add arguments to setup() method
4a9860e
this version of setup.py works with pip
3800160
Add new directory to serve as landbosse api for interfacing with tool…
6f47b3f
prepare setup.py for pip install
2db733d
delete unnecessary files
1a9841b
add file to interface with SAM
bcb123f
Add folder with detailed input csvs
4544773
add pytest to install_requires
5b3cc3a
move csvs outside version control for now
3cff927
include landbosse_api in set sub directories to be packaged by bdist
1569cc2
Add function callable by SAM to run LandBOSSE
58891cc
Finish setting up run.py for SAM
b975e6c
Final first version to be hosted on pypi
f4755d2
remove run_landbosse() function call
77648e7
Change version of landbosse for pip
c2f7e05
remove print function in run_landbosse()
20de60b
Merge branch develop
e9b55c6
Replace Shapely with Sympy's version of Polygon and Point in Erection…
59f9e75
Add error handling for SAM
09b8c8d
Change polygon.contains to polygon.encloses_point()
383b13d
Add a nested dictionary for storing Exceptions (to output in SAM)
1c12d58
Update exception handling for SAM
b9d704d
Merge pull request #104 from WISDEM/issue_103
parangat94 2d76679
merge branch develop
parangat94 26bf66f
Add custom output dictionary for landbosse API (collection and erection)
parangat94 2a3502a
Complete development of results dict for landbosse_api
parangat94 d5f8beb
Add descriptive comments to explain scope of functions run_landbosse(…
parangat94 67eec82
Remove redundant initialization of results dictionary
parangat94 cad4a3c
Update version number and package dependecies list for new pip instal…
parangat94 e52ed02
add equation for tower mass as a function of nameplate and hub height
parangat94 a0e8c7f
Add turbine scaling functions
parangat94 89c66c9
Add function to modify components DF based on SAM UI inputs modified …
parangat94 9af91dd
Complete turbine scaling script for landbosse api
parangat94 deff19e
add sam_inputs dictionaryas reqd. argument to run_landbosse()
parangat94 d8d8edc
remove print statements and update version number
parangat94 e6d4e42
Add descriptive comment to help user pass the correct format of weath…
parangat94 b8216ae
add exception handlingfor weather data read in from SAM. That is, it …
parangat94 5e8b115
Change turbine rating from MW to kW in turbine_scaling.py; and update…
parangat94 9becf64
Add bounds on turbine size, and remove creation and deletion of temp …
parangat94 eac2021
Fix data type parsing error
eberlea 902178c
Updates import of weather file in API
eberlea 01ab84f
Revert "Fix data type parsing error"
parangat94 5c7917b
Merge branch 'pip_installable' of https://github.com/WISDEM/LandBOSSE…
parangat94 4b4c55d
Add exception handling when SAM user enters less than 10 turbines
parangat94 c8a322c
Exceptino handling for when SAM user enters a negative input
parangat94 808d67e
Modify default user inputs spreadsheet, And replace 99s in project da…
parangat94 84b9c52
update pandas version in setup; and prepare LandBOSSE version for PyPI
parangat94 48961c5
Update landbosse version to 2.2.7
parangat94 c2b7749
Merge branch master into branch pip_installable
parangat94 ed14b87
prepare v. 2.2.7 for pip install
parangat94 c416ec8
Fix labor cost multiplier bug in landbosse api
parangat94 a3e8e85
Change dict key name from total_project_cost to total_bos_cost
parangat94 6f5e4c2
Add keyword pass to empty error handling classes
parangat94 160e07d
Update LandBOSSE project data file
parangat94 ee4a0ed
Update LandBOSSE version to v.2.2.7.2
parangat94 cacc6cc
Fix bug in total bos cost calculation. Management cost was not being …
parangat94 96c5547
Change landbosse api version to v.2.2.7.3
parangat94 026bcac
ship a default weather file with pip installable landbosse
parangat94 2f0ea63
Add detailed run_landbosse() documentation, and fix bug in site_prep …
parangat94 6c4d56d
Implement loop to collect user provided inputs that will override def…
parangat94 c67b16e
Add file for running API tests
parangat94 f895500
fix file path of API_text.py
parangat94 5fd705b
Add 8 tests to run_landbosse(). These test the individual total cost …
parangat94 7f006c7
Add a test for read_weather_data()
parangat94 c824e09
add a test for read_data()
parangat94 c6c9683
Fix typo in api documentation
parangat94 20893f0
Finish writing tests for all outputs from landbosse api
parangat94 c83e287
fix typo in run_landbosse() documentation
parangat94 28e17c4
Add package level documentation for LandBOSSE API
parangat94 5ed56bd
provide example of initializing a python input dictionary
parangat94 5938e34
update LandBOSSE version to version 2.2.7.4
parangat94 94c1971
Fix documentation and update LandBOSSE version for PyPI
parangat94 0ae8c29
Update documentation and landbosse version number for pip installation
parangat94 89b9488
add file .travis.yml to initiate continuous integration in LandBOSSE
parangat94 0e1707f
specify pip_installable branch only in travis.yml
parangat94 7895e48
add link to travis ci build status
parangat94 2895cc3
Fix Travis CI badge
parangat94 bc0b58e
Fix typo in travis ci badge widget code
parangat94 e94e862
Specify test file to be run by travis ci
parangat94 744572b
Merge branch 'pip_installable' of https://github.com/WISDEM/LandBOSSE…
parangat94 0947603
Fix path issue in travis.yml
parangat94 c4e8759
try fix for specifying path in travis.yml
parangat94 e9ec83b
Try to fix path error
parangat94 4449bc3
attempt 3 to fix path error in travis ci
parangat94 486e9c1
Add a bug in run.py to test travis CI
parangat94 2eeae09
fix line 14 in travis.yml --> change 'python API_test.py' to 'pytest …
parangat94 40f88ba
Change Travis CI Badge Type
parangat94 fa38078
Fix typo in Travis CI badge
parangat94 49f7f2e
provide link to Travis CI page in Build Status badge
parangat94 e16004c
Force add a bug in run.py to test whether travis ci breaks or not
parangat94 d0ff39a
Remove bug that was intentionally added to break Travis CI build
parangat94 2fd46ff
protect all sheets of project_data_defaults.xlsx to prevent changes t…
parangat94 6f5b5a6
Move API testing to its own designated sub directory within landbosse_a'
parangat94 a607c9a
move API test to its own sub-directory, and update travis.yml accordi…
parangat94 6a0d3d3
Update Travis CI badge url
parangat94 4c68313
Reverting Travis CI build status badge url
parangat94 8041519
Change build status badge to image
parangat94 488cc2f
change build status badge to RST
parangat94 5aa8f0c
Finalize build status badge style to markdown
parangat94 6249783
add forward slash in path in travis.yml
parangat94 5efeb95
Refactor run.py coding style according to PEP8 style guidelines
parangat94 3611e13
Refactor turbine_scaling.py code to match PEP8 style guidelines
parangat94 190e049
Re-position example of how to run landbosse_api, to bottom of file
parangat94 89d6daf
Add pypi badge
parangat94 40e2663
Remove pypi badge
parangat94 6992eee
added user weather dataframe input option
Ben-Anderson107 e381867
Replace template input files with pure public data files
parangat94 6ecdf74
Merge branch develop
parangat94 6760095
Merge develop branch
parangat94 8516e1d
Comment out example of how to run landbosse_api section
parangat94 7684512
Merge pull request #140 from WISDEM/issue_137
parangat94 2690b4e
Merge branch 'develop' into pip_installable
parangat94 2cc80a1
Fix mob cost sent to API output
parangat94 2b00e73
Update API_test expected results, after merging develop
parangat94 af08b4b
Update travis.yml
parangat94 1587bf3
Comment out develop branch lines from travis
parangat94 d51cb57
Comment out run_landbosse() in run.py
parangat94 3634b0d
add pip install commands in travis.yml from landbosse dependancies
parangat94 7a8bb22
change import
parangat94 9ba66d8
all api tests pass
parangat94 c5787ce
Add import landbosse
parangat94 925750b
comment out cd statement in Travis
parangat94 c48356c
Add __init__.py to API_test
parangat94 61373bb
Add develop branch to tracked branches in travis.yml
parangat94 8b902a4
Fix broken syntax in travis.yml
parangat94 c04e450
Comment out pip install psycopg2-binaryyam in travis.yml
parangat94 a61798c
add pip install psycopg2==2.7.5 to travis.yml
parangat94 68746af
Add switch to override component scaling, and add GE 15 dist to API d…
parangat94 692e545
Comment out run_landbosse function call in run.py
parangat94 586afd5
Extend min number of turbines condition to > 0
parangat94 b623b6a
Merge branch 'pip_installable' of https://github.com/WISDEM/LandBOSSE…
parangat94 883b39f
Add argument to read_data()
parangat94 38e016c
Merge branch 'pip_installable' of https://github.com/WISDEM/LandBOSSE…
parangat94 b638b2d
Switch to relative imports in API
parangat94 3627d60
Add recent landbosse changes
parangat94 8b1ec80
Add 00k/000k substation adders for DW
parangat94 d92a86c
Ensure plant size is getting updated based on user provided num turbi…
parangat94 b57c731
Change relative imports to absolute
parangat94 f1ebe6f
Add display_results() method to main
parangat94 efd1bc2
Changes from HybridBOSSE dev
parangat94 d8ffff2
Update import paths in LandBOSSEs API
parangat94 4804a42
Switch to relative imports in LandBOSSEs API
parangat94 bea2360
Change v. #
parangat94 7349783
Change python required version to 3.6 and up
parangat94 64302a8
Update api version to 2.3.0.1
parangat94 dee5510
switch to relative import
parangat94 478be52
Update project data file name in manifest
parangat94 46317d8
Update version #
parangat94 a771e32
Merge pull request #169 from WISDEM/release-2.3.4
akey7 3e22372
Merge pull request #171 from WISDEM/release-2.3.5
akey7 31ee207
merge branch master into branch pip_installable
87b9d01
Updated Collectioncost.py and XlsxReader.py to accomodate an adjacenc…
ChristopherCampos 69f77dc
Manual mode and Auto mode are functional and show functional differen…
ChristopherCampos 08aa941
Update run.py
ChristopherCampos 25e25ca
Update run.py
ChristopherCampos 6ebae2d
Update XlsxReader.py
ChristopherCampos c39b28e
Update run.py
ChristopherCampos d2707be
Update CollectionCost.py
ChristopherCampos a4b72d0
Make DW substation costs 0
114aab6
Update pytest inputs to get unit tests to pass
a0c74ef
Update packages in setup.py
01edafd
Change version requirement of scipy in setup.py
ca64804
Comment out travis CI build badge
parangat94 2564bba
Added auto mode as default mode and corrected power costs.
ChristopherCampos 26f7889
Fixed voltage units
ChristopherCampos 78f049d
Fixed units and created an auto default mode.
ChristopherCampos 9a56be8
Fixed units and replaced capacity with power
ChristopherCampos d041545
Update CollectionCost.py
ChristopherCampos 58d6b72
Update XlsxReader.py
ChristopherCampos 1e411a0
automatically runs in auto mode without specification
ChristopherCampos ad55e41
Update XlsxReader.py
ChristopherCampos b63c2d0
Update XlsxReader.py
ChristopherCampos fd3de20
Update CollectionCost.py
ChristopherCampos 4590cbe
Branched from Remote
ChristopherCampos c22ecbd
Branched from remote
ChristopherCampos 9d7d67a
Added auto mode as default
ChristopherCampos f2c21f1
Merged pip_installable
ChristopherCampos 4e7337d
Fixed validation issue on manual mode
ChristopherCampos f820d09
Working build with Manual Mode of LandBOSSE with Auto Mode as default
ChristopherCampos c179375
Update CollectionCost.py
ChristopherCampos b1a08eb
Update CollectionCost.py
ChristopherCampos ef055e3
Fixed issue with new parameter
ChristopherCampos 67bda87
f
ChristopherCampos 16ee19e
Fixed parameter issues.
ChristopherCampos 3be7677
F
ChristopherCampos c6c409f
Update XlsxReader.py
ChristopherCampos 448eb25
Update XlsxReader.py
ChristopherCampos 2334b35
Update XlsxReader.py
ChristopherCampos 5d9ea0e
Update XlsxReader.py
ChristopherCampos 2a23395
Update XlsxReader.py
ChristopherCampos File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,6 @@ | ||
| include README.md | ||
| include CHANGELOG.md | ||
| include LICENSE.txt | ||
| include landbosse/landbosse_api/project_list.xlsx | ||
| include landbosse/landbosse_api/project_data/ge15_public.xlsx | ||
| include landbosse/landbosse_api/project_data/az_rolling.srw |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,132 @@ | ||
| import os | ||
| from ..run import * | ||
| from unittest import TestCase | ||
|
|
||
|
|
||
| class TestLandBOSSE_API(TestCase): | ||
| def setUp(self): | ||
| self.file_path = os.path.dirname(__file__) + '/project_data/az_rolling.srw' | ||
| api_inputs = dict() | ||
| api_inputs['num_turbines'] = 100 | ||
| api_inputs['project_id'] = 'foundation_validation_ge15' | ||
| self.results = run_landbosse(api_inputs) | ||
| print(self.results) | ||
|
|
||
| def test_total_BOS_cost(self):\ | ||
| self.assertEqual(44208796.36106637, self.results['total_bos_cost']) | ||
|
|
||
| def test_total_management_cost(self): | ||
| delta = 0.002 # max % tolerance in expected and actual value | ||
| self.assertAlmostEqual(10570956.97, | ||
| self.results['total_management_cost'], | ||
| delta=int(delta * 10570956.97)) | ||
|
|
||
| self.assertAlmostEqual(188371.90, | ||
| self.results['insurance_usd'], | ||
| delta=int(delta * 188371.90)) | ||
|
|
||
| self.assertAlmostEqual(400723.14, | ||
| self.results['construction_permitting_usd'], | ||
| delta=int(delta * 400723.14)) | ||
|
|
||
| self.assertAlmostEqual(1887763.492, | ||
| self.results['project_management_usd'], | ||
| delta=int(delta * 1887763.492)) | ||
|
|
||
| self.assertAlmostEqual(336378.394, | ||
| self.results['bonding_usd'], | ||
| delta=int(delta * 336378.394)) | ||
|
|
||
| self.assertAlmostEqual(4379646.689, | ||
| self.results['markup_contingency_usd'], | ||
| delta=int(delta * 4379646.689)) | ||
|
|
||
| self.assertAlmostEqual(2071325, | ||
| self.results['engineering_usd'], | ||
| delta=int(delta * 2071325)) | ||
|
|
||
| self.assertAlmostEqual(1306748.35, | ||
| self.results['site_facility_usd'], | ||
| delta=int(delta * 1306748.35)) | ||
|
|
||
| total_management_cost = self.results['insurance_usd'] + \ | ||
| self.results['construction_permitting_usd'] + \ | ||
| self.results['project_management_usd'] + \ | ||
| self.results['bonding_usd'] + \ | ||
| self.results['markup_contingency_usd'] + \ | ||
| self.results['engineering_usd'] + \ | ||
| self.results['site_facility_usd'] | ||
|
|
||
| self.assertAlmostEqual(self.results['total_management_cost'], | ||
| total_management_cost, | ||
| delta=int(delta * self.results['total_management_cost'])) | ||
|
|
||
| def test_siteprep_cost(self): | ||
| self.assertEqual(self.results['total_sitepreparation_cost'], 3209538.616279147) | ||
| self.assertEqual(round(self.results['sitepreparation_equipment_rental_usd'], 2), 412013.84) | ||
| self.assertEqual(round(self.results['sitepreparation_labor_usd'], 4), 609463.1297) | ||
| self.assertEqual(round(self.results['sitepreparation_material_usd'], 4), 797751.5346) | ||
| self.assertEqual(round(self.results['sitepreparation_mobilization_usd'], 5), 83009.35197) | ||
| self.assertEqual(self.results['sitepreparation_other_usd'], 1307300.76) | ||
|
|
||
| total_siteprep_cost = self.results['sitepreparation_equipment_rental_usd'] + \ | ||
| self.results['sitepreparation_labor_usd'] + \ | ||
| self.results['sitepreparation_material_usd'] + \ | ||
| self.results['sitepreparation_mobilization_usd'] + \ | ||
| self.results['sitepreparation_other_usd'] | ||
|
|
||
| self.assertEqual(self.results['total_sitepreparation_cost'], total_siteprep_cost) | ||
|
|
||
| def test_foundation_cost(self): | ||
| self.assertEqual(self.results['total_foundation_cost'], 10036157.011254452) | ||
| self.assertEqual(self.results['foundation_equipment_rental_usd'], 307553.56983444514) | ||
| self.assertEqual(round(self.results['foundation_labor_usd'], 3), 3677659.987) | ||
| self.assertEqual(round(self.results['foundation_material_usd'], 3), 5573031.216) | ||
| self.assertEqual(round(self.results['foundation_mobilization_usd'], 4), 477912.2386) | ||
|
|
||
| total_foundation_cost = self.results['foundation_equipment_rental_usd'] + \ | ||
| self.results['foundation_labor_usd'] + \ | ||
| self.results['foundation_material_usd'] + \ | ||
| self.results['foundation_mobilization_usd'] | ||
|
|
||
| self.assertEqual(self.results['total_foundation_cost'], total_foundation_cost) | ||
|
|
||
| def test_total_erection_cost(self): | ||
| self.assertEqual(6811700.7960274285, self.results['total_erection_cost']) | ||
| self.assertEqual(748911.4927891536, self.results['erection_equipment_rental_usd']) | ||
| self.assertEqual(5134653.8032382745, self.results['erection_labor_usd']) | ||
| self.assertEqual(0, self.results['erection_material_usd']) | ||
| self.assertEqual(0, self.results['erection_other_usd']) | ||
| self.assertEqual(28825.5, self.results['erection_fuel_usd']) | ||
| self.assertEqual(899310, self.results['erection_mobilization_usd']) | ||
|
|
||
| total_erection_cost = self.results['erection_equipment_rental_usd'] + \ | ||
| self.results['erection_labor_usd'] + \ | ||
| self.results['erection_material_usd'] + \ | ||
| self.results['erection_other_usd'] + \ | ||
| self.results['erection_fuel_usd'] + \ | ||
| self.results['erection_mobilization_usd'] | ||
|
|
||
| self.assertEqual(self.results['total_erection_cost'], total_erection_cost) | ||
|
|
||
| def test_total_gridconnection_cost(self): | ||
| self.assertEqual(4084775.152898776, self.results['total_gridconnection_cost']) | ||
|
|
||
| def test_total_collection_cost(self): | ||
| self.assertEqual(self.results['total_collection_cost'], 4869435.746468595) | ||
| self.assertEqual(self.results['collection_equipment_rental_usd'], 426614.6862960762) | ||
| self.assertEqual(self.results['collection_labor_usd'], 1402888.0267842393) | ||
| self.assertEqual(self.results['collection_material_usd'], 2808055.140699299) | ||
| self.assertEqual(self.results['collection_mobilization_usd'], 231877.89268898076) | ||
|
|
||
| def test_total_substation_cost(self): | ||
| self.assertEqual(4859182.072082901, self.results['total_substation_cost']) | ||
|
|
||
| def test_read_weather_data(self): | ||
| weather_data = read_weather_data(self.file_path) | ||
| self.assertEqual(len(weather_data), 8760) | ||
|
|
||
| def test_read_data(self): | ||
| input_dictionary = dict() | ||
| project_list = read_data(input_dictionary) | ||
| self.assertEqual(len(project_list.columns), 47) |
Empty file.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.