{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Intro tutorial\n",
"\n",
"This document explains how to use the package ``twoaxistracking`` for calculating self-shading of two-axis tracking solar collectors.\n",
"\n",
"Import necessary packages:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from shapely import geometry\n",
"import pvlib\n",
"import twoaxistracking"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Definition of collector geometry\n",
"\n",
"The first step is to define the collector geometry. Two geometries have to be created, one which represents the total collector area and one or more geometries representing the active collector area. The geometries can be created using the `shapely` library, e.g.:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": "",
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# geometry.box(minx, miny, maxx, maxy)\n",
"total_collector_geometry = geometry.box(-1, -0.5, 1, 0.5)\n",
"\n",
"total_collector_geometry"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The active collector geometry can be made up of one or more polygons. In this example, the collector has eight active regions:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": "",
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"active_collector_geometry = geometry.MultiPolygon([\n",
" geometry.box(-0.95, -0.45, -0.55, -0.05),\n",
" geometry.box(-0.45, -0.45, -0.05, -0.05),\n",
" geometry.box(0.05, -0.45, 0.45, -0.05),\n",
" geometry.box(0.55, -0.45, 0.95, -0.05),\n",
" geometry.box(-0.95, 0.05, -0.55, 0.45),\n",
" geometry.box(-0.45, 0.05, -0.05, 0.45),\n",
" geometry.box(0.05, 0.05, 0.45, 0.45),\n",
" geometry.box(0.55, 0.05, 0.95, 0.45)])\n",
"\n",
"active_collector_geometry"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The collector geometries can be defined as any arbitrary polygon using the `shapely` library. However, it is important to note that the `total_collector_geometry` should completely enclose all of the active areas. Circular geometries can be created by: ``shapely.geometry.Point(x_0, y_0).buffer(radius)`` and are approximated as 64 sided polygons.\n",
"\n",
"Note, any unit of length can be used, though it is important to be consistent! Also, the absolute dimensions are generally not of importance, as the GCR parameter scales the distance between collectors according to the total collector area."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"## Specification of collector field layout"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once the collector geometry has been determined, the field layout can be defined. As previously mentioned, the ground coverage ratio (GCR), which is the ratio of the collector are to the ground area, determines how closely the trackers are arranged.\n",
"\n",
"### Neighbor order\n",
"Another required input is the ``neighbor_order``, which determines how many collectors to take into account. For a neighbor order of one the immediate 8 neighboring collectors are considered, whereas for a neighbor order of two, 24 shading collectors are considered. It is recommended to use at least a neighbor order of 2, although the computation time increases dramtically with increasing neighbor order.\n",
"\n",
"### Standard vs. custom field layouts\n",
"Any regularly-spaced field layout can be specified using the keywords: `aspect ratio`, `offset`, `rotation`, and `gcr`. For a description of the layout parameters, see the paper by [Cumpston and Pye (2014)](https://doi.org/10.1016/j.solener.2014.06.012) or check out the function documentation.\n",
"\n",
"\n",
"Furthermore, it is possible to choose from four different standard field layouts: `square`, `diagonal`, `hexagon_e_w`, and `hexagon_n_s`. These four layouts corresponds to a fixed set of aspect ratios, offsets, and rotations, and only require the user to specify the GCR.\n",
"\n",
"In the example below, a tracker field is created with a neighbor order of two, a ground cover ratio of 0.2, and a square field layout."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"tracker_field = twoaxistracking.TrackerField(\n",
" total_collector_geometry,\n",
" active_collector_geometry,\n",
" neighbor_order=2,\n",
" gcr=0.2,\n",
" layout_type='square'\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"The field layout can be visualized by the following command:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = tracker_field.plot_field_layout() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"## Shading calculation\n",
"\n",
"The final step is to calculate the shaded fraction for the desired solar positions. The typical use case is to simulate shading for a specified period with a fixed interval, e.g., for a yearly simulation with a time-step of 15-minutes.\n",
"\n",
"To calculate the solar position, the discrete time-steps are first determined. The below code cell demonstrates how to generate a series of timestamps for one year with a 15-minute interval."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DatetimeIndex(['2019-01-01 00:00:00+00:00', '2019-01-01 00:15:00+00:00',\n",
" '2019-01-01 00:30:00+00:00', '2019-01-01 00:45:00+00:00',\n",
" '2019-01-01 01:00:00+00:00'],\n",
" dtype='datetime64[ns, UTC]', freq='15T')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"times = pd.date_range(\n",
" start='2019-1-1 00:00',\n",
" end='2019-12-31 23:59',\n",
" freq='15min',\n",
" tz='UTC')\n",
"\n",
"times[:5] # Show the first 5 timestamps"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"It is also important to set the timezone correctly, as it affects the calculation of the solar position. It is recommended to consistently use UTC to avoid mix-ups."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"To calculate the solar position for the timestamps, it is recommended to use the [``pvlib`` library](http://pvlib-python.readthedocs.io/). A convenient way to do this is to first create a location object for the location of interest. In this example, a two-axis tracker field in Lendemarke, Denmark is simulated:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"location = pvlib.location.Location(latitude=54.9788, longitude=12.2666, altitude=100, name='Lendemarke, Denmark')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The location object can then be used to calculate the solar position for the timestamps:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
apparent_zenith
\n",
"
zenith
\n",
"
apparent_elevation
\n",
"
elevation
\n",
"
azimuth
\n",
"
equation_of_time
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2019-01-01 00:00:00+00:00
\n",
"
146.937480
\n",
"
146.937480
\n",
"
-56.937480
\n",
"
-56.937480
\n",
"
19.592191
\n",
"
-3.195874
\n",
"
\n",
"
\n",
"
2019-01-01 00:15:00+00:00
\n",
"
146.108706
\n",
"
146.108706
\n",
"
-56.108706
\n",
"
-56.108706
\n",
"
25.665116
\n",
"
-3.200828
\n",
"
\n",
"
\n",
"
2019-01-01 00:30:00+00:00
\n",
"
145.078546
\n",
"
145.078546
\n",
"
-55.078546
\n",
"
-55.078546
\n",
"
31.493630
\n",
"
-3.205782
\n",
"
\n",
"
\n",
"
2019-01-01 00:45:00+00:00
\n",
"
143.866070
\n",
"
143.866070
\n",
"
-53.866070
\n",
"
-53.866070
\n",
"
37.053369
\n",
"
-3.210734
\n",
"
\n",
"
\n",
"
2019-01-01 01:00:00+00:00
\n",
"
142.491152
\n",
"
142.491152
\n",
"
-52.491152
\n",
"
-52.491152
\n",
"
42.334286
\n",
"
-3.215687
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" apparent_zenith zenith apparent_elevation \\\n",
"2019-01-01 00:00:00+00:00 146.937480 146.937480 -56.937480 \n",
"2019-01-01 00:15:00+00:00 146.108706 146.108706 -56.108706 \n",
"2019-01-01 00:30:00+00:00 145.078546 145.078546 -55.078546 \n",
"2019-01-01 00:45:00+00:00 143.866070 143.866070 -53.866070 \n",
"2019-01-01 01:00:00+00:00 142.491152 142.491152 -52.491152 \n",
"\n",
" elevation azimuth equation_of_time \n",
"2019-01-01 00:00:00+00:00 -56.937480 19.592191 -3.195874 \n",
"2019-01-01 00:15:00+00:00 -56.108706 25.665116 -3.200828 \n",
"2019-01-01 00:30:00+00:00 -55.078546 31.493630 -3.205782 \n",
"2019-01-01 00:45:00+00:00 -53.866070 37.053369 -3.210734 \n",
"2019-01-01 01:00:00+00:00 -52.491152 42.334286 -3.215687 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = location.get_solarposition(times)\n",
"\n",
"df.head() # Show the first 5 lines"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"Now that the solar positions have been determined, the shaded fraction can be calculated by passing the solar positions to the function ``get_shaded_fraction``:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"df['shaded_fraction'] = tracker_field.get_shaded_fraction(df['elevation'], df['azimuth'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize the shading fraction\n",
"\n",
"Once the shaded fraction has been calculated it can be used for solar power calculations.\n",
"\n",
"As an example, the shaded fraction is shown for one day:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"