Cloud2Energy R&D Project

Over the years I have been always fascinated by programming and searching for new ideas to explore in various fields including Big Data machine learning. As in all cases, funding is essential and research funds are a solution. My interests in energy efficiency and machine learning have taken me to image-based analysis for improving photovoltaic output forecasts. The problem is not an easy one, many numerical and image-based solutions try to solve it. For this particular case, I was motivated by short to mid-term forecasts based on images which some studies suggest are more effective than numerical ones. In contrast, numerical methods work best for mid to long-term forecasts. Quite intuitive as you might suspect since short and mid-term forecasts several hours ahead can be done by monitoring the evolution of clouds in the visible sky up to the horizon. I investigated this problem as PI together with my team comprising Marius Penteliuc, Dr. Adrian Spataru, and Prof. Dr. Marius Paulescu.

The problem

The renewable energies market around the world has seen a growth in photovoltaic (PV) farms. One major problem PV farms’ owners have to deal with is a lack of an accurate prediction model meaning usually they rely on wide area low-resolution forecasts instead of localized high-resolution ones. This in turn causes losses, especially for the day-ahead market which requires accurate forecasts of the PV output and thus accurate cloud coverage data.

The project

The Cloud2Energy project (Cloud on cloud dynamics for photovoltaic energy generation prediction) ran between 2020-2022 and aimed to address some of the challenges by proposing simple models that work on commodity machines and with publicly available images (satellite or ground-based) combined with ground-monitored radiation under various conditions (clear skies, variable, cloudy). In our research, we relied on Sentinel-2, Landsat, GOES, and Meteosat images as well as on solar radiation data from the solar platform installed at the West University of Timisoara, Romania.

The idea of the project.

The solution

Generally speaking, the processing starts with an image from which clouds are first extracted, dynamics are forecast, and based on the predicted pixel value (black if no cloud and a shade of gray or fully white in case of clouds) the solar radiation level is forecast by using historical correlation (between pixel values and solar radiation) and a linear regression model. The figure below shows this process.

Solar irradiance forecast based on image analysis.

During this project, we tested a version of the Boids Flocking algorithm for forecasting cloud dynamics in satellite images (taken at higher frequencies from geostationary satellites such as Meteosat or GOES or even ground-based cameras although we have tested the cloud detection algorithm on Earth Observation imagery as well such as that from Sentinel 2) and created CUDA and OpenMP versions of it. Cloud masks are extracted by using a thresholding algorithm (see figure below). We have tried several cloud-type detection algorithms, however, we found the results to be varying based on the given parameters and thus rolled back to a cloudy pixel-based analysis only ignoring the cloud type completely.

Example of a mask of low clouds detected on 1st January 2022 near Timisoara (marked by a circle). The image was taken by Sentinel-2 and is publicly available.

The figure below shows the achieved forecasts for 1, 3, and 15-hour future windows. Based on these forecasts we have attempted to use various spectral bands (including TCI – True Color Images – RGB) to forecast the radiation levels based on cloudy pixel values.

Cloud masks for 1 hour ahead. Heatmap: true positives (green), true negatives (black), false positives (magenta), and false negatives (yellow). True positive means a cloud, while a true negative means clear skies

The F1-score for our cloud dynamics forecasts is around 0.75 (1 being the best value) within the first hour and drops to 0.2 after 10 hours. See the figure below for a plot.

F1-score when forecasting cloud dynamics by using various variations as explained in our articles. On the horizontal axis we have the hours and on the vertical the score. The sudden improvement 15-35 hours ahead is due to cloud condensation, causing more clouds to appear and providing true positives.

While performing correlation analysis we found that the Global Irradiance was correlated with individual bands such as the aerosol, blue and green bands, and the mask of all clouds. This allowed us to perform linear regression to infer the future value. In the process, we used three different metrics depending on the objective.

The conclusion was that we can use simple (low complexity) yet efficient algorithms to achieve fairly accurate short-term forecasts (up to 4 hours ahead) based solely on information from images and to generate solar irradiance forecasts based on historical cloudy pixel value – measured irradiance correlation.

Future work will possibly investigate the application of our results on a real-life PV farm.




The project was supported by a grant from the Romanian Ministry of Education and Research, CNCS-UEFISCDI project number PN-III-P1-1.1-TE-2019-0859 within PNCDI III. The grant value was 78,855.32 EUR (370,620.00 RON).