[1]:
# This information helps with debugging and getting support :)
import sys, platform
import pandas as pd
import bifacial_radiance as br
print("Working on a ", platform.system(), platform.release())
print("Python version ", sys.version)
print("Pandas version ", pd.__version__)
print("bifacial_radiance version ", br.__version__)
Working on a Windows 10
Python version 3.9.13 (main, Aug 25 2022, 23:51:50) [MSC v.1916 64 bit (AMD64)]
Pandas version 1.5.3
bifacial_radiance version 0.4.4.dev25+g9486645.d20240925
21 - Weather to Module Performance#
Modeling Performance, an End to End Simulation#
This tutorial shows how to use the new function on bifacial_radiance calculatePerformanceModule performance, as well as how to find CEC Module parameters.
[2]:
import os
from pathlib import Path
testfolder = str(Path().resolve().parent.parent / 'bifacial_radiance' / 'TEMP' / 'Tutorial_21')
if not os.path.exists(testfolder): os.mkdir(testfolder)
# Another option using relative address; for some operative systems you might need '/' instead of '\'
# testfolder = os.path.abspath(r'..\..\bifacial_radiance\TEMP')
print ("Your simulation will be stored in %s" % testfolder)
Your simulation will be stored in C:\Users\cdeline\Documents\Python Scripts\Bifacial_Radiance\bifacial_radiance\TEMP\Tutorial_21
[3]:
import bifacial_radiance
import numpy as np
import pandas as pd
import pvlib
bifacial_radiance.__version__
[3]:
'0.4.4.dev25+g9486645.d20240925'
Geting a CEC Module to pass into demo.makeModule#
[4]:
url = 'https://raw.githubusercontent.com/NatLabRockies/SAM/patch/deploy/libraries/CEC%20Modules.csv'
db = pd.read_csv(url, index_col=0) # Reading this might take 1 min or so, the database is big.
Find the module that you want. In this case we know it’s a SunPower of model SPR-E19-310-COM.
Make sure you select only 1 module from the database – sometimes there are similar names.
[5]:
modfilter2 = db.index.str.startswith('SunPower') & db.index.str.endswith('SPR-E19-310-COM')
print(modfilter2)
CECMod = db[modfilter2]
print(len(CECMod), " modules selected. Name of 1st entry: ", CECMod.index[0])
[False False False ... False False False]
1 modules selected. Name of 1st entry: SunPower SPR-E19-310-COM
[ ]:
[6]:
# Selecting only two times as examples
starttime = '01_13_11'; endtime = '01_13_12'
demo = bifacial_radiance.RadianceObj('tutorial_21', path = testfolder) # Create a RadianceObj 'object'
weatherfile = demo.getEPW(lat = 37.5, lon = -77.6) # This location corresponds to Richmond, VA.
metdata = demo.readWeatherFile(weatherFile=weatherfile, starttime=starttime, endtime=endtime)
demo.setGround(0.2)
path = C:\Users\cdeline\Documents\Python Scripts\Bifacial_Radiance\bifacial_radiance\TEMP\Tutorial_21
Getting weather file: USA_VA_Richmond.724010_TMY2.epw
... OK!
8760 line in WeatherFile. Assuming this is a standard hourly WeatherFile for the year for purposes of saving Gencumulativesky temporary weather files in EPW folder.
Coercing year to 2021
Filtering dates
Saving file EPWs\metdata_temp.csv, # points: 8760
Calculating Sun position for Metdata that is right-labeled with a delta of -30 mins. i.e. 12 is 11:30 sunpos
Loading albedo, 1 value(s), 0.200 avg
1 nonzero albedo values.
The CEC data should be passed into the ModuleObj, either at time of creation, or sometime before it is passed into makeScene.
[7]:
mymodule = demo.makeModule(name='test-module', x=1, y=2, bifi=0.9, CECMod=CECMod)
Module Name: test-module
Module test-module updated in module.json
Pre-existing .rad file objects\test-module.rad will be overwritten
The same data could instead be passed after the ModuleObj’s definition, or at time of performance analysis:
[8]:
mymodule.addCEC(CECMod)
[9]:
# Let's make a second module, and set it to the default Prism Solar module type
mymodule2 = demo.makeModule(name='test', x=1, y=2, bifi=0.8, CECMod=None)
Module Name: test
Module test updated in module.json
Pre-existing .rad file objects\test.rad will be overwritten
We’re going to set up two scenes, each with a different module type!
[10]:
sceneDict = {'tilt': 0, 'azimuth': 180, 'pitch': 5,'hub_height':1.5, 'nMods':5, 'nRows': 2}
trackerdict = demo.set1axis(metdata = metdata, cumulativesky = False)
trackerdict = demo.gendaylit1axis()
trackerdict = demo.makeScene1axis(trackerdict, module = mymodule, sceneDict = sceneDict)
Creating ~2 skyfiles.
Created 2 skyfiles in /skies/
Making ~2 .rad files for gendaylit 1-axis workflow (this takes a minute..)
2 Radfiles created in /objects/
Make a second scene with the other module type
[11]:
sceneDict2 = {'tilt': 0, 'azimuth': 180, 'pitch': 5,'hub_height':2.5, 'nMods':2, 'nRows': 1, 'originx': -15}
trackerdict = demo.makeScene1axis(trackerdict, module = mymodule2, sceneDict=sceneDict2, append=True)
Making ~2 .rad files for gendaylit 1-axis workflow (this takes a minute..)
2 Radfiles created in /objects/
[12]:
# Compile both scenes into one octfile. Run 2 different analyses, one on each scene with different front and rear y scan
trackerdict = demo.makeOct1axis()
trackerdict = demo.analysis1axis(sensorsy=[1,3], append=False)
trackerdict = demo.analysis1axis(sensorsy=[3,2], sceneNum=1)
Making 2 octfiles in root directory.
Created 1axis_2021-01-13_1100.oct
Created 1axis_2021-01-13_1200.oct
Analysis1axis: append=False. Over-writing any existing `AnalysisObj` in trackerdict.
Linescan in process: 1axis_2021-01-13_1100_Scene0_Row1_Module3_Front
Linescan in process: 1axis_2021-01-13_1100_Scene0_Row1_Module3_Back
Saved: results\irr_1axis_2021-01-13_1100_Scene0_Row1_Module3_Front.csv
Saved: results\irr_1axis_2021-01-13_1100_Scene0_Row1_Module3_Back.csv
Index: 2021-01-13_1100. Wm2Front: 254.26609999999997. Wm2Back: 39.97652333333334
Linescan in process: 1axis_2021-01-13_1200_Scene0_Row1_Module3_Front
Linescan in process: 1axis_2021-01-13_1200_Scene0_Row1_Module3_Back
Saved: results\irr_1axis_2021-01-13_1200_Scene0_Row1_Module3_Front.csv
Saved: results\irr_1axis_2021-01-13_1200_Scene0_Row1_Module3_Back.csv
Index: 2021-01-13_1200. Wm2Front: 253.4217. Wm2Back: 38.20968333333333
Linescan in process: 1axis_2021-01-13_1100_Scene1_Row1_Module1_Front
Linescan in process: 1axis_2021-01-13_1100_Scene1_Row1_Module1_Back
Saved: results\irr_1axis_2021-01-13_1100_Scene1_Row1_Module1_Front.csv
Saved: results\irr_1axis_2021-01-13_1100_Scene1_Row1_Module1_Back.csv
Index: 2021-01-13_1100. Wm2Front: 253.54973333333336. Wm2Back: 0.0
Linescan in process: 1axis_2021-01-13_1200_Scene1_Row1_Module1_Front
Linescan in process: 1axis_2021-01-13_1200_Scene1_Row1_Module1_Back
Saved: results\irr_1axis_2021-01-13_1200_Scene1_Row1_Module1_Front.csv
Saved: results\irr_1axis_2021-01-13_1200_Scene1_Row1_Module1_Back.csv
Index: 2021-01-13_1200. Wm2Front: 252.57203333333334. Wm2Back: 0.0
[13]:
# Include an AgriPV groundscan too
trackerdict = demo.analysis1axisground(sceneNum=1, sensorsground=10, customname='Silvanas_')
Linescan in process: 1axis_groundscan_2021-01-13_1100Silvanas__Row1_Module1_Front
Saved: results\irr_1axis_groundscan_2021-01-13_1100Silvanas__Row1_Module1.csv
Index: 2021-01-13_1100. Wm2Ground: 204.79288999999997. sensorsground: 10
Linescan in process: 1axis_groundscan_2021-01-13_1200Silvanas__Row1_Module1_Front
Saved: results\irr_1axis_groundscan_2021-01-13_1200Silvanas__Row1_Module1.csv
Index: 2021-01-13_1200. Wm2Ground: 237.48879000000002. sensorsground: 10
[14]:
# show the initial irradiance results before continuing:
demo.results
[14]:
| timestamp | name | modNum | rowNum | sceneNum | Wm2Front | Wm2Back | backRatio | x | y | z | mattype | rearX | rearY | rearZ | rearMat | surf_azm | surf_tilt | theta | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2021-01-13_1100 | 1axis_2021-01-13_1100_Scene0 | 3 | 1 | 0 | [254.26609999999997] | [39.59574, 39.60611, 40.72772] | 0.157223 | [0.01462555] | [0.0] | [1.514648] | [a2.0.a0.test-module.6457] | [0.3581543, -0.0007324219, -0.3596191] | [0.0, 0.0, 0.0] | [1.151367, 1.499512, 1.847656] | [a2.0.a0.test-module.2310, a2.0.a0.test-module... | 90.0 | 44.14 | -44.14 |
| 1 | 2021-01-13_1100 | 1axis_2021-01-13_1100_Scene1 | 1 | 1 | 1 | [253.0651, 253.8192, 253.7649] | [0.0, 0.0] | 0.0 | [-14.625, -14.98389, -15.34277] | [0.0, 0.0, 0.0] | [2.166016, 2.51416, 2.862305] | [a0.0.a0.test.6457, a0.0.a0.test.6457, a0.0.a0... | [-14.75781, -15.23633] | [0.0, 0.0] | [2.267578, 2.731934] | [a0.0.a0.test.6457, a0.0.a0.test.6457] | 90.0 | 44.14 | -44.14 |
| 2 | 2021-01-13_1100 | 1axis_groundscan_2021-01-13_1100Silvanas_ | 1 | 1 | 1 | [199.1224, 201.452, 204.5499, 206.0879, 207.14... | NaN | NaN | [-15.0, -14.44434, -13.88867, -13.33301, -12.7... | [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... | [0.04998779, 0.04998779, 0.04998779, 0.0499877... | [groundplane, groundplane, groundplane, ground... | NaN | NaN | NaN | NaN | 90.0 | 44.14 | -44.14 |
| 3 | 2021-01-13_1200 | 1axis_2021-01-13_1200_Scene0 | 3 | 1 | 0 | [253.4217] | [37.89736, 37.81097, 38.92072] | 0.150775 | [0.007595062] | [0.0] | [1.519531] | [a2.0.a0.test-module.6457] | [0.4658203, -0.0002441406, -0.4663086] | [0.0, 0.0, 0.0] | [1.318359, 1.499146, 1.679932] | [a2.0.a0.test-module.2310, a2.0.a0.test-module... | 90.0 | 21.20 | -21.20 |
| 4 | 2021-01-13_1200 | 1axis_2021-01-13_1200_Scene1 | 1 | 1 | 1 | [252.4514, 252.5719, 252.6928] | [0.0, 0.0] | 0.0 | [-14.52344, -14.9895, -15.45557] | [0.0, 0.0, 0.0] | [2.337891, 2.518677, 2.699463] | [a0.0.a0.test.6457, a0.0.a0.test.6457, a0.0.a0... | [-14.6875, -15.30908] | [0.0, 0.0] | [2.378906, 2.619995] | [a0.0.a0.test.6457, a0.0.a0.test.6457] | 90.0 | 21.20 | -21.20 |
| 5 | 2021-01-13_1200 | 1axis_groundscan_2021-01-13_1200Silvanas_ | 1 | 1 | 1 | [227.9177, 230.1437, 233.8727, 236.2223, 238.9... | NaN | NaN | [-15.0, -14.44434, -13.88867, -13.33301, -12.7... | [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... | [0.04998779, 0.04998779, 0.04998779, 0.0499877... | [groundplane, groundplane, groundplane, ground... | NaN | NaN | NaN | NaN | 90.0 | 21.20 | -21.20 |
Calculating the Performance and Exporting the Results to a CSV#
[15]:
# Calculate performance.
pd.set_option('display.max_columns', 1000);
compiledResults = demo.calculatePerformance1axis()
print(f'\nCompiled results:\n')
display(compiledResults)
No CECModule data passed; using default for Prism Solar BHC72-400
Compiled results:
| timestamp | name | modNum | rowNum | sceneNum | Wm2Front | Wm2Back | backRatio | x | y | z | mattype | rearX | rearY | rearZ | rearMat | POA_eff | Gfront_mean | Grear_mean | Pout_raw | Pout_Gfront | BGG | BGE | Mismatch | Pout | Wind Speed | DNI | DHI | GHI | module_CEC_name | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2021-01-13_1100 | 1axis_2021-01-13_1100_Scene0 | 3 | 1 | 0 | [254.26609999999997] | [39.59574, 39.60611, 40.72772] | 0.157223 | [0.01462555] | [0.0] | [1.514648] | [a2.0.a0.test-module.6457] | [0.3581543, -0.0007324219, -0.3596191] | [0.0, 0.0, 0.0] | [1.151367, 1.499512, 1.847656] | [a2.0.a0.test-module.2310, a2.0.a0.test-module... | 290.244971 | 254.266100 | 39.976523 | 91.775968 | 80.310389 | 14.150086 | 14.276583 | 0.022931 | 91.754923 | 3.8 | 144 | 149 | 211 | SunPower SPR-E19-310-COM |
| 1 | 2021-01-13_1100 | 1axis_2021-01-13_1100_Scene1 | 1 | 1 | 1 | [253.0651, 253.8192, 253.7649] | [0.0, 0.0] | 0.0 | [-14.625, -14.98389, -15.34277] | [0.0, 0.0, 0.0] | [2.166016, 2.51416, 2.862305] | [a0.0.a0.test.6457, a0.0.a0.test.6457, a0.0.a0... | [-14.75781, -15.23633] | [0.0, 0.0] | [2.267578, 2.731934] | [a0.0.a0.test.6457, a0.0.a0.test.6457] | 253.549733 | 253.549733 | 0.000000 | 106.072139 | 106.072139 | 0.000000 | 0.000000 | 0.000000 | 106.072139 | 3.8 | 144 | 149 | 211 | Prism Solar Technologies Inc. BHC72-400 |
| 2 | 2021-01-13_1100 | 1axis_groundscan_2021-01-13_1100Silvanas_ | 1 | 1 | 1 | [199.1224, 201.452, 204.5499, 206.0879, 207.14... | NaN | NaN | [-15.0, -14.44434, -13.88867, -13.33301, -12.7... | [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... | [0.04998779, 0.04998779, 0.04998779, 0.0499877... | [groundplane, groundplane, groundplane, ground... | NaN | NaN | NaN | NaN | 204.792890 | 204.792890 | 0.000000 | 85.584512 | 85.584512 | 0.000000 | 0.000000 | 0.000000 | 85.584512 | 3.8 | 144 | 149 | 211 | Prism Solar Technologies Inc. BHC72-400 |
| 3 | 2021-01-13_1200 | 1axis_2021-01-13_1200_Scene0 | 3 | 1 | 0 | [253.4217] | [37.89736, 37.81097, 38.92072] | 0.150775 | [0.007595062] | [0.0] | [1.519531] | [a2.0.a0.test-module.6457] | [0.4658203, -0.0002441406, -0.4663086] | [0.0, 0.0, 0.0] | [1.318359, 1.499146, 1.679932] | [a2.0.a0.test-module.2310, a2.0.a0.test-module... | 287.810415 | 253.421700 | 38.209683 | 90.333308 | 79.448352 | 13.569759 | 13.700669 | 0.022662 | 90.312836 | 3.9 | 97 | 200 | 249 | SunPower SPR-E19-310-COM |
| 4 | 2021-01-13_1200 | 1axis_2021-01-13_1200_Scene1 | 1 | 1 | 1 | [252.4514, 252.5719, 252.6928] | [0.0, 0.0] | 0.0 | [-14.52344, -14.9895, -15.45557] | [0.0, 0.0, 0.0] | [2.337891, 2.518677, 2.699463] | [a0.0.a0.test.6457, a0.0.a0.test.6457, a0.0.a0... | [-14.6875, -15.30908] | [0.0, 0.0] | [2.378906, 2.619995] | [a0.0.a0.test.6457, a0.0.a0.test.6457] | 252.572033 | 252.572033 | 0.000000 | 104.950213 | 104.950213 | 0.000000 | 0.000000 | 0.000000 | 104.950213 | 3.9 | 97 | 200 | 249 | Prism Solar Technologies Inc. BHC72-400 |
| 5 | 2021-01-13_1200 | 1axis_groundscan_2021-01-13_1200Silvanas_ | 1 | 1 | 1 | [227.9177, 230.1437, 233.8727, 236.2223, 238.9... | NaN | NaN | [-15.0, -14.44434, -13.88867, -13.33301, -12.7... | [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... | [0.04998779, 0.04998779, 0.04998779, 0.0499877... | [groundplane, groundplane, groundplane, ground... | NaN | NaN | NaN | NaN | 237.488790 | 237.488790 | 0.000000 | 98.665486 | 98.665486 | 0.000000 | 0.000000 | 0.000000 | 98.665486 | 3.9 | 97 | 200 | 249 | Prism Solar Technologies Inc. BHC72-400 |
[16]:
demo.exportTrackerDict(savefile=os.path.join('results','Final_Results.csv'),reindex=False)
pd.read_csv(os.path.join('results','Final_Results.csv'))
Exporting TrackerDict
3
3
1
1
[16]:
| Unnamed: 0 | timestamp | rowNum | modNum | sceneNum | name | Wm2Front | Wm2Back | DNI | DHI | GHI | temp_air | wind_speed | theta | surf_tilt | surf_azm | POA_eff | Gfront_mean | Grear_mean | Pout_raw | Mismatch | Pout | Pout_Gfront | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 2021-01-13_1100 | 1 | 3 | 0 | 1axis_2021-01-13_1100_Scene0 | [254.2661] | [39.59574 39.60611 40.72772] | 144 | 149 | 211 | NaN | 3.8 | -44.14 | 44.14 | 90.0 | 290.244971 | 254.266100 | 39.976523 | 91.775968 | 0.022931 | 91.754923 | 80.310389 |
| 1 | 1 | 2021-01-13_1100 | 1 | 1 | 1 | 1axis_2021-01-13_1100_Scene1 | [253.0651 253.8192 253.7649] | [0. 0.] | 144 | 149 | 211 | NaN | 3.8 | -44.14 | 44.14 | 90.0 | 253.549733 | 253.549733 | 0.000000 | 106.072139 | 0.000000 | 106.072139 | 106.072139 |
| 2 | 2 | 2021-01-13_1100 | 1 | 1 | 1 | 1axis_groundscan_2021-01-13_1100Silvanas_ | [199.1224 201.452 204.5499 206.0879 207.1438 ... | NaN | 144 | 149 | 211 | NaN | 3.8 | -44.14 | 44.14 | 90.0 | 204.792890 | 204.792890 | 0.000000 | 85.584512 | 0.000000 | 85.584512 | 85.584512 |
| 3 | 3 | 2021-01-13_1200 | 1 | 3 | 0 | 1axis_2021-01-13_1200_Scene0 | [253.4217] | [37.89736 37.81097 38.92072] | 97 | 200 | 249 | NaN | 3.9 | -21.20 | 21.20 | 90.0 | 287.810415 | 253.421700 | 38.209683 | 90.333308 | 0.022662 | 90.312836 | 79.448352 |
| 4 | 4 | 2021-01-13_1200 | 1 | 1 | 1 | 1axis_2021-01-13_1200_Scene1 | [252.4514 252.5719 252.6928] | [0. 0.] | 97 | 200 | 249 | NaN | 3.9 | -21.20 | 21.20 | 90.0 | 252.572033 | 252.572033 | 0.000000 | 104.950213 | 0.000000 | 104.950213 | 104.950213 |
| 5 | 5 | 2021-01-13_1200 | 1 | 1 | 1 | 1axis_groundscan_2021-01-13_1200Silvanas_ | [227.9177 230.1437 233.8727 236.2223 238.9651 ... | NaN | 97 | 200 | 249 | NaN | 3.9 | -21.20 | 21.20 | 90.0 | 237.488790 | 237.488790 | 0.000000 | 98.665486 | 0.000000 | 98.665486 | 98.665486 |
Now look at gencumulativesky tracking workflow#
[17]:
starttime = '01_13_11'; endtime = '12_13_12'
demo = bifacial_radiance.RadianceObj('tutorial_21', path = testfolder) # Create a RadianceObj 'object'
weatherfile = demo.getEPW(lat = 37.5, lon = -77.6) # This location corresponds to Richmond, VA.
metdata = demo.readWeatherFile(weatherFile=weatherfile, starttime=starttime, endtime=endtime)
#metdata = demo.readWeatherFile(weatherFile=weatherfile)
demo.setGround(0.2)
mymodule = demo.makeModule(name='test-module', x=1, y=2, bifi=0.9, CECMod=CECMod)
path = C:\Users\cdeline\Documents\Python Scripts\Bifacial_Radiance\bifacial_radiance\TEMP\Tutorial_21
Getting weather file: USA_VA_Richmond.724010_TMY2.epw
... OK!
8760 line in WeatherFile. Assuming this is a standard hourly WeatherFile for the year for purposes of saving Gencumulativesky temporary weather files in EPW folder.
Coercing year to 2021
Filtering dates
Saving file EPWs\metdata_temp.csv, # points: 8760
Calculating Sun position for Metdata that is right-labeled with a delta of -30 mins. i.e. 12 is 11:30 sunpos
Loading albedo, 1 value(s), 0.200 avg
1 nonzero albedo values.
Module Name: test-module
Module test-module updated in module.json
Pre-existing .rad file objects\test-module.rad will be overwritten
[18]:
sceneDict = {'tilt': 0, 'azimuth': 180, 'pitch': 5,'hub_height':1.5, 'nMods':5, 'nRows': 2}
trackerdict = demo.set1axis(metdata=metdata, cumulativesky=True, limit_angle=15, backtrack=False)
trackerdict = demo.genCumSky1axis()
trackerdict = demo.makeScene1axis(trackerdict, module = mymodule, sceneDict = sceneDict)
trackerdict = demo.makeOct1axis()
trackerdict = demo.analysis1axis(modWanted = [2,4], sensorsy=[2,3])
trackerdict = demo.analysis1axisground(sensorsground=10)
Saving file EPWs\1axis_-15.0.csv, # points: 1875
Saving file EPWs\1axis_-10.0.csv, # points: 241
Saving file EPWs\1axis_0.0.csv, # points: 2
Saving file EPWs\1axis_5.0.csv, # points: 242
Saving file EPWs\1axis_10.0.csv, # points: 33
Saving file EPWs\1axis_15.0.csv, # points: 1683
message: There were 1833 sun up hours in this climate file
Total Ibh/Lbh: 0.000000
Created skyfile skies\1axis_-15.0.rad
message: There were 238 sun up hours in this climate file
Total Ibh/Lbh: 0.000000
Created skyfile skies\1axis_-10.0.rad
message: There were 2 sun up hours in this climate file
Total Ibh/Lbh: 0.000000
Created skyfile skies\1axis_0.0.rad
message: There were 239 sun up hours in this climate file
Total Ibh/Lbh: 0.000000
Created skyfile skies\1axis_5.0.rad
message: There were 33 sun up hours in this climate file
Total Ibh/Lbh: 0.000000
Created skyfile skies\1axis_10.0.rad
message: There were 1661 sun up hours in this climate file
Total Ibh/Lbh: 0.000000
Created skyfile skies\1axis_15.0.rad
Making .rad files for cumulativesky 1-axis workflow
6 Radfiles created in /objects/
Making 6 octfiles in root directory.
Created 1axis_-15.0.oct
Created 1axis_-10.0.oct
Created 1axis_0.0.oct
Created 1axis_5.0.oct
Created 1axis_10.0.oct
Created 1axis_15.0.oct
Linescan in process: 1axis_-15.0_Scene0_Row1_Module2_Front
Linescan in process: 1axis_-15.0_Scene0_Row1_Module2_Back
Saved: results\irr_1axis_-15.0_Scene0_Row1_Module2_Front.csv
Saved: results\irr_1axis_-15.0_Scene0_Row1_Module2_Back.csv
Index: -15.0. Wm2Front: 627314.8999999999. Wm2Back: 80826.80666666666
Linescan in process: 1axis_-15.0_Scene0_Row1_Module4_Front
Linescan in process: 1axis_-15.0_Scene0_Row1_Module4_Back
Saved: results\irr_1axis_-15.0_Scene0_Row1_Module4_Front.csv
Saved: results\irr_1axis_-15.0_Scene0_Row1_Module4_Back.csv
Index: -15.0. Wm2Front: 633150.2. Wm2Back: 74338.82666666668
Linescan in process: 1axis_-10.0_Scene0_Row1_Module2_Front
Linescan in process: 1axis_-10.0_Scene0_Row1_Module2_Back
Saved: results\irr_1axis_-10.0_Scene0_Row1_Module2_Front.csv
Saved: results\irr_1axis_-10.0_Scene0_Row1_Module2_Back.csv
Index: -10.0. Wm2Front: 146242.85. Wm2Back: 19780.77666666667
Linescan in process: 1axis_-10.0_Scene0_Row1_Module4_Front
Linescan in process: 1axis_-10.0_Scene0_Row1_Module4_Back
Saved: results\irr_1axis_-10.0_Scene0_Row1_Module4_Front.csv
Saved: results\irr_1axis_-10.0_Scene0_Row1_Module4_Back.csv
Index: -10.0. Wm2Front: 148151.5. Wm2Back: 17382.633333333335
Linescan in process: 1axis_0.0_Scene0_Row1_Module2_Front
Linescan in process: 1axis_0.0_Scene0_Row1_Module2_Back
Saved: results\irr_1axis_0.0_Scene0_Row1_Module2_Front.csv
Saved: results\irr_1axis_0.0_Scene0_Row1_Module2_Back.csv
Index: 0.0. Wm2Front: 967.20935. Wm2Back: 151.3741
Linescan in process: 1axis_0.0_Scene0_Row1_Module4_Front
Linescan in process: 1axis_0.0_Scene0_Row1_Module4_Back
Saved: results\irr_1axis_0.0_Scene0_Row1_Module4_Front.csv
Saved: results\irr_1axis_0.0_Scene0_Row1_Module4_Back.csv
Index: 0.0. Wm2Front: 1004.4355. Wm2Back: 118.55160000000001
Linescan in process: 1axis_5.0_Scene0_Row1_Module2_Front
Linescan in process: 1axis_5.0_Scene0_Row1_Module2_Back
Saved: results\irr_1axis_5.0_Scene0_Row1_Module2_Front.csv
Saved: results\irr_1axis_5.0_Scene0_Row1_Module2_Back.csv
Index: 5.0. Wm2Front: 149129.2. Wm2Back: 19709.866666666665
Linescan in process: 1axis_5.0_Scene0_Row1_Module4_Front
Linescan in process: 1axis_5.0_Scene0_Row1_Module4_Back
Saved: results\irr_1axis_5.0_Scene0_Row1_Module4_Front.csv
Saved: results\irr_1axis_5.0_Scene0_Row1_Module4_Back.csv
Index: 5.0. Wm2Front: 149867.15000000002. Wm2Back: 17504.570000000003
Linescan in process: 1axis_10.0_Scene0_Row1_Module2_Front
Linescan in process: 1axis_10.0_Scene0_Row1_Module2_Back
Saved: results\irr_1axis_10.0_Scene0_Row1_Module2_Front.csv
Saved: results\irr_1axis_10.0_Scene0_Row1_Module2_Back.csv
Index: 10.0. Wm2Front: 17213.73. Wm2Back: 2419.6253333333334
Linescan in process: 1axis_10.0_Scene0_Row1_Module4_Front
Linescan in process: 1axis_10.0_Scene0_Row1_Module4_Back
Saved: results\irr_1axis_10.0_Scene0_Row1_Module4_Front.csv
Saved: results\irr_1axis_10.0_Scene0_Row1_Module4_Back.csv
Index: 10.0. Wm2Front: 17476.864999999998. Wm2Back: 2028.0343333333333
Linescan in process: 1axis_15.0_Scene0_Row1_Module2_Front
Linescan in process: 1axis_15.0_Scene0_Row1_Module2_Back
Saved: results\irr_1axis_15.0_Scene0_Row1_Module2_Front.csv
Saved: results\irr_1axis_15.0_Scene0_Row1_Module2_Back.csv
Index: 15.0. Wm2Front: 714340.8500000001. Wm2Back: 86047.87
Linescan in process: 1axis_15.0_Scene0_Row1_Module4_Front
Linescan in process: 1axis_15.0_Scene0_Row1_Module4_Back
Saved: results\irr_1axis_15.0_Scene0_Row1_Module4_Front.csv
Saved: results\irr_1axis_15.0_Scene0_Row1_Module4_Back.csv
Index: 15.0. Wm2Front: 721632.25. Wm2Back: 79538.19666666667
Linescan in process: 1axis_groundscan_-15.0_Row1_Module3_Front
Saved: results\irr_1axis_groundscan_-15.0_Row1_Module3.csv
Index: -15.0. Wm2Ground: 495183.01000000007. sensorsground: 10
Linescan in process: 1axis_groundscan_-10.0_Row1_Module3_Front
Saved: results\irr_1axis_groundscan_-10.0_Row1_Module3.csv
Index: -10.0. Wm2Ground: 118693.192. sensorsground: 10
Linescan in process: 1axis_groundscan_0.0_Row1_Module3_Front
Saved: results\irr_1axis_groundscan_0.0_Row1_Module3.csv
Index: 0.0. Wm2Ground: 722.9592299999999. sensorsground: 10
Linescan in process: 1axis_groundscan_5.0_Row1_Module3_Front
Saved: results\irr_1axis_groundscan_5.0_Row1_Module3.csv
Index: 5.0. Wm2Ground: 110024.954. sensorsground: 10
Linescan in process: 1axis_groundscan_10.0_Row1_Module3_Front
Saved: results\irr_1axis_groundscan_10.0_Row1_Module3.csv
Index: 10.0. Wm2Ground: 12419.3521. sensorsground: 10
Linescan in process: 1axis_groundscan_15.0_Row1_Module3_Front
Saved: results\irr_1axis_groundscan_15.0_Row1_Module3.csv
Index: 15.0. Wm2Ground: 388078.31. sensorsground: 10
[19]:
results = demo.calculatePerformance1axis() # saves to demo.compiledResults and results/Cumulative_Results.csv
print('\nCompiled results:\n')
display(demo.compiledResults)
Compiled results:
| rowNum | modNum | sceneNum | BGG | Gfront_mean | Grear_mean | POA_eff | Wm2Front | Wm2Back | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 0 | 11.360663 | 1.655209e+06 | 208936.319433 | [1845370.4100300001, 1840857.22746, 1843526.64... | [1658321.0965, 1652096.3821999999, nan, nan, n... | [211290.74520000003, 206276.09790000002, 20924... |
| 1 | 1 | 3 | 0 | NaN | 1.125122e+06 | NaN | [0.0, 0.0, 0.0] | [632528.9293000001, 704530.8141, 871543.067099... | [nan, nan, nan] |
| 2 | 1 | 4 | 0 | 10.280712 | 1.671282e+06 | 190910.812600 | [1845953.2714499997, 1839710.38887, 1843642.7352] | [1671845.97, 1670718.8309999998, nan, nan, nan... | [194078.7455, 187142.2093, 191511.48300000004] |
[20]:
# Results are also automatically saved in \results\Cumulative_Results.csv
pd.read_csv(os.path.join('results','Cumulative_Results.csv'))
[20]:
| rowNum | modNum | sceneNum | BGG | Gfront_mean | Grear_mean | POA_eff | Wm2Front | Wm2Back | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 0 | 11.361 | 1655208.739 | 208936.319 | [1845370.4100300001, 1840857.22746, 1843526.64... | [1658321.0965, 1652096.3821999999, nan, nan, n... | [211290.74520000003, 206276.09790000002, 20924... |
| 1 | 1 | 3 | 0 | NaN | 1125121.777 | NaN | [0.0, 0.0, 0.0] | [632528.9293000001, 704530.8141, 871543.067099... | [nan, nan, nan] |
| 2 | 1 | 4 | 0 | 10.281 | 1671282.400 | 190910.813 | [1845953.2714499997, 1839710.38887, 1843642.7352] | [1671845.97, 1670718.8309999998, nan, nan, nan... | [194078.7455, 187142.2093, 191511.48300000004] |
[ ]: