4
4
Forecasting
5
5
***********
6
6
7
- pvlib- python provides a set of functions and classes that make it easy
7
+ pvlib python provides a set of functions and classes that make it easy
8
8
to obtain weather forecast data and convert that data into a PV power
9
9
forecast. Users can retrieve standardized weather forecast data relevant
10
10
to PV power modeling from NOAA/NCEP/NWS models including the GFS, NAM,
11
11
RAP, HRRR, and the NDFD. A PV power forecast can then be obtained using
12
12
the weather data as inputs to the comprehensive modeling capabilities of
13
- PVLIB-Python . Standardized, open source, reference implementations of
13
+ pvlib python . Standardized, open source, reference implementations of
14
14
forecast methods using publicly available data may help advance the
15
15
state-of-the-art of solar power forecasting.
16
16
17
- pvlib- python uses Unidata's `Siphon
17
+ pvlib python uses Unidata's `Siphon
18
18
<http://siphon.readthedocs.org/en/latest/> `_ library to simplify access
19
19
to real-time forecast data hosted on the Unidata `THREDDS catalog
20
20
<http://thredds.ucar.edu/thredds/catalog.html> `_. Siphon is great for
@@ -24,7 +24,7 @@ to easily browse the catalog and become more familiar with its contents.
24
24
25
25
We do not know of a similarly easy way to access archives of forecast data.
26
26
27
- This document demonstrates how to use pvlib- python to create a PV power
27
+ This document demonstrates how to use pvlib python to create a PV power
28
28
forecast using these tools. The `forecast
29
29
<http://nbviewer.jupyter.org/github/pvlib/pvlib-python/blob/
30
30
master/docs/tutorials/forecast.ipynb> `_ and `forecast_to_power
@@ -62,8 +62,8 @@ while the NAM has a field named
62
62
similar field in the HRRR is named
63
63
``Total_cloud_cover_entire_atmosphere ``.
64
64
65
- PVLIB-Python aims to simplify the access of the model fields relevant
66
- for solar power forecasts. Model data accessed with PVLIB-Python is
65
+ pvlib python aims to simplify the access of the model fields relevant
66
+ for solar power forecasts. Model data accessed with pvlib python is
67
67
returned as a pandas DataFrame with consistent column names:
68
68
``temp_air, wind_speed, total_clouds, low_clouds, mid_clouds,
69
69
high_clouds, dni, dhi, ghi ``. To accomplish this, we use an
@@ -77,7 +77,7 @@ child model-specific classes (:py:class:`~pvlib.forecast.GFS`,
77
77
map and process that specific model's data to the standardized fields.
78
78
79
79
The code below demonstrates how simple it is to access and plot forecast
80
- data using PVLIB-Python . First, we set up make the basic imports and
80
+ data using pvlib python . First, we set up make the basic imports and
81
81
then set the location and time range data.
82
82
83
83
.. ipython :: python
@@ -204,13 +204,13 @@ poor solar position or radiative transfer algorithms. It is often more
204
204
accurate to create empirically derived radiation forecasts from the
205
205
weather models' cloud cover forecasts.
206
206
207
- PVLIB-Python provides two basic ways to convert cloud cover forecasts to
207
+ pvlib python provides two basic ways to convert cloud cover forecasts to
208
208
irradiance forecasts. One method assumes a linear relationship between
209
209
cloud cover and GHI, applies the scaling to a clear sky climatology, and
210
210
then uses the DISC model to calculate DNI. The second method assumes a
211
211
linear relationship between cloud cover and atmospheric transmittance,
212
- and then uses the Liu-Jordan [ Liu60 ]_ model to calculate GHI, DNI, and
213
- DHI.
212
+ and then uses the Campbell-Norman model to calculate GHI, DNI, and
213
+ DHI [ Cam98 ]_. Campbell-Norman is an approximation of Liu-Jordan [ Liu60 ]_ .
214
214
215
215
*Caveat emptor *: these algorithms are not rigorously verified! The
216
216
purpose of the forecast module is to provide a few exceedingly simple
@@ -251,27 +251,27 @@ irradiance conversion using the clear sky scaling algorithm.
251
251
plt.close();
252
252
253
253
254
- The essential parts of the Liu-Jordan cloud cover to irradiance algorithm
254
+ The essential parts of the Campbell-Norman cloud cover to irradiance algorithm
255
255
are as follows.
256
256
257
257
.. code-block :: python
258
258
259
259
# cloud cover in percentage units here
260
260
transmittance = ((100.0 - cloud_cover) / 100.0 ) * 0.75
261
261
# irrads is a DataFrame containing ghi, dni, dhi
262
- irrads = liujordan (apparent_zenith, transmittance, airmass_absolute )
262
+ irrads = campbell_norman (apparent_zenith, transmittance)
263
263
264
- The figure below shows the result of the Liu-Jordan total cloud cover to
264
+ The figure below shows the result of the Campbell-Norman total cloud cover to
265
265
irradiance conversion.
266
266
267
267
.. ipython :: python
268
268
269
269
# plot irradiance data
270
- irrads = model.cloud_cover_to_irradiance(data[' total_clouds' ], how = ' liujordan ' )
270
+ irrads = model.cloud_cover_to_irradiance(data[' total_clouds' ], how = ' campbell_norman ' )
271
271
irrads.plot();
272
272
plt.ylabel(' Irradiance ($W/m^2$)' );
273
273
plt.xlabel(' Forecast Time ({} )' .format(tz));
274
- plt.title(' GFS 0.5 deg forecast for lat={} , lon={} using "liujordan "'
274
+ plt.title(' GFS 0.5 deg forecast for lat={} , lon={} using "campbell_norman "'
275
275
.format(latitude, longitude));
276
276
@savefig gfs_irrad_lj.png width =6in
277
277
plt.legend();
@@ -309,6 +309,9 @@ model processing to their liking.
309
309
from photovoltaic plants in the American Southwest" Renewable
310
310
Energy 91, 11-20 (2016).
311
311
312
+ .. [Cam98 ] Campbell, G. S., J. M. Norman (1998) An Introduction to
313
+ Environmental Biophysics. 2nd Ed. New York: Springer.
314
+
312
315
.. [Liu60 ] B. Y. Liu and R. C. Jordan, The interrelationship and
313
316
characteristic distribution of direct, diffuse, and total solar
314
317
radiation, *Solar Energy * **4 **, 1 (1960).
0 commit comments