High-Level Project Summary
Scientists use InSAR to observe and measure earthquakes, volcanic activity, and other geological phenomena. However, corrections need to be applied to satellite data to improve its accuracy. Our program takes multiple InSAR measurements and constructs a new array of data, with tropospheric noise filtered. We remove this noise through quantifying the similarity between measurements, then selecting the most coherent data if necessary, effectively creating a low-pass filter for the high-frequency atmospheric interference. Our solution is important because it targets all forms of high-frequency noise, avoids blurring the image, does not require weather data, and is easy to implement.
Link to Final Project
Link to Project "Demo"
Detailed Project Description
Concept:
We can apply statistical ideas to our filtering approach. Atmospheric interference changes at a much faster pace than geological phenomena like a fault creep. It is also always present, unlike an earthquake which may be thought of as a one-time event. This means that atmospheric noise is high-frequency and can be expected to vary between every single measurement.
Atmospheric noise likely lowers the coherence of data within the region as well. Then, we can compare readings from different measurements, and if they differ significantly, throw away the less coherent version.
If the occurrence of a major "one-time" event occurs between readings, then this filtering method should be applied separately to readings before and after the event, to not filter the event itself.
Step-By-Step Filtering Procedure:
- load all the netCDF data within a folder inside several arrays
- create new arrays for the filtered data and copy the first file's data into it (as a starting point)
- break each file's data into small "cells" - a narrow range of latitude/longitude values
- compare the filtered data cells with the next file's cells, measure the cosine similarity between them
- if they are too dissimilar, and the next file's cell is more coherent than the filtered data cell, overwrite the filtered cell with the other data
- repeat for every file loaded into the notebook
Advantages Of This Approach:
- targets all forms of high-frequency noise
- does not blur or crop the data, simply selects the "best" data
- does not require weather data to work
- simple to understand and implement
Tools Used:
- Python - Google Colab Notebook
- netCDF4-python: allows us to read & write to netCDF files containing all the critical InSAR data
- Panoply: used to visualize netCDF files, understand the file structure & data, and create plots to validate our code
Space Agency Data
Alaska Satellite Facility (datasets):
- Ridgecrest earthquakes: July 4 and 5, 2019, California, USA
- Kilauea eruption and earthquake: May 4, 2018, Hawaii, USA
- Shallow creep on San Andreas fault: multiple dates, California, USA
These datasets provided by ASF were used throughout the testing and development of our code.
Hackathon Journey
We chose to attend the Space Apps hackathon because we wanted to learn something new, discover the hackathon experience and make something novel and interesting. The InSAR challenge in particular posed an interesting open-ended problem in the domain of physics and programming which we thought would be exciting to take on. Through this experience, we had to keep an open mind to possible solutions and collaborate with people outside our team, because it proved very challenging just to even start approaching the problem. We explored everything from existing libraries in MATLAB and Python, tutorials and courses on InSAR processing, and modern research in the field to come up with our concept and prototype code and it required a lot of perseverance to reach a presentable stage. We'd like to thank the Space Apps organizers for hosting this international event!
References
Canadian Space Agency: Synthetic Aperture Radar Tutorial
UNAVCO YouTube Channel: 2020-2022 InSAR processing and theory tutorials

