-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
from sayala/BF_BifacialIrradiances
- Loading branch information
0 parents
commit a6f0971
Showing
18 changed files
with
64,376 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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,89 @@ | ||
# Byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
*$py.class | ||
|
||
# C extensions | ||
*.so | ||
|
||
# Distribution / packaging | ||
.Python | ||
env/ | ||
build/ | ||
develop-eggs/ | ||
dist/ | ||
downloads/ | ||
eggs/ | ||
.eggs/ | ||
lib/ | ||
lib64/ | ||
parts/ | ||
sdist/ | ||
var/ | ||
*.egg-info/ | ||
.installed.cfg | ||
*.egg | ||
|
||
# PyInstaller | ||
# Usually these files are written by a python script from a template | ||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | ||
*.manifest | ||
*.spec | ||
|
||
# Installer logs | ||
pip-log.txt | ||
pip-delete-this-directory.txt | ||
|
||
# Unit test / coverage reports | ||
htmlcov/ | ||
.tox/ | ||
.coverage | ||
.coverage.* | ||
.cache | ||
nosetests.xml | ||
coverage.xml | ||
*,cover | ||
.hypothesis/ | ||
|
||
# Translations | ||
*.mo | ||
*.pot | ||
|
||
# Django stuff: | ||
*.log | ||
local_settings.py | ||
|
||
# Flask stuff: | ||
instance/ | ||
.webassets-cache | ||
|
||
# Scrapy stuff: | ||
.scrapy | ||
|
||
# Sphinx documentation | ||
docs/_build/ | ||
|
||
# PyBuilder | ||
target/ | ||
|
||
# IPython Notebook | ||
.ipynb_checkpoints | ||
|
||
# pyenv | ||
.python-version | ||
|
||
# celery beat schedule file | ||
celerybeat-schedule | ||
|
||
# dotenv | ||
.env | ||
|
||
# virtualenv | ||
venv/ | ||
ENV/ | ||
|
||
# Spyder project settings | ||
.spyderproject | ||
|
||
# Rope project settings | ||
.ropeproject |
This file contains 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,68 @@ | ||
# bifacialvf - Bifacial PV View Factor model | ||
python, configuration factor model | ||
|
||
Original code by Bill Marion | ||
Python translation by Silvana Ayala | ||
Updates by Chris Deline | ||
|
||
Based on the publication: "A Practical Irradiance Model for Bifacial PV Modules" | ||
B. Marion, S. MacAlpine, C. Deline, A. Asgharzadeh, F. Toor, D. Riley, J. Stein, C. Hansen | ||
2017 IEEE Photovoltaic Specialists Conference, Washington DC, 2017 | ||
URL: https://www.nrel.gov/docs/fy17osti/67847.pdf | ||
|
||
## Introduction | ||
|
||
bifacialvf is a self-contained view factor (or configuration factor) | ||
model which replicates a 5-row PV system of infinite extent perpendicular to the module rows. | ||
Single-axis tracking is supported, and hourly output files based on TMY inputs | ||
are saved. Spatial nonuniformity is reported, with multiple rear-facing irradiances collected | ||
on the back of each module row. | ||
|
||
|
||
## Install using pip | ||
|
||
1. Clone or download the bifacialvf repository. | ||
2. Navigate to repository: `cd bifacialvf` | ||
3. Install via pip: `pip install .` | ||
4. Alternate installation development mode: `pip install -e .` | ||
|
||
## Usage | ||
|
||
``` | ||
import bifacialvf | ||
bifacialvf.simulate(inputTMY, outputfile, tilt, azm, clearance, rowspacing) | ||
(data, metadata) = bifacialvf.loadVFresults(outputfile) | ||
``` | ||
For more usage examples, see the Jupyter notebooks in \docs\ | ||
|
||
## Prerequisites | ||
|
||
*none | ||
|
||
|
||
## Main Functions | ||
`bifacialvf.simulate(TMYtoread, writefiletitle, beta, sazm, C = 1, D = 0.5, | ||
rowType = 'interior', transFactor = 0.01, cellRows = 6, | ||
PVfrontSurface = 'glass', PVbackSurface = 'glass', albedo = 0.62, | ||
tracking = False, backtrack = False, r2r = 1.5, Cv= 0.05, offset = 0)`: | ||
|
||
This is the main runfile. Hourly TMY3 inputs are read, and an outputfile is saved with | ||
a number of irradiance points along the module chord specified by 'cellRows'. | ||
|
||
|
||
`loadVFresults.loadVFresults(filename = none)` : | ||
read in saved file from bifacialvf.simulate. If no filename is passed, a tkinter GUI opens for file selection | ||
|
||
## Subroutines | ||
|
||
`sun.py`: | ||
Solar position and irradiance-related helper files including | ||
hrSolarPos, perezComp, solarPos, and sunIncident | ||
|
||
`vf.py`: | ||
View Factor helper files to help with configuration-factor calculation | ||
1-axis tracking and self-shading calculation. | ||
Subroutines include: | ||
getBackSurfaceIrradiances, getFrontSurfaceIrradiances, getGroundShadeFactors, | ||
getSkyConfigurationFactors, trackingBFvaluescalculator, rowSpacing |
This file contains 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,5 @@ | ||
from bifacialvf import simulate # main program | ||
from vf import getBackSurfaceIrradiances, getFrontSurfaceIrradiances, getGroundShadeFactors # main subroutines | ||
from vf import getSkyConfigurationFactors, trackingBFvaluescalculator, rowSpacing # helper functions | ||
from sun import hrSolarPos, perezComp, solarPos, sunIncident # solar position and value | ||
from loadVFresults import loadVFresults # utility for reading result files |
Oops, something went wrong.