Has anyone tried MintPy for SBAS using SNAP?

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

@suribabu

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.

2 Likes

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.

3 Likes

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.

2 Likes

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.

I have question.

When conducting analysis with Mintpy, is it necessary to convert the unwrapped data using Snaphu to displacement in meters through Phase to Displacement?

Hi. It seems that cutGeotiffs.py is not anymore included in hyp3-lib. Is there another way to do it?

I think this is the code, I’ve found it in some old code of mine.

def cut_tiffs_to_common_overlap(data_dir: str, overwrite=True) -> None:
        """
        Get the common overlap of  a list of GeoTIFF files
        
        Parameters
        ----------
        data_dir: str
            Path to directory containing Tiffs to cut
        overwrite: bool
            If True, then it will overwrite existing files if it already exists. Else it will not.
        
        Returns
        -------
            [ulx, uly, lrx, lry], the upper-left x, upper-left y, lower-right x, and lower-right y
            corner coordinates of the common overlap

        """

        files_for_mintpy = ['_water_mask.tif', '_corr.tif', '_unw_phase.tif', '_dem.tif', '_lv_theta.tif', '_lv_phi.tif']

        # Get common area using DEM files
        dem_files = glob(os.path.join(data_dir, '*_dem.tif'))

        corners = [gdal.Info(str(dem), format='json')['cornerCoordinates'] for dem in dem_files]

        ulx = max(corner['upperLeft'][0] for corner in corners)
        uly = min(corner['upperLeft'][1] for corner in corners)
        lrx = min(corner['lowerRight'][0] for corner in corners)
        lry = max(corner['lowerRight'][1] for corner in corners)
        overlap = [ulx, uly, lrx, lry]

        # Loop through files and clip them to common area
        for extension in files_for_mintpy:

            for file in glob(os.path.join(data_dir, f'*{extension}')):
                
                dst_file = os.path.join(
                    os.path.dirname(file),
                    os.path.basename(file).replace('.tif', '_clipped.tif')
                )

                if not overwrite and os.path.exists(dst_file):
                    continue
                else:
                    gdal.Translate(destName=str(dst_file), srcDS=str(file), projWin=overlap)

Very interesting. I’m using python wrappers for generating interferogram then snap2stamps for PSI.