|
7 | 7 | "\n",
|
8 | 8 | "\n",
|
9 | 9 | "\n",
|
10 |
| - "# Tutorial 2 - POA Irradiance & Module Temperature\n", |
| 10 | + "# Tutorial 2 - POA Irradiance \n", |
11 | 11 | "\n",
|
12 | 12 | "This notebook shows how to use pvlib to transform the three irradiance components (GHI, DHI, and DNI) into POA irradiance, the main driver of a PV system. Then this POA and weather data will be used to calculate Module Temperature\n",
|
13 | 13 | "\n",
|
|
106 | 106 | },
|
107 | 107 | {
|
108 | 108 | "cell_type": "code",
|
109 |
| - "execution_count": null, |
| 109 | + "execution_count": 1, |
110 | 110 | "metadata": {},
|
111 |
| - "outputs": [], |
| 111 | + "outputs": [ |
| 112 | + { |
| 113 | + "name": "stdout", |
| 114 | + "output_type": "stream", |
| 115 | + "text": [ |
| 116 | + "0.11.2\n" |
| 117 | + ] |
| 118 | + } |
| 119 | + ], |
112 | 120 | "source": [
|
113 | 121 | "import pvlib\n",
|
114 | 122 | "import pandas as pd # for data wrangling\n",
|
|
129 | 137 | },
|
130 | 138 | {
|
131 | 139 | "cell_type": "code",
|
132 |
| - "execution_count": null, |
| 140 | + "execution_count": 2, |
133 | 141 | "metadata": {},
|
134 | 142 | "outputs": [],
|
135 | 143 | "source": [
|
|
140 | 148 | },
|
141 | 149 | {
|
142 | 150 | "cell_type": "code",
|
143 |
| - "execution_count": null, |
| 151 | + "execution_count": 3, |
144 | 152 | "metadata": {},
|
145 | 153 | "outputs": [],
|
146 | 154 | "source": [
|
|
184 | 192 | },
|
185 | 193 | {
|
186 | 194 | "cell_type": "code",
|
187 |
| - "execution_count": 3, |
| 195 | + "execution_count": 4, |
188 | 196 | "metadata": {},
|
189 | 197 | "outputs": [
|
190 | 198 | {
|
191 |
| - "name": "stdout", |
192 |
| - "output_type": "stream", |
193 |
| - "text": [ |
194 |
| - "We are looking at data from \"GREENSBORO PIEDMONT TRIAD INT\" , NC\n" |
| 199 | + "ename": "NameError", |
| 200 | + "evalue": "name 'metadata' is not defined", |
| 201 | + "output_type": "error", |
| 202 | + "traceback": [ |
| 203 | + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", |
| 204 | + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", |
| 205 | + "Cell \u001b[1;32mIn[4], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWe are looking at data from \u001b[39m\u001b[38;5;124m\"\u001b[39m, metadata[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mName\u001b[39m\u001b[38;5;124m'\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m,\u001b[39m\u001b[38;5;124m\"\u001b[39m, metadata[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mState\u001b[39m\u001b[38;5;124m'\u001b[39m])\n", |
| 206 | + "\u001b[1;31mNameError\u001b[0m: name 'metadata' is not defined" |
195 | 207 | ]
|
196 | 208 | }
|
197 | 209 | ],
|
|
259 | 271 | "df_poa = pvlib.irradiance.get_total_irradiance(\n",
|
260 | 272 | " surface_tilt=20, # tilted 20 degrees from horizontal\n",
|
261 | 273 | " surface_azimuth=180, # facing South\n",
|
262 |
| - " dni=df_tmy['DNI'],\n", |
263 |
| - " ghi=df_tmy['GHI'],\n", |
264 |
| - " dhi=df_tmy['DHI'],\n", |
| 274 | + " dni=df_tmy['dni'],\n", |
| 275 | + " ghi=df_tmy['ghi'],\n", |
| 276 | + " dhi=df_tmy['dhi'],\n", |
265 | 277 | " solar_zenith=solar_position['apparent_zenith'],\n",
|
266 | 278 | " solar_azimuth=solar_position['azimuth'],\n",
|
267 | 279 | " model='isotropic')"
|
|
445 | 457 | "df_poa_tracker = pvlib.irradiance.get_total_irradiance(\n",
|
446 | 458 | " surface_tilt=tilt, # time series for tracking array\n",
|
447 | 459 | " surface_azimuth=azimuth, # time series for tracking array\n",
|
448 |
| - " dni=df_tmy['DNI'],\n", |
449 |
| - " ghi=df_tmy['GHI'],\n", |
450 |
| - " dhi=df_tmy['DHI'],\n", |
| 460 | + " dni=df_tmy['dni'],\n", |
| 461 | + " ghi=df_tmy['ghi'],\n", |
| 462 | + " dhi=df_tmy['dhi'],\n", |
451 | 463 | " solar_zenith=solar_position['apparent_zenith'],\n",
|
452 | 464 | " solar_azimuth=solar_position['azimuth'])\n",
|
453 | 465 | "tracker_poa = df_poa_tracker['poa_global']"
|
|
551 | 563 | "metadata": {},
|
552 | 564 | "outputs": [],
|
553 | 565 | "source": [
|
554 |
| - "df_tmy['DryBulb'].head(24*7).plot()\n", |
| 566 | + "df_tmy['temp_air'].head(24*7).plot()\n", |
555 | 567 | "cell_temperature.head(24*7).plot()\n",
|
556 | 568 | "plt.grid()\n",
|
557 | 569 | "plt.legend(['Dry Bulb', 'Cell Temperature'])\n",
|
|
572 | 584 | "metadata": {},
|
573 | 585 | "outputs": [],
|
574 | 586 | "source": [
|
575 |
| - "temperature_difference = cell_temperature - df_tmy['DryBulb']\n", |
576 |
| - "plt.scatter(tracker_poa, temperature_difference, c=df_tmy['Wspd'])\n", |
| 587 | + "temperature_difference = cell_temperature - df_tmy['temp_air']\n", |
| 588 | + "plt.scatter(tracker_poa, temperature_difference, c=df_tmy['wind_speed'])\n", |
577 | 589 | "plt.colorbar()\n",
|
578 | 590 | "# note you can use LaTeX math in matplotlib labels\n",
|
579 | 591 | "# compare \\degree\" with the unicode symbol above\n",
|
|
617 | 629 | "name": "python",
|
618 | 630 | "nbconvert_exporter": "python",
|
619 | 631 | "pygments_lexer": "ipython3",
|
620 |
| - "version": "3.11.7" |
| 632 | + "version": "3.12.7" |
621 | 633 | }
|
622 | 634 | },
|
623 | 635 | "nbformat": 4,
|
|
0 commit comments