What’s New#
These are new features and improvements of note in each release.
v0.5.2 (May 29, 2026)#
Bugfix release
Bug fixes#
Change references that had been nrel.gov domain to nlr.gov domain.
Change Github references from github.com/nrel/ to github.com/NatLabRockies/
Documentation#
Contributors#
Chris Deline (@cdeline)
v0.5.1 (January 21, 2026)#
Bugfix release
Bug fixes#
Documentation#
Contributors#
Chris Deline (@cdeline)
v0.5.0 (November 6, 2025)#
Major release with new functionality. Specifically multiple SceneObjs can be defined using makeScene(append=True). Also, results are stored in a DataFrame as RadianceObj.results and AnalysisObj.results
Deprecations#
RadianceObj.
appendtoSceneis deprecated in favor of SceneObj.appendtoScenemakeScene.`appendtoScene` is deprecated in favor ofmakeScene.`customtext`makeScene1axis.`appendtoScene` is deprecated in favor ofmakeScene1axis.`customtext`Wm2Front and Wm2Back are no longer attributes of
RadianceObjobject. Results are now tracked in AnalysisObj.resultsand RadianceObj.resultsfor trackerDict simulations.
API Changes#
Final irradiance and performance data are stored in: AnalysisObj.
resultsand RadianceObj.results.Results generated with the above can be saved with the
exportTrackerDict, which saves an Hourly, Monthly and Yearly .csvs in the results folder.trackerdict[‘key’][‘scene’] has been renamed trackerdict[‘key’][‘scenes’] and now returns a list of SceneObjs.
Raw NSRDB weather data can now be loaded using
readWeatherData.analysisupdated to allow single (front-only) scans in support of AgriPV modeling. Pass None to backscan for single-sided scan. (GH 499)makeScene.`append` added to allow multiple scenes to be attached to a single RadianceObj. Default: False (over-write the scene). (GH 487)makeScene1axis.`append` added to allow multiple scenes to be attached to a single RadianceObj. Default: False (over-write the scene). (GH 487)scene.appendtoscene functionality added (add more detail here, fix hyperlinks). (GH 487)
trackerdict stores list of
AnalysisObjobjects in trackerdict[‘key’][‘AnalysisObj’]. (GH 487)runModelChain()returns only RadianceObj value, not AnalysisObj as well. (GH 487)moduleAnalysishas new input parameters frontsurfaceoffset and backsurfaceoffset, to adjust the scan distance from the module surface front or rear. default 0.005 (GH 567)Added
integrated_spectrumto generate integrated sums across the full spectra. (GH 576)
Enhancements#
RadianceObjandGroundObjandMetObjnow have self.columns and self.methods introspection to list data columsn and methods available. (GH 495)multiple sceneObjects are tracked by the RadianceObj now. New function
sceneNameswill return the list of scenes being tracked. (GH 487)New function AnalysisObj.
calculatePerformanceand ModuleObj.calculatePerformanceto call CEC performance calculation from within the AnalysisObjNew function
calculatePerformance1axisto call CEC performance calculation for every entry of a trackerdictAnalysisObjhas new attribute power_data to store CEC performance dataAnalysisObj has new property
resultsto bundle and return irradiance scan results in dataframe form.AnalysisObj has new function
groundAnalysisto run a ground scan under the row-row pitch of the scene to support AgriPV applications. (GH 499)RadianceObj has new function
analysis1axisgroundto run a ground scan under the row-row pitch of the scene for 1-axis tracked scenes. (GH 499)New intermediate function
readWeatherData()which can take raw metdata time series and metadata dict to generate aMetObj. Useful for e.g. bringing in raw NSRDB data. (GH 496)
Bug fixes#
Fixed typo on Opacity calculation factor (GH 426)
Updated Github Actions to use Node20: checkout@v4, setup-python@v5, coactions/setup-xvfb, setup-buildx-action@v3 (GH 517)
Fix PerformanceWarning and SettingWithCopyWarning (GH 515)
Fix error where rearX, rearY, rearZ parameters are not properly saved (GH 501)
More appropriate significant digits saved and displayed. (this changed some x,y,z values by < .003 due to rounding differences.) (GH 558)
bifacial_radiance.AnalysisObj.analyzeRow()default values changed for sensorsy and sensorsx from None to 9 and 1, respectively (GH 558)
Documentation#
Contributors#
Silvana Ovaitt (@shirubana)
Chris Deline (@cdeline)
Kevin Anderson (@kandersolar)
Sofia Toropova (@sofiatoropovaa)
v0.4.4 (October / 14 / 2024)#
Bugfix Release with important updates to correct the indexing of trackerdict and gendaylit1axis
API Changes#
New input parameter to
makeModule:glassEdge. IfmakeModuleglass= True, then this extends the glass past the absorber edge by this total amount (half in each x and y direction). Default 10mm.Module glass thickness can be changed. In
makeModule(), ifglass= True, then setting thezparameter will indicate the total (front + back) glass thickness with the 1mm absorber in the middle. The default is z = 10mm.
Enhancements#
Deprecations#
.ini files loaded with
bifacial_radiance.load.readconfigurationinputfile()useazimuthkey instead ofaxis_azimuth(GH 438)(GH 551)bifacial_radiance.load.deepcleanResult()is now deprecated in favor ofcleanResult()and will be removed to its own example notebook in a future release (GH 556)bifacial_radiance.mismatch.analysisIrradianceandPowerMismatch()is being removed to its own example notebook in a future release. (GH 556)
Bug fixes#
Fixed a major error with indexing the irradiance conditions with
gendaylit1axis(). This could result in the trackerdict entry being mismatched from the metdata resource. (GH 441)versioning with setuptools_scm- set fallback_version to bifirad v0.4.3 to prevent crashes if git is not present (GH 535)(GH 539)
bifacial_radiance.load.readconfigurationinputfile()now properly handles loading moduleObj parameters from .ini files:glass,glassEdge,frameParamsDict,omegaParamsDict(GH 551)Fixed a leap year bug in
readWeatherFile()that crashed if epwfiles are loaded that include leap year data (like Feb. 28 2020). (GH 552)Bug fix in
bifacial_radiance.load.cleanResult()that wouldn’t work with files created when front and rear scan are different lengths. (GH 419)GUI bug fixes where the sensorsy was not loading correctly, module .rad file was not being re-written, and an invalid default timestamp is used.
Bug fix in
bifacial_radiance.AnalysisObj.moduleAnalysis()when sensorsY equals numCellsy-1 and the scan lines up in the gaps between cells. shift scan by half a cell.
Documentation#
No longer provide a warning message when both
hub_heightandclearance_heightare passed tomoduleAnalysis()(GH 540)More useful
__repr__output inAnalysisObjandMetObj(GH 471)
Contributors#
Silvana Ayala (@shirubana)
Chris Deline (@cdeline)
v0.4.3 (Aug 27 2024)#
Bugfix Release
API Changes#
A new function can now be called to compile results and report out final irradiance and performance data:
RadianceObj.compileResults. (This is a temporary function soon to be deprecated)Multiple modules and rows can now be selected in a single analysis scan.
modWantedandrowWantedinputs inanalysis1axiscan now be a list, to select multiple rows and modules for scans. (GH 405)(GH 408)To support multiple modules and row scans for 1axis simulations, outputs like Wm2Front are now stored in
trackerdict.Results(GH 405)(GH 408)mismatch.mismatch.mad_fnhas new functionality and input parameteraxis. If a 2D matrix or dataframe is passed in as data, MAD is calculated along the row (default) or along the columns by passing ‘axis=1’mismatch.mismatch_fit3has been deprecated in favour ofmismatch.mismatch_fit2which has a greater agreement with anual energy yield data (GH 520)
Enhancements#
Bug fixes#
Fixed error passing all of
sceneDictinto py:class:~bifacial_radiance.RadianceObj.makeScene1axis. (GH 502)Fixed Pandas 2.0 errors by re-factoring py:class:bifacial_radiance.mismatch.mad_fn (GH 449)
Switch from un-supported Versioneer to setuptools_scm (GH 519)
Numpy 2.0 compatibility bug (GH 521)
Fixed bug in
mismatch.mismatch_fit3where the function was not returning the correct values. It has also been deprecated in favour ofmismatch.mismatch_fit2which has a greater agreement with anual energy yield data (GH 520)Updated Github Actions to use Node20: checkout@v4, setup-python@v5, coactions/setup-xvfb, setup-buildx-action@v3 (GH 517)
Updated Github Actions to make Coveralls fail silently if it has an internal server error (GH 517)
Fix PerformanceWarning and SettingWithCopyWarning (GH 515)
Switch from Versioneer to setuptools_scm (GH 522)
Enable
coerce_year=Noneif the TMYfile is all the same year (GH 526)
Documentation#
Edge effects evaluation tutorial 23, with the new functionality of multiple modules/rows on the same analysis scan.
Updates to example notebooks
Reduce number of digits in makeScene .rad file titles. (GH 503)
Reduce number of digits saved to files in results (GH 534)
In the sceneDict reported in the trackerdict, save both
clearance_heightandhub_heightparameters. (GH 503)
Contributors#
Silvana Ayala (@shirubana)
Chris Deline (@cdeline)
Kevin Anderson (@kandersolar)
Echedey Luis (@echedey-ls)
v0.4.2 (03 / 10 / 2023)#
Documentation, bug fix and enhancement update
Bug fixes#
Enhancements#
Adds new functions
ModuleObj.saveImageandSceneObj.saveImageto automatically save .hdr images of a module or scene to the /images/ directory. (GH 421)New
saveImagefunctions are run by default in the modelchain if simulationParamsDict[‘saveImage’] = True. The gui will set saveImage = True by default. (GH 421)If modelchain is running a 1-axis simulation with simulationParamsDict[‘saveImage’] = True,
SceneObj.saveImagewill render a scene using the tracker angle closest to 20 degree tilt (GH 421)
Deprecations#
Python 3.7 support is now deprecated. It should still work, but will not be tested by CI, and requirements.txt is incompatible.
RadianceObj.nModsandnRowsinternal attributes have been removed. These are now defined perSceneObj.sceneDict(GH 455)trackerdict[index]['clearance_height']attribute has been removed. These are available inside thetrackerdict[index]['scene']SceneObj.sceneDict(GH 455)
Documentation#
API Changes#
Contributors#
Silvana Ovaitt (@shirubana)
Chris Deline (@cdeline)
Kevin Anderson (@kanderso-nrel)
v0.4.1 (03 / 09 / 2022)#
Minor bug fix update
API Changes#
Input parameters changed in
calculatePerformance:temp_airandwind_speed.
Enhancements#
Deprecations#
Drop Python 3.6 support (it should still work though)
Bug fixes#
Documentation#
Contributors#
Silvana Ovaitt (@shirubana)
Chris Deline (@cdeline)
v0.4.0 (02 / 03 / 2022)#
Release of new version including new spectral property class, object-oriented ModuleObj class and other improvements for more seamless use with dask and paralellization.
Major usage changes include a ModuleObj output from makeModule, allowing updating geometry and adding module features (adding a torque tube, frame members, etc). This release also changes start and end time format to ‘YYYY-MM-DD_HHMM’ enabling multi-year and sub-hourly met file support.
API Changes#
The output of
makeModuleis now a new module classModuleObjwhich stores module details and allows geometry modification and addition (GH 338)Object-oriented torque-tube generation function in ModuleObj.
addTorquetube. Uses same input parameters previously passed into tubeParams. (GH 360)Object-oriented cell-level module generation function in ModuleObj.
addCellModule. Uses same input parameters previously passed in the cellParams dict. (GH 360)Object-oriented module frame generation function in ModuleObj.
addFrame. Uses same input parameters previously stored in the frameParams dict. (GH 360)Object-oriented module omega (tube mounting bracket) generation function in ModuleObj.
addOmega. (GH 360)set1axishas a new boolean input useMeasuredTrackerAngle. When set to True, it looks for manual tracker angle values in the weather file input with column name ‘Tracker Angle (degrees)’makeModulenow returns a ModuleObj instead of a dict. (GH 338)showModuleis moved out of SceneObj and is now in ModuleObj.showModule(GH 338)Due to now allowing multiple years and subhourly files, timestamped files (octfiles, skyfiles, objects, results files) now are of YYYY-MM-DD_HHMM format.
readWeatherFilehas new arguments source, and coerce_year, but daydate option is removed. (GH 311)readWeatherFilearguments starttime and endtime accept datetime and pd.TimeIndex inputs, as well as strings in either ‘MM_DD_HH’ or ‘MM_DD’ or ‘YYYY-MM-DD_HHMM’ format.Removed the standalone RadianceObj.readEPW function. Use
readWeatherFileinstead.genCumSkynew kwargumentgencumsky_metfilepointing to the auto-generated met data csv file.set1axishas new argumentfixed_tilt_azimuth.makeOct1axisinput argumentsingleindexmust now take the format of ‘YYYY-MM-DD_HHMM’.moduleAnalysisinput arguments added:sensorsx,modscanfront,modscanback,relative.analysisfunction has boolean inputRGBto enable spectral simulationsRadianceObjandAnalysisObjobjects now have an input argument forhpcas boolean. hpc is true makes so that file reading waits longer to account for parallelization timing, and to not update to the central .json Module file while on parallelization.
Enhancements#
New
spectral_utilsmodule includes classes and functions to interact with irradiance spectra from SMARTS.Cell-specific module analysis. When a cell-level module is created, if sensorsy matches the number of cellsy the sensors will be positioned at the center of each solar cell.
sensorsycan now be passed a list or tuple of 2 values. The first value is the number of front sensors, the second one is the number of rear sensors. This affectsmoduleAnalysisandanalysis1axisandgui(GH 340)New
radnameinput formakeScene, so scenes do not overwrite with parallel processing.The software now considers Year in variuos of the routines, like metdata reading, sky creation and saving of results. (GH 250)
Sub-hourly weather files are now accepted in
readWeatherFileThe module scans dictionaries
modscanfrontandmodscanbackare now inputs on inanalysis1axisso the scanning position can be be modified on the tracking routines (GH 263)Routine created to add materials to ground.scan.
addMaterial(GH 278)(GH 74)makeModulefuction has additional input to specify themodulematerial.makeModulefuction can create framed modules using the argumentframeParams. Dictionary inputs include frame_material, frame_thickness, frame_z, frame_z and nsides_frame.makeModulefuction generates Omegas (frame offset elements) using the argumentomegaParams. Dictionary inputs include omega_material, x_omega1, mod_overlap, y_omega, omega_thickness, x_omega3 and inverted.makeModuleinput argumentcellModulehas a new field option centerJB to reflect the distance betwen both sides of cell arrays in a center-junction box half-cell module. (still under development)makeScenehas optional input parameterradnameto give a custom name to the scene radfile.New
analyzeRowfunction inAnalysisObjto analyze every module in the row.readWeatherFileallows ‘source=solargis’ input option to read commercial weather files obtained from SolarGIS.comFor all weather files, night-time data (GHI <= 0) is removed when the MetObj is created. This has always been the case for tracked simulations, but is also now true for fixed-tilt simulations as well.
deepcleanResultis refactored to accept results files whether they have front, back or both irradiance data. (GH 346)
Deprecations#
gendaylit1axisparametersstartdateandenddateare now deprecated. Downselect weather values when reading in weather file withreadWeatherFile.genCumSkyarguments startdt and enddt are now removed. Limit time of simulations usingreadWeatherFileargument starttime and endtime instead.genCumSkykwargument epwfile has been removed. EPW files are no longer passed directly to genCumSky.makeSceneandmakeScene1axiskwarg moduletype is now module (GH 338)readModuleandshowModuleare removed. (GH 338)makeModuleinputs variables diameter, material, torqueTubeMaterial, tubetype and axisofrotationTorqueTube are deprecated. use thetubeParamsdict input or ModuleObj.addTorquetubeinstead. (GH 338)makeModuleinput argumentcellLevelModuleParamsis now deprecated. Either pass dictionarycellModuleor use ModuleObj.addCellModule(GH 338)Removed hpc input from
gendaylit1axis,makeOct,makeOct1axis,makeScene,makeScene1axis,makeImage, andanalysis. Instead, passhpcas input toRadianceObjandAnalysisObjor manually setRadianceObj.hpc = True
Bug fixes#
For data in TMY3 format but has a interval smaller than 1 HR, now the
readWeatherFile, function (which uses pvlib I/O function) fixes the timestamps from the already imported TMY3 data, with the column labeld ‘Time (HH:MM)’ (GH 278)runtimeWarnings are ignored in set1axis. Fixes pvlib tracker #260
Fixed bug on input file load that would rewrite
zgapparameter asygap. (GH 283)Image folder was not correctly loading on install (GH 275)(GH 282)
Weather data with zero length after filtering returns a more informative error (GH 332)
Errors while generating octfiles in
makeOctare now printed instead of being muted.
Documentation#
HPC example scripts are now posted in \bifacial_radiance\HPCScripts. Knock yourself out.
JOSS Journal was published and is now referenced in documentation and READ.ME for citation, along with Zenodo DOIs.
Journal showing rear irradiance performance with and without white-pavers for ballasting the single axis trackers
AgriPV Journal improvements, and new Journal studying two crops with PV-module co-location
Example of running Spectral simulations with the use of dask.
Cleanup of journals and documentations throughout of coding comments.
Contributors#
Silvana Ovaitt (@shirubana)
Chris Deline (@cdeline)
Kevin Anderson (@kanderso-nrel)
Shamsul Arefeen (@sarefeen99)
Matt Brown (@mcbrown042)
Mark Monarch (@mmonarch)
v0.3.4 (05 / 26 / 2020)#
Release of new version including time-series albedo options, selecting if weather data is right, left or center labeled (averaged), and an updated module.json.
Starting this version, releases will have a Zenodo D.O.I for identification!
Deprecated support for Python 2.7. Stops support on this release. PVLib >= 0.7.0 is required for metdata file IO
Enhancements#
Enable
module.jsonto be human readable and sorted. (GH 230)- Albedo:
Albedo: TIME-Varying ALBEDO: now albedo can be given for every timepoint being modeled.
Albedo: Functions
readWeatherFile(),readEPW(), andreadTMY()return MetObj.albedo from TMY or EPW file if available (GH 246) (GH 68)Albedo:
setGroundpulls albedo if readWeatherfile has already been run and no explicit albedo is provided.Albedo:
setGroundaccepts lists and 3xN RGB arraysAlbedo: Unrealistic albedo values are constrained to [0:1] (GH 227)
readWeatherFile(),readEPW(), andreadTMY()now have an inputlabel, to mark if data is right-averaged, left-averaged, or center-averaged. Default islabel=Right, like TMY3 files: TMY3 data is right-labeled, so 11 AM data represents data from 10 to 11, and sun position is calculated at 10:30 AM. Sun position and tracker positions gets calculated according to the label chosen.
API Changes#
Input changed to
gendaylit, now making metdata an optional input.
Bug fixes#
GUI tracker visualization enabled with proper changes in azimuth. (GH 229)
makeModuleinformational messages updated. (GH 202)genCumSky1axisbug fix for partial year data entry. (GH 203)AttributeError - bug fix in
analysis1axisline 2207. (GH 251)Update to
mad_funto avoid Pandas 1.0 errors (GH 240)
Testing#
Added pytesting to
GroundObj
Documentation#
All notebooks and tests updated for new
albedoin GroundObj functionalityNotebooks updated for
gendaylitmetdata optional inputCleaned up journal explaining how to use
glasson modules.
Contributors#
Chris Deline (@cdeline)
Silvana Ayala (@shirubana)
Cameron Stark (@CameronTStark)
v0.3.3.2 (04 / 16 / 2020)#
Release of new version including fix to sensor orientation, increased py-testing, and glass in modules.
Enhancements#
Glass in modules now supported. New Glass material included in ground.rad. Example of use in Glass Tutorials.
Source code for gencumulativesky is now included along with makefile instructions in
/data/gencumsky/New Torquetube options added on
makeModuleAdded variables
frontsurfaceoffsetandbacksurfaceoffsettomoduleAnalysis, to offer the ability of controling the offset in local z of the sensor locations from the module’s front and rear surface.
API Changes#
readTMYnow saves the temporal TMY files generated for daydate simulations with different titles to avoid overwriting in parallel simulations.Input for daydate added to
analysis1axis, allowing to save cumulative files for daydate.Sorted trackerdict keys on simulations that use trackerdict routines
Removed deprecation warning and inputs
nModsandnRowsonmakeScene1axisModified quickExample() to include testfolder as an input, and returned analysis results. Call to interactive directory selection called from main.py instead than being redefined inside the function. (GH 201)
Removed HPCExample() function from main.py (added as a Tutorial Notebook)
Fix GUI load issue when None values passed
Set GUI default
modWantedandrowWantedto Nullreadconfigurationinputfile.ini input files now use the keytimeIndexSimulationinstead oftimestampRangeSimulation
Bug fixes#
Fixed sensor’s orientation error in scanning function calculation, mainly affecting high-tilt angle simulations (GH 226)
Fix GUI to allow reading null values for
modWantedandrowWantedException handling for daily simulations in
gendaylit1axis, due to a for loop going out of range for endindex+1 (GH 225)
Testing#
Modified pytest assertions for skies to avoid OS issues (skietc or skie//etc)
Added pytesting to
getSingleTimestampTrackerAngleAdded pytesting to sceneDict
heightinmakeScene1axisAdded pytesting for
makeImageand py:class:~bifacial_radiance.AnalysisObj.makeFalseColorAdded pytest for
gendaylit2manualAdded pytest for
genCumSkyin py:class:~bifacial_radiance.modelchain.runModelChainAdded pytest for
genCumSky1axisontest_1axis_genCumSky()Added pytest for torque tubes
makeModuleAdded pytest for pitch and gcr on
makeScene1axis(GH 204)Added pytest to
quickExample(GH 201)Added pytest for
getEPW
Documentation#
Updated bifacial_radiance D.O.E. reference citation on index. (GH 213)
Added pip install options to Installation
Added software compatibility to Installation (GH 190)
Added Linux and MacOS instructions to Installation (GH 198)
Added content to Package Overview section (GH 191)
Added intended audience to documentation and main Github Readme (GH 192)
Platform and python-version updates throughout documentation (GH 198)
Improvements to Contributing guidelines (GH 191)(GH 196)
Working Folder path fixed on Tutorial Journals for compatibility with other OS Systems (GH 217)
Updated Youtube’s installation instructions to mention how to pip install bifacial_radiance, pip install pvlib, and comments for Linux/Mac OSX users to read the install guide on readthedocs.
Added suggestion to install Anaconda to run Jupyter Tutorial notebooks in Installation (GH 194)
Contributors#
Chris Deline (@cdeline)
Silvana Ayala (@shirubana)
Jason Alderman (@jalderman9)
Mark Mikofski (@mikofski)
v0.3.3.1 (10 / 16 / 2019)#
This is a minor release, a patch to fix a GUI error preventing the simulation from running.
v0.3.3 (10 / 14 / 2019)#
This is a major release that adds many power mismatch analysis features, GUI updates as well as documentation.
Deprecated support for Python 2.7. Will stop support on next release
API Changes#
readWeatherFileset as main function to read TMY and EPW files.Added
startdateandenddateinputs toreadWeatherFile(), in str formatMM_DD_HH.Deprecated
gencumskystartdate and enddate options.Fixed tilt simulations can now use the tracking workflow by passing a
fixed_tilt_anglevariable intoset1axis. This has been implemented as the default for hourly simulations in the ModelChain and GUI.Renamed many functions with a dash, to differentiate from functions called by user and helper-functions that are subfunctions or called by the main functions. (GH 155)
Update internal paths to TESTDIR rather than os.cwd
gendaylit: update to use the sunposition automatically stored withmetdataCorrected print statements for full year hourly simulations to reflect the exact number of datapoints considered in that ratio average.
Changed functionality of ModelChain for tracking: if
simulationParamsDict[dayDateSimulation]is False, default to full-year simulation even iftimeParamsDictis passed.Added print statement for fixed tilt and tracking modelchain results.
Raise error if tracking modelchain is used with
timestampRangeSimulationUpdated modelchain
daydatefunctionality: when starthour = endhour gives that hour of analysis.Add filenotfound error checking for loading .ini file
Added analysis.py to modules loaded by bifacial_radiance as default.
Trackerdict now keeps track of hub_height (GH 168)
Updated requirements for PVLib > 0.6.1 to avoid deprecation warnings (GH 158)
Enhancements#
Bug fixes#
Fix accuracy setting for
analysis1axis()on (GH 150)GUI: GCR or Pitch independently read based on selection, so no need for values to match (GH 143)
Fixed tracking daydate hourly (GH 125)
Fix to avoid divide-by-zero errors in
gendaylitFix GUI tracking hourly by day, which was still reading enddate (GH 136)
GUI: fixing automatically downloading getEPW when readEPW was selected.
Testing#
Increase in pytesting, particularly for secondary modules in bifacial_radiance (other than main.py)
Tracking pytesting with coveralls
Rename test .ini files to avoid name confusion with test.py files
Add test for bad RadianceObj path
Documentation#
readtheDocs now connected. Moved all documentation to sphinx format.
Revamping of journals, with more explanations, images, and sorted by level of difficulty.
Contributors#
Chris Deline (@cdeline)
Silvana Ayala (@shirubana)
Jason Alderman (@jalderman9)
Mark Mikofski (@mikofski)
v0.3.0 (05 / 14 / 2019)#
This is a major release that includes the release of a new Visual Interface (GUI). We recommend all users to upgrade to this release as many internal geometry handling has been updated and made more accurate.
API Changes#
Dictionaries implemented as inputs to most functions.
Height deprecated as input, now functions expect clerance_height or hub_height.
Enhancements#
New GUI.
Modelchains implemented.
New internal Geometry handling.
Modules get centered on X and Y.
Geometry of scenes gets constructed around (X,Y) (0,0), placing the center of the center module of the center row in that position
New/improved sensor locations.
Multiple Scene object capability for fixed scenes.
HPC friendly code.
More module creation options
cell Level model capability with dictionary input.
Axis of rotation around torque tube possible with axisofrotation parameter.
Contributors#
Chris Deline (@cdeline)
Silvana Ayala (@shirubana)
v0.2.4 (02 / 27 / 2019)#
Various improvements across the bifacial_radiance software.
API Changes#
Module orientation deprecated. Now module is defined by
x(dimension along rack) andy(dimensio nin slant direction).Module gap variables renamed to
xgap,ygap, andzgap.scenexandsceneyvariables introduced which include torquetube and gap dimensions.Py36 and cross-platform code compliance implemented
Modified
gendaylit()to be based on sun positions by defaultgendaylit()now uses PVLib for calculating sun position angles instea dof using Radiance internal sun positoin calculations.Updated
bifacial_radiance.AnalysisObj.makeFalseColor()routine for visualizing in falsecolor the octfile.Moved existing and new load routines into
load
Enhancements#
More torquetube options added (round, square, hexagonal and octagonal profiles)
custom spacing between modules in a row added,
Added accuracy input option for 1-axis scans
Update to sensor position on 1axistracking.
Bugs#
Module-select and module scan bug fixed
Testing#
Updates to pytests.
Contributors#
Chris Deline (@cdeline)
Silvana Ayala (@shirubana)
v0.2.3 (11 / 14 / 2018)#
This release introduces the option to module torque tubes now added as part of makeModule.
Enhancements#
Arbitrary length and position of module scans in makeScene.
Torquetube option to makeModule
makeModule()Option to add module gaps
xgap,ygap, andzgapinmakeModule()New functions
bifacial_radiance.RadianceObj.gendaylit1axis(),bifacial_radiance.RadianceObj.makeOct1axis()andbifacial_radiance.RadianceObj.analysis1axis()trackerdictalready mapped toself.trackerdict, so no longer mapping onanalysis1axis()
Contributors#
Chris Deline (@cdeline)
Silvana Ayala (@shirubana)
v0.2.2 (08 / 29 / 2018)#
Negative 1 hour offset to TMY file inputs
v0.2.1 (05 / 21 / 2018)#
Allow TMY3 input files
Using a different EPW file reader.
v0.2.0 (03 / 21 / 2018)#
Critical 1-axis tracking update to fix geometry issues that were over-predicting 1-axis results
v0.1.1 (03 / 08 / 2018)#
Allow southern latitudes.
v0.1.0 (12 / 18 / 2017)#
1-axis bug fix and validation vs PVSyst and ViewFactor model.
v0.0.5 (12 / 13 / 2017)#
1-axis tracking draft.
gencumsky()now allows-Gfiletype optoin for support of 1-axis tracking.
v0.0.4 (12 / 13 / 2017)#
Include configuration file module.json and custom module configuration.
v0.0.3 (12 / 13 / 2017)#
Arbitrary NxR number of modules and rows for SceneObj
v0.0.2 (06 / 29/ 2017)#
Adjustable azimuth angle other than 180.
v0.0.1 (05 / 24 / 2017)#
Initial stable release.