Capetools 1.0.2 | Coderz Repository

capetools 1.0.2

Last updated:

0 purchases

capetools 1.0.2 Image
capetools 1.0.2 Images

Free

Languages

Categories

Add to Cart

Description:

capetools 1.0.2

capetools πŸ•Ά

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/
go inside the cloned capetools repo and do:
pip install .
or on editable mode, git clone this repo, and from within the repo install using:
pip install -e .
Getting started πŸ’ͺ
from capetools.imports import *
from capetools.utils.missing import *
from capetools.utils.tmy import read_pvgis
from capetools.modelling.mypvfactors import *
from capetools.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)


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)

/home/tc256760/anaconda3/envs/fastai/lib/python3.7/site-packages/pvfactors/viewfactors/vfmethods.py:181: RuntimeWarning: invalid value encountered in true_divide
vf_pvrow_to_gnd_surf * pvrow_surf_length / gnd_surf_length, 0.)
/home/tc256760/anaconda3/envs/fastai/lib/python3.7/site-packages/pvfactors/viewfactors/vfmethods.py:181: RuntimeWarning: divide by zero encountered in true_divide
vf_pvrow_to_gnd_surf * pvrow_surf_length / gnd_surf_length, 0.)
/home/tc256760/anaconda3/envs/fastai/lib/python3.7/site-packages/pvfactors/viewfactors/vfmethods.py:531: RuntimeWarning: divide by zero encountered in true_divide
vf_1_to_2 = (d1 + d2 - l1 - l2) / (2. * width)
/home/tc256760/anaconda3/envs/fastai/lib/python3.7/site-packages/pvfactors/viewfactors/vfmethods.py:531: RuntimeWarning: invalid value encountered in true_divide
vf_1_to_2 = (d1 + d2 - l1 - l2) / (2. * width)
/home/tc256760/anaconda3/envs/fastai/lib/python3.7/site-packages/pvfactors/viewfactors/vfmethods.py:607: RuntimeWarning: invalid value encountered in true_divide
vf_1_to_2 = np.abs(sum_2 - sum_1) / (2. * width_1)
/home/tc256760/anaconda3/envs/fastai/lib/python3.7/site-packages/pvfactors/viewfactors/vfmethods.py:222: RuntimeWarning: invalid value encountered in true_divide
vf_i_to_j * length_i / length_j, 0.)

ax = plot_idx(pvarray)
ax.set_xlim(-2, 10)

(-2, 10)


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();


bifacialvf
res_bifacialvf = run_bifacialvf_simulation(data)

0%| | 0/8760 [00:00<?, ?it/s]/home/tc256760/Apps/bifacialvf/bifacialvf/vf.py:300: RuntimeWarning: divide by zero encountered in double_scalars
projectedX2 = PcellX + np.float64(PcellY) / math.tan(startElvDown); # Projection of ElvDown to ground in +x direction (X1 and X2 opposite nomenclature for front irradiance method)
0%| | 40/8760 [00:00<00:22, 379.91it/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:27<00:00, 314.85it/s]

Finished

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


Coontributing πŸ‘‡
Read nbdev documentation please.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.