During my digital signal processing class, we covered a wide variety of techniques for analyzing noise time series data in the 2-dimensional domain. However, at the end of the course, we covered applying many of these techniques to the spatial domain as well. The code from this example can be found at the following link: https://github.com/mcreelma/Spatial_Spectral_Analysis_Example. For this particular project, I used RGB reflectance data collected by the Landsat 8 platform. This imagery looked at coastal cloud cover in the North American region (Figure 1). I selected a subset of the imagery which presented an easily identifiable spatial repetition pattern in order to facilitate the process. This particular pattern is the result of gravitational waves interacting with the atmospheric water vapor in order to form ridges of condensation long the direction of flow (Rehnberg, 2020)
Figure 1 - Subsection of Landsat 8 Imagery
I began by extracting a 1-dimensional profile of the data with a uniform spacial sampling.In order to do this, I chose a subset from the sample imagery and interpolated the values across that subset in order to develop a uniform spatial sampling (Figure 2). Thi gave me the optimal distance of repetition for the reflectance anomalies. By analyzing this daya, I could determine at what spacial extents the visible patterns were repeating. In the case of my imagery, this meant that I could determine what the distance between cloud peaks was, which turned out to be roughly 100 km with a second distribution at roughly 600 km (Figure 2).
Figure 2 - Subsample and reflectance repetition across the subsample.
The final step was to us a fast fourier transform on the image in order to determine the predominant direction of flow (Figure 3). The first stem was to use a 2-dimensional fast fourier transform in order to convert the image into the amplitude spectrum, and then apply a shifting algorithm to center the amplitude spectra. This produces a rough image of the predominant direction of frequency shift, but it is still rather noisy. Thus I applied a low-pass gaussian filter (figure 4) in order to smooth this data. This presents us with a much more readable figure that allows us to determine the predominant direction of flow for the subsection of imagery.
Figure 3 - Stages of FFT application used to determine predominant direction of atmospheric flow
Figure 4 - Low-pass Gaussian Filter applied to the data to smooth and minimize noise
For my term project for the class, I applied this process to multiple subsections of the same image and overlaid a rough direction of flow for each image (Figures 5, 6). While this process was extremely imprecise, the hope is that it can be automated and applied to varying scales of an image in order to capture predominant atmospheric flow directions at different scales. These directional rasters could then be used to help analyze atmospheric phenomena from a wider variety of data sources than is currently available.
Figure 5 - Smoothed frequency transforms for all imagery subsets
Figure 6 - Subsets and predominant directions of flow for landsat imagery
Klein, R. (2010). Scale-dependent models for atmospheric flows. Annual Review of Fluid Mechanics, 42, 249–274. https://doi.org/10.1146/annurev-fluid-121108-145537
Rehnberg, M. (2020), Successfully simulating atmospheric gravity waves, Eos, 101, https://doi.org/10.1029/2020EO149547. Published on 30 September 2020.
Namias, J., Yuan, X., & Cayan, D. (1987). Persistence of North Pacific Sea Surface Temperature and Atmospheric Flow Patterns. Scripps Institute of Oceanography.