In order to accomplish this we manually labeled a dataset using some external radar data to help inform the decision making process. In addition our labels were reviewed by a trained meteorologist in order to ensure that they were correct.
A neural network model was trained using the satellite data as the input and our manual labels as the targets and its performance was measured using a hold back dataset that was not used at all during training. On this dataset we were able to obtain a 98% accuracy.
Technologies used: Python, PyTorch, SatPy, OpenCV, Numpy
The labelling process was conducted using a composite image of the HRV channel together with one of the infrared channels that made the relevant clouds stand out more. However even this is not sufficient to make a judgement in all cases so external data in the form of radar and ground observations was also consulted in order to label correctly. Additionally a trained meteorologist reviewed all labels to ensure that they were correct.
The model itself was a U-Net implemented in the PyTorch framework and trained using the Adam optimiser with a one cycle learning rate annealing scheduler.
Extensive data augmentation was also utilised to get the most from our dataset.