Motivation for the Project

Solar energy production is set to become a cheaper way to generate power than coal by 2021, a shift fueled by massive investments in large solar farms by quick-growing economies such as China and India [1]. The integration of large scale photo-voltaic arrays into the electricity grid poses a unique challenge to grid operators–solar power is an inherently variable power source which can fluctuate rapidly over small spatial and temporal scales. Events as common-place as a cloud passing between the sun and a solar panel can cause a rapid change in the power output of the panel, an event known as ramping. Being able to predict the output of a solar array is necessary for system operators to smooth ramping events, and to “procure energy and ancillary services in the intra-hour to day-ahead time frame, thereby minimizing costs and improving services” for consumers [2].

While techniques such as numerical weather prediction and satellite cloud tracking do provide some reliable predictions of global horizontal irradiance (a measure of the direct and diffuse solar radiation reaching the earth’s surface), these techniques fall short for predictions at a high spatial and temporal resolutions [3]. It is this gap in prediction techniques that ground-based sky imaging systems seek to fill. Within the intra-hour time frame, clouds represent the single most important influence on GHI. By collecting images from a camera located at the site, cloud cover which will directly impact the solar panels at that location can be identified, categorized, and tracked using a variety of computer vision techniques, allowing the solar panel operators to predict ramping events that will affect the power output.

Overview of the Project

Over the course of the semester, I developed a method for extracting cloud cover percentage and cloud density from a ground-based sky image. I utilized the OpenCV Library in Java and the Image Processing Module in MATLAB to create a simple, yet effective, algorithm for extracting these details from an image. The images I used to train and test the techniques are from two databases, SWIMCAT and SWIMSEG, which are explained in more detail here. A visual overview of the process is shown in Figure 1 below. Details about segmenting the images into cloud and sky regions can be found here, and more information about density categorization of the images is here.

Figure 1: Overview of Process

Overview of Detection and Categorization Process


  1.  Shankleman, Jess, and Hayley Warren. “Solar Power Will Kill Coal Faster Than You Think.”Bloomberg, 15 June 2017,
  2. Richardson, Walter, et al. “A Low Cost, Edge Computing, All-Sky Imager for Cloud Tracking and Intra-Hour Irradiance Forecasting.” Sustainability, vol. 9, no. 4, 2017, p. 482., doi:10.3390/su9040482.
  3. Chow, Chin Wai, et al. “Intra-Hour Forecasting with a Total Sky Imager at the UC San Diego Solar Energy Testbed.” Solar Energy, Pergamon, 13 Sept. 2011,