44Forecasting
55***********
66
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
88to obtain weather forecast data and convert that data into a PV power
99forecast. Users can retrieve standardized weather forecast data relevant
1010to PV power modeling from NOAA/NCEP/NWS models including the GFS, NAM,
1111RAP, HRRR, and the NDFD. A PV power forecast can then be obtained using
1212the 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
1414forecast methods using publicly available data may help advance the
1515state-of-the-art of solar power forecasting.
1616
17- pvlib- python uses Unidata's `Siphon
17+ pvlib python uses Unidata's `Siphon
1818<http://siphon.readthedocs.org/en/latest/> `_ library to simplify access
1919to real-time forecast data hosted on the Unidata `THREDDS catalog
2020<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.
2424
2525We do not know of a similarly easy way to access archives of forecast data.
2626
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
2828forecast using these tools. The `forecast
2929<http://nbviewer.jupyter.org/github/pvlib/pvlib-python/blob/
3030master/docs/tutorials/forecast.ipynb> `_ and `forecast_to_power
@@ -62,8 +62,8 @@ while the NAM has a field named
6262similar field in the HRRR is named
6363``Total_cloud_cover_entire_atmosphere ``.
6464
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
6767returned as a pandas DataFrame with consistent column names:
6868``temp_air, wind_speed, total_clouds, low_clouds, mid_clouds,
6969high_clouds, dni, dhi, ghi ``. To accomplish this, we use an
@@ -77,7 +77,7 @@ child model-specific classes (:py:class:`~pvlib.forecast.GFS`,
7777map and process that specific model's data to the standardized fields.
7878
7979The 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
8181then set the location and time range data.
8282
8383.. ipython :: python
@@ -204,13 +204,13 @@ poor solar position or radiative transfer algorithms. It is often more
204204accurate to create empirically derived radiation forecasts from the
205205weather models' cloud cover forecasts.
206206
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
208208irradiance forecasts. One method assumes a linear relationship between
209209cloud cover and GHI, applies the scaling to a clear sky climatology, and
210210then uses the DISC model to calculate DNI. The second method assumes a
211211linear 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 ]_ .
214214
215215*Caveat emptor *: these algorithms are not rigorously verified! The
216216purpose of the forecast module is to provide a few exceedingly simple
@@ -251,27 +251,27 @@ irradiance conversion using the clear sky scaling algorithm.
251251 plt.close();
252252
253253
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
255255are as follows.
256256
257257.. code-block :: python
258258
259259 # cloud cover in percentage units here
260260 transmittance = ((100.0 - cloud_cover) / 100.0 ) * 0.75
261261 # irrads is a DataFrame containing ghi, dni, dhi
262- irrads = liujordan (apparent_zenith, transmittance, airmass_absolute )
262+ irrads = campbell_norman (apparent_zenith, transmittance)
263263
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
265265irradiance conversion.
266266
267267.. ipython :: python
268268
269269 # 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 ' )
271271 irrads.plot();
272272 plt.ylabel(' Irradiance ($W/m^2$)' );
273273 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 "'
275275 .format(latitude, longitude));
276276 @savefig gfs_irrad_lj.png width =6in
277277 plt.legend();
@@ -309,6 +309,9 @@ model processing to their liking.
309309 from photovoltaic plants in the American Southwest" Renewable
310310 Energy 91, 11-20 (2016).
311311
312+ .. [Cam98 ] Campbell, G. S., J. M. Norman (1998) An Introduction to
313+ Environmental Biophysics. 2nd Ed. New York: Springer.
314+
312315 .. [Liu60 ] B. Y. Liu and R. C. Jordan, The interrelationship and
313316 characteristic distribution of direct, diffuse, and total solar
314317 radiation, *Solar Energy * **4 **, 1 (1960).
0 commit comments