SAR wind retrieval: Singlecore, Multicore and GPU computing with Python and PyOpenCL.

Alexander Myasoedov

Audience level:


As the amount, complexity and resolution of spaceborne synthetic aperture radars (SAR) images has increased a lot for the last decade, their processing might be a headache. We use Python and PyOpenCL to implement SAR wind speed retrieval algorithms (e.g. CMOD5) for Singlecore and Multicore systems, including GPUs to process those images.


Since the year 1978, with the launch of the SEASAT satellite, Synthetic Aperture Radars (SARs) have proved their effectiveness in detecting different types of the Ocean dynamics surface manifestations. As for example, surface and internal waves, mesoscale surface current features including temperature fronts, meanders, filaments and eddies, as well as slicks of different nature. Among many SAR advantages, including independence of daylight and clouds, its high spatial resolution makes it a perfect tool for wind-field mapping. However, with the advent of more and more sophisticated spaceborne SARs with spatial resolution higher than tens of meters and capabilities of multipolarized imagery for a complete overview) the amount and complexity of received images have increased a lot. The SAR wind field recovery procedure consists of several stages and involves a number of difficulties for users who are often deprived of the possibility to wider use the processing results because of their large volumes, difficulties with access to data, processing complexity and a wide variety of formats and data types. This leads to the fact that SAR wind retrieval becomes a headache when dealing with operational tasks or doing long-period statistical analysis, using standard processing approaches. The number of cores in CPUs and GPUs has increased dramatically during last years and through implementation of parallel approaches one can achieve fantastic increase in processing power. GPUs are used in a wide range of scientific applications nowadays, being mainly presented by medical image processing, as well as nuclear and high energy physics. Although, the use of GPU processing in remote sensing is incomparably less, still there are some recent publications. On one hand, use of multi-core CPUs/GPUs might be of great help for SAR wind retrieval algorithms, which possess high degree of parallelism, as each pixel of an image can be processed independently or in combination with surrounding pixels only. On the other, since the task of SAR wind retrieval is specific, one can not apply already developed GPU image processing algorithms and need to develop his own. Therefore, the quicker they will be implemented and shown the simplicity of their implementation, the sooner people will start to use GPUs in the field of satellite image processing methods to solve their specific problems.