Skip to main content

Basic set of python tools

Project description

pvtools 🕶

A set of python 🐍 tools to process and model PV

I put together a set of tools used to clean data and model bifacial systems using pvfactors, pvlib and bifacialvf 🌞

Install

As of 02/2019: bifacialvf has not yet merged this PR, the simulate function cannot take arbitrary metereological data on the form of pandas DataFrames. So we are force to install a custom fork of bifacialvf from here. This is way, a formal release of capetools to PyPI is not possible rght now, so we have to install by cloning from github.

The recommended method is to install capetools on a conda envirnment. Ideally create a conda env with python 3.6 and then clone and install using pip.

conda create --name=your_env_name python=3.7

git clone https://github.com/tcapelle/capetools/

Now you can install from PyPi:

pip install pvtools

or on editable mode, git clone this repo, and from within the repo install using:

pip install -e .

Getting started 💪

from pvtools.imports import *
from pvtools.utils.missing import *
from pvtools.utils.tmy import read_pvgis
from pvtools.modelling.mypvfactors import *
from pvtools.modelling.mybifacialvf import *
PATH = Path.cwd().parent/'data'
fname = PATH/'pvgis_tmy_chambery.csv'

We will ingest a PVGIS downloaded file for Chambery

gps_data, months, tmy_data = read_pvgis(fname)
tmy_data.head()
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
temp humidity ghi dni dhi infra ws wd pressure
time(UTC)
2012-01-01 00:00:00 2.87 88.28 0.0 -0.0 0.0 259.63 1.33 170.0 99504.0
2012-01-01 01:00:00 3.59 90.07 0.0 -0.0 0.0 268.30 1.39 166.0 99508.0
2012-01-01 02:00:00 4.32 91.86 0.0 -0.0 0.0 276.97 1.45 162.0 99511.0
2012-01-01 03:00:00 5.04 93.64 0.0 -0.0 0.0 285.64 1.51 167.0 99517.0
2012-01-01 04:00:00 5.76 95.43 0.0 -0.0 0.0 294.32 1.57 171.0 99524.0

We can quickly look at missing data:

plot_missing(tmy_data)

png

as expected, no missing data !

Simulations

pvfactors

params = system_def(n_pvrows=3); params
{'n_pvrows': 3,
 'pvrow_height': 1.6218180900789148,
 'pvrow_width': 2.02,
 'tracking': False,
 'axis_azimuth': 0,
 'surface_tilt': 38,
 'surface_azimuth': 180,
 'albedo': 0.4,
 'gcr': 0.5,
 'rho_front_pvrow': 0.075,
 'rho_back_pvrow': 0.075,
 'cut': {0: {'front': 1, 'back': 7},
  1: {'front': 1, 'back': 7},
  2: {'front': 1, 'back': 7}}}
data = get_data(fname, params)
pvarray = run_pvfactors_simulation(data, params)
ax = plot_idx(pvarray)
ax.set_xlim(-2, 10)
(-2, 10)

png

res_pvfactors = individual_report(pvarray, index=data.index)
res_pvfactors.head()
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
qinc_0 qinc_1 qinc_2 qinc_3 qinc_4 qinc_5 qinc_6 qinc_front qinc_back
time(UTC)
2019-01-01 00:00:00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2019-01-01 01:00:00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2019-01-01 02:00:00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2019-01-01 03:00:00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2019-01-01 04:00:00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
res_pvfactors['21 June 2019'].plot();

png

bifacialvf

res_bifacialvf = run_bifacialvf_simulation(data)
  1%|          | 84/8760 [00:00<00:22, 387.11it/s]


********* 
Running Simulation for TMY3:  Chambery
Location:   Chambery
Lat:  45.637001  Long:  5.881  Tz  -1.0
Parameters: beta:  0   Sazm:  180   Height:  0.5   rtr separation:  8.0   Row type:  interior   Albedo:  0.4
Saving into output.csv




100%|██████████| 8760/8760 [00:28<00:00, 307.76it/s]

Finished
res_bifacialvf['21 June 2019'].plot();

png

Coontributing 👇

Read nbdev documentation please.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pvtools-1.1.1.tar.gz (21.1 kB view hashes)

Uploaded Source

Built Distribution

pvtools-1.1.1-py3-none-any.whl (32.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page