Has anyone tried MintPy for SBAS using SNAP?

Thank you for your valuble information

Thank you for sharing. I agree, if anyone manages to prepare the data for MintPy based on the export from ASF, I would be interested in the steps.

I’ve had some time to explore some sample data near London and here is what I found so far:

  • The ASF/MintPy integration works but it’s not 100% done. There is on-going discussion on how to finalize the integration (Link)
  • MintPy expects the same array size. There is a library provided from ASF that can do this for you.
  • EDIT: This issue was actually another unrelated error. disregard this point. If you are subsetting the image in MintPy, you need to select an area that is covered by all the imagery.Vertex will download imagery even if doesn’t overlap exactly. I tried getting an image near the edges but I get errors.

My data has some ramps in some imagery so it’s not a good result but this is just a quick demo. You can exclude dates using the config file.

Important tip: Subset your data using the MintPy config or else it will take a very long time! You will be processing 3 full subswaths of Sentinel-1 SLC data.

In the image below you can observe the darker areas which do not have images for all dates.

My sample data seems to have some ramps (unwrapped phase)

Did a separate analysis using a subset somewhere near London

1 Like

Here is how you prep the data. You need to do some coding in Python

Prepare data like this directory structure.

  1. Install hyp3-lib from the Github repo using the setup.py file
  2. Clip raster data to the same extent:
import glob
from osgeo import gdal
import os
from hyp3lib.cutGeotiffs import cutFiles

# Path that contains the directories with the unzipped Hyp3 data
images_folder = r'E:\London\Hyp3'

glob_items = []
target_files = ['*corr.tif', '*unw_phase.tif', '*inc_map.tif', '*dem.tif']
for item in target_files:
    for file in glob.glob(os.path.join(images_folder, '*', item)):

print('Clipping images')
  1. Prepare config file using glob paths
mintpy.load.processor        = hyp3
##---------interferogram datasets:
mintpy.load.unwFile          = E:/London/Hyp3/*/*unw_phase_clip.tif
mintpy.load.corFile          = E:/London/Hyp3/*/*corr_clip.tif
##---------geometry datasets:
mintpy.load.demFile          = E:/London/Hyp3/*/*dem_clip.tif
mintpy.load.incAngleFile     = E:/London/Hyp3/*/*inc_map_clip.tif
  1. Run MintPy smallbaselineApp using config file as input.

Is this for SBAS?
How can I select my study area?


Yes this is for SBAS.

If you want to subset your Hyp3 data in your config file you should add:

mintpy.subset.lalo = S:N,W:E

S,N,W,E being the extent of the bounding box. This is based on the projection of the Hyp3 data which is UTM.


A sidenote:

Please get acquainted with the open source tool PyRate for SBAS, SNAP9 will support it in the same manner as StaMPS today:

PyRate documentation — PyRate 0.6.1 documentation (geoscienceaustralia.github.io)

GitHub - GeoscienceAustralia/PyRate: A Python tool for estimating velocity and time-series from Interferometric Synthetic Aperture Radar (InSAR) data.


Hey, just curious. why 1master and 3slaves. Is this a general network for sbas, or any procedure set the requriement

It’s not required. You could draw your connected network whatever you want. Redundancy should be better.

is there any rule for pairing the images or any experience we can use. Maybe we just remove the pairs with low quality inferogram, but I try to save some time…

There are two typical ways to do it:

  1. For each image, calculate interferograms with n closest images, 3 for instance.
  2. Set a threshold for temporal and spatial baselines, something like 130m and 36 days.

You can use the SBAS tool at ASF Vertex in order to draw the network by yourself, or downloading a network based on thresholds.

hey there,
I’m also preparing datafiles for sbas using snap.
If I understand correctly, all data should be co-registrated to a chosen master data firstly and then generate inteferogram pairs. This is not possible in snap for now because multi-master is not supported.
Your method is to clip all interferograms into same area and dimensions. This mainly rely on the geocoding accuracy. I guess it may have some problems. Apply co-regsitration at early phase maybe more reasonable

You have to process them all individually one by one. This is a very labor intensive process if you do it manually in SNAP. I really recommend you create a script for it.

I just do standard InSAR processing that you can find on RUS Training. I automated that process to fit the SBAS requirement where each date needs 3 slaves.


If it possible, please explain how to process SBAS in SNAP and StaMPS?

A modified version of StaMPS has been provided here: Please test the SBAS_snap2stamps
You can try to follow along these instructions.

1 Like

Hi dear ABraun
I want to calculate the closure_phase_bias.py using the MintPy software that I per-processed on ISCE,
but I cant calculate with (MintPy/closure_phase_bias.py at main · insarlab/MintPy · GitHub)
I would be grateful if you could guide me

I haven’t tried MintPy myself yet, sorry.

Hi dear panjibrotoisworo
I want to calculate the closure_phase_bias.py using the MintPy software that I per-processed on ISCE,
but I cant calculate with (MintPy/closure_phase_bias.py at main · insarlab/MintPy · GitHub)
I would be grateful if you could guide me

thanks dear ABraun

Hello, thanks for your sharing. but I wonder how to Subset all four MintPy products by region, to make all the input data have the same row and column.