There are no tags associated with this article.

Interferometry processing (example)

Below is a proposed workflow of doing interferometry processing. Because it is a complex task it could be made using by many different workflows, different data and different parameters. Keep in mind it's just a proposal, aimed at being short guide through the process, it involves usage of Enhanced Spectral Diversity (ESD) processor, that effectively helps to improve accuracy, but it is computational heavy.

The selected source products comes from the same Sentinel-1A satellite and are completely geographically overlapped, partially overlapped data could be also used, it needs a proper selection of swaths and sub-swaths, though. Usage of different kind of S-1 products (eg. originated from Strip-map mode) is also possible.

Suitable products could be found by using CREODIAS Finder:

More info about Finder can be found here:


1.  Create an instance with the OSGeoLive image

The process of creating an OSGeoLive instance is the same as the basic one, but in the Source tab select the OSGeoLive image.

In the "Flavor" tab, we recommend selecting flavor with high vCPU and RAM due to the large amount of resources that the interferometry process requires.

For example, a machine with 32 vCPU and 128 GB RAM was used to create this guide.

If you need help creating a new instance, you can follow the guide below:


Access to the OSGeoLive instance via the console is non-standard and is presented in the guide in point 2.

1.1 Assign a Floating IP to the newly created instance.

If you need help assigning a Floating IP address to your instance, you can follow the guide below:


2. Access the OSGeoLive instance

To access the GUI of the OSGeoLive instance, please follow the guide below:


3. Edit SNAP configuration file

The default configuration of SNAP allows less RAM usage than the selected flavor would allow (e.g. 128 GB RAM).

To do this, we recommend editing the SNAP configuration file to allow the program to use more RAM. We recommend to use 3/4 of the available RAM.

For editing, you can use the LXTerminal console available on the OSGeoLive image.

sudo vim /opt/snap/etc/snap.conf

In the "default_options" line, search for the "J-Xms" option and set the minimum value of the RAM used by the program, e.g. "J-Xms5G" and the "-J-Xmx" options, and set the maximum value, for example, "J-Xmx100G".

# ${HOME} will be replaced by user home directory according to platform

# Options used by the launcher by default, can be overridden by explicit command line switches
default_options="--branding snap --locale en_GB -J-XX:+AggressiveOpts -J-Xverify:none -J-Xms5G -J-Xmx100G -J-Dnetbeans.mainclass=org.esa.snap.main.Main -J-Dsun.java2d.noddraw=true -J-Dsun.awt.nopixfmt=true -J-Dsun.java2d.dpiaware=false"
# for development purposes you may wish to append: -J-Dnetbeans.logger.console=true -J-ea

# Default location of JRE

# Extra cluster paths separated by colon ':'

4. Data preparation

It's recommended to do interferometry on regions with lack of vegetation, with high coherence values.

You can search for data/images of the area from the /eodata repository. However, for faster data processing, we recommend that you download it to an instance.

We suggest creating a separate directory for saving all processing related files.

The following data was used to create this guide, which you can download to your instances:

rsync -rv /eodata/Sentinel-1/SAR/SLC/2020/03/12/S1A_IW_SLC__1SDV_20200312T150130_20200312T150157_031644_03A5B8_5349.SAFE .;
rsync -rv /eodata/Sentinel-1/SAR/SLC/2020/02/17/S1A_IW_SLC__1SDV_20200217T150130_20200217T150157_031294_0399A1_3470.SAFE .;


Start the SNAP program.

Click on Start in the lower left corner and select Other→ SNAP Desktop

It is recommended to check updates after starting SNAP. Once your SNAP is up and running, you can drag your data files to the "Product Explorer" window, located on the left menu.

After reading the data into SNAP, go to "Graph Builder". To do this, click on the "Graph Builder" icon in the top menu.

After clicking on the icon, the Graph Builder window will appear.

Before starting the construction of the graph, the "Write" element should be removed. Right click on this item and select "Delete".

Then, by right-clicking an empty area of the graph, select:

  • Add→Radar→Sentinel-1 TOPS→TOPSAR-Split

After adding this element, add another:

  • Add→Radar→Apply-Orbit-File


  • Add→Input-Output→Write

After adding these elements, shape the graph to look like this:

Then right-click on an empty area and select "Connect Graph".

After connecting, the graph will look like this:

After connecting the graph, save it in your directory by pressing the "Save" button.

After saving the graph, go to "Batch Processing". To do this, click on the "Batch Processing" icon in the top menu.

After clicking on the icon, the Batch Processing window will appear.

Then click on the "Add Opened" button to add all the data from Product Explorer.

After adding the data, press the "Load Graph" button.

Load the graph that was saved previously.

After loading the graph, additional tabs should be available.

For the data selected for this guide in the TOPSAR-Split tab in the option:

  • Subswath, select IW3,
  • Bursts, use the bar to move the right arrow to the left to reduce the value to 3.

This is to define the place of processing.

On the Apply-Orbit-File tab, check the option "Do not fail if new orbit file is not found".

In the "Write" tab in the "Directory" option, select the directory where the Batch Processing output files will be saved.

And then press the "Run" button.

The result of this operation will be 2 new files with updated orbits [3] and [4].

Then create another graph. Click on the "Graph Builder" icon in the top menu.

Remember to delete the "Write" element, and then add another "Read" element.

The number of "Read" elements depends on the amount of data we have after Batch Processing. In this case, 2 [3] and [4].

  • Add→Input-Output→Read

Then add elements to the graph:

  • Add→Radar→Coregistration→S-1 TOPS Coregistration→Back-Geocoding
  • Add→Radar→Coregistration→S-1 TOPS Coregistration→Enhanced-Spectral-Diversity
  • Add→Radar→Interferometric→Products→Interferogram
  • Add→Radar→Sentinel-1 TOPS→TOPSAR-Deburst
  • Add→Input-Output→Write

Before connecting the graph, you should manually connect 2 "Read" elements with the "Back-Geocoding" element.

You can do this by dragging the arrow from the edges of the "Read" elements to the "Back-Geocoding" element.

After connecting the "Read" items, you can connect the entire graph.

After connecting the graph in the first "Read" tab, select the first product with corrected orbits. In this case [3].

In the next Read tab, select the next product with corrected orbits. In this case [4].

Leave the rest of the tabs unchanged.

In the "Write" tab in the "Directory" option, select the directory where the output files will be saved.

Before running the graph, save it by pressing the "Save" button.

We also recommend saving the session by pressing in the upper left corner on: File→Session→Save Session As

After saving the graph, you can run it.

This part of the processing is the longest, could take up to several hours, depending on processed area.

If you need to close x2go and you don't want to interrupt processing, we recommend you to suspend your x2go session.

You can do this by pressing Suspend button (II).

To resume the session, press the "Resume" button.

The result of this processing is a new product [5]:

The resulting product should be filtered, in order to do this create a new graph.

Remember to delete the "Write" element and then add the following elements:

  • Add→Radar→Interferometric→Products→TopoPhaseRemoval
  • Add→Radar→SAR Utilities→Multilook
  • Add→Radar→Interferometric→Filtering→GoldsteinPhaseFiltering
  • Add→Input-Output→Write

And then connect the graph.

In the Read tab, select [5] product.

In the "Multilook" tab, in the "Number of Range Looks" option, set it to a value that will effect in around 27m "Mean GR Square Pixel".

You can leave default values for "GoldsteinPhaseFiltering".

In the "Write" tab in the "Directory" option, select the directory where the output files will be saved.

Then press the "Run" button to run the graph.

The result of this graph will be a new product [6]. Consisting of wrapped phase in range from -π to +π.

Then the product [6] has to be exported in order to do a phase unwrapping.

To do this, select from the top menu:

Radar→Interferometric→Unwrapping→Snaphu Export

After selecting this option, the Snaphu Export window will appear.

Select [6] the product in the "Read" tab.

In the "SnaphuExport" tab:

  • In "Directory" select your directory. We suggest creating an additional directory (e.g. snaphu).
  • Change "Number of Tile Rows" to 1
  • Change "Number of Tile Columns" to 1
  • Change "Row Overlap" to 200
  • Change "Column Overlap" to 200

and then start exporting by pressing the "Run" button.

Then go to the folder where the product was exported and open the "snaphu.conf" file.

After opening the file, copy the command from the 7th line.

Then go to the folder where the program was exported from the console level and execute the copied command.

The command should end after a few minutes

Then you need to import the new product.

To do this, select from the top menu:

Radar→Interferometric→Unwrapping→Snaphu Import

After selecting this option, the Snaphu Import window will appear.

In the "1-Read-Phaes" tab select the product [6].

In the "2-Read-Phaes" tab, select the file that was created by executing the snaphu command with .hdr extension.

In the "4-Write" tab in the "Directory" option, select the directory where the output files will be saved.

In order not to overwrite the file, you should rename the file, we suggest adding "_Unwrapped" to the name.

Then start the import by pressing the "Run" button.

The import will result in a product [7].

Then select from the top menu:

Radar→Interferometric→Products→Phase to Displacement

After selecting this option, the "Phase to Displacement" window will appear.

In the "I/O Parameters" tab select the product [7] and then press the "Run" button.

The result of this operation will be a product [8]. The product will consist of displacement between acquisitions in meters.

In the "Color Manipulation" toolbar, selecting Basic Editor and pressing the "Range from Data" button, we can check the shifts.

The product [8] is not georeferenced yet. It can be georeferenced and exported to eg. a GeoTIFF file. To do this, select from the top menu:

Radar→Geometric→Terrain Correction→Range-Doppler Terrain Correction

After selecting this option, the "Range-Doppler Terrain Correction" window will appear.

  • In "source" select the product [8].
  • In the "save us" option, select GeoTIFF
  • In "Directory" select your directory.

and then press the "Run" button.

Finally, we managed to generate the product [9]. Georeferenced displacement in meters.

This type of product can be published using this guide: