Project title: cloud classification and weather prediction using digital weather images

Design team member: Emily Rimas

Project supervisor: M.E. Jernigan


Weather is an extremely powerful force of nature on our planet and it affects everyone worldwide. Rain, snow, hail, storms, heat and cold play a dramatic role in shaping our planet earth through the alteration of both land forms and life forms. Yet despite the impact that weather has, it is a relatively misunderstood phenomena.

Project description

Clouds, one of the most visible effects of weather, provide insight into the current weather system as well as upcoming weather systems. Therefore, developing an understanding about clouds will increase one's overall understanding of weather. In order to help 'regular' people improve their cloud comprehension, a computer algorithm is being created which utilizes digital images taken from the ground rather than satellites. This algorithm reads in a digital image of the sky and returns information to the user, such as the type of the clouds in the image, information about their origin, and a prediction of the upcoming weather.

Design methodology

Using image processing techniques implemented in MATLAB, a technical computing program, the grayscale intensity value of each pixel in the inputted image is analyzed. These grayscale intensity values can be used to gain information about the edges present in the image. The following two image show a cumulus cloud image and the results of performing edge detection on the image.

picture of clouds in a blue skythe previous picture inverted in black and white

In these images, darker edge definition means a stronger edge. This information is used when classifying cloud images. Some clouds, such as stratus, have very weak edges, while other clouds such a the cumulus cloud featured above have very strong edges. In addition to edge strength, the image's average grayscale intensity value, pixel colour variation, overall edge density, and ratio of dark pixels to light pixels are used to classify the clouds in each image. Currently, the program correctly classifies clouds as either cumulus, altocumulus, stratus, nimbostratus, cirrus or blue sky. In the second half of the project cycle refinements will be made to the algorithm and a user-interface (UI) will be created. This UI will allow users to easily input their weather image and will present clear feedback about the clouds in the image.