Intensity Images

We will process a Single Look Complex (SLC) Sentinel 1 scene in order to achieve its VV and VH polarized intensity images. A SLC product is provided in zero-Doppler slant-range geometry. The products include a single look in each dimension and consist of complex samples preserving the phase information.

If you need help with downloading Sentinel data, just have a look at the previous download chapter. The exemplary S1 scene was acquired over Berlin and shows an urban rural gradient.

Our workflow will contain the following sequential steps. The order of those steps is essential to derive pre-processed intensity images of that region:

  1. Read: Input – import a S1 scene
  2. ThermalNoiseRemoval: removes electrical fluctuations arising from the random thermal motion of electrons, continue reading
  3. Apply-Orbit-File: step for acquiring the satellite orbit file to get more precise orbit data to improve geocoding and other SAR processing results
  4. Calibration: corrects a SAR image so that the pixel values truly represent the radar backscatter of the reflecting surface. A calibration is essential for quantitative use of SAR data, continue reading
  5. TOPSAR-Deburst: S1 scenes are acquired using the Terrain Observation with Progressive Scans SAR (TOPSAR) technique, resulting in multiple adjacent sub-swaths and demarcation zones between those swaths. This module will remove those demarcation zones continue reading
  6. Terrain-Flattening: Radiometrically “flatten” the image, reducing terrain induced radiometric variations, which is especially important in heavily embossed areas
  7. Terrain-Correction: will geocode the image by correcting SAR geometric distortions using a digital elevation model (DEM) and producing a map projected product
  8. Subset: spatially or radiometrically subset the image. Spatial subsets dramatically speed up the whole processing!
  9. Write: Output – write all bands (mostly VH and/or VV) to a GeoTiff raster file

NOTE: Sentinel data, as well as the SNAP toolbox are subjects to constant changes and development. For example the proposed workflow includes the removal of thermal noise (ThermalNoiseRemoval), which momentarily cannot be applied to scenes acquired after March 23, 2018, as metadata formats changed (source). Remove this processing step to process data products acquired after this date.

Step by Step

First download the scene with the ID S1A_IW_SLC__1SDV_20170731T165159_20170731T165226_017718_01DAC6_7F9F.
S1 SLC files hold around 7 to 8 GB of data. So this may take some time. Do not unzip the file – this is not necessary and only consumes a lot of hard disk space!

Got the S1 scene (or another one)? – Then start SNAP now!

Open SNAP and click on the graph builder icon in the Toolbar. You will see a new window pop up, which shows a standard graph (containing one Read and one Write node) in the upper area and some options in the lower area.

Right click somewhere in the white area at upper window to add new nodes, i.e., processing steps, to the graph. Navigate to the following nodes to add them to your graph:

  1. Read
  2. Add > Radar > Radiometric > ThermalNoiseRemoval
  3. Add > Radar > Apply-Orbit-File
  4. Add > Radar > Radiometric > Calibration
  5. Add > Radar > Sentinel-1 TOPS > TOPSAR-Deburst
  6. Add > Radar > Radiometric > Terrain-Flattening
  7. Add > Radar > Geometric > Terrain Correction > Terrain Correction
  8. Add > Raster > Geometric > Subset
  9. Write

Each processing step is visualized by a rectangle in the graph. You can drag those rectangles, or nodes, to whichever position you want with pressed left mouse button. Arrange the added nodes to something like this:

The individual nodes are not yet linked. If you rest the mouse pointer over the right edge of a rectangle, you will see a red arrow. Drag this arrow with pressed left mouse button to the next node in the following order:

Next, click on the Read Node and load your ZIP-compressed Sentinel 1 scene into the Source Product setting. This could take a short moment. Attention: From now on, it will always take a little while to switch back and forth between the processing nodes, as SNAP will process and read your data as virtual products in the background!

Now either click through the tabs at the bottom of the Graph Builder window or through the node rectangles to set the following options for all the nodes. You should try to make the settings in order, because graph building in SNAP is quite “fragile” and it may sometimes lead to strange errors, if the modules are not properly build on each other.

Calibration: as we will utilize the terrain flattening, we need to process the required beta0 band here.
Terrain Flattening: Uncheck the Re-grid method here, as it might cause some errors when the DEM resolution is lower than your source image data and you want to keep your source resolution.
Terrain Correction: Choose a Pixel Spacing in m for the final output product, as well as the adequate Map Projektion (WGS 84, EPSG:32633 in our example).
Subset: Limit the image data from the outset to your study area, if possible – because all processing steps are only applied to the subset, which saves an enormous amount of computation time. The spatial section in the Subset node should be made using the geographic coordinates. However, the linked map is quite blurred and therefore not much help. However, under the map you can define any spatial subset using the Well-Known Text (WKT) format. There are a number of simple online tools for creating such WKTs. Copy the entire “Polygon(())” expression into the line below the map within the subset Node and click on the update-button right to the right:
POLYGON((13.11 52.65, 13.70 52.65, 13.70 52.35, 13.11 52.35, 13.11 52.65))

When everything is set, you might want to save your graph. Simply click on “Save” on the bottom of the graph window and choose a file path. After that, start the graph via “Run”. Depending on the size of the study area and the processing nodes, this will take some time. If you run into some Java memory problems here, please refer to the troubleshooting section below.

Have a look at the Bulk Processing Section of this course to learn, how to automate the process for many datasets!

After processing is finished, you should get a GeoTiff-file that includes two channels: one VH and one VV intensity image. Those can be viewed directly in SNAP:

VV intensity image

In SNAP, you can view the image in decibel (dB) scaling by right-clicking on the intensity image band and select Linear to/from dB to convert the data with the expression 10*log10(Intensity_VV):

transform band to dB scaling

Double-click on the new Intensity_VV_db band to open it:

VV intensity image in dB scaling


However, it is possible to extend this workflow. As you can see, this intensity image is quite noisy. Try to reduce the salt and pepper effect by applying a Single-Product Speckle Filter to your graph by your own! Click on the button below to see a solution:


Since S1 data is very large (sometimes up to 8 GB per data set), a sufficiently large amount of RAM is required for preprocessing. Especially the calibration and speckle filtering operations are very memory hungry. Your Virtual Machine (or your computer) should be equipped with at least 8 GB of RAM (16 GB recommended for S1 processing). Red error messages, such as Cannot construct DataBuffer or Java Heap Space, indicate that too little RAM is available for your computer or Java.
Possible solutions:
– In the main toolbar of SNAP, click on Tools > Options. A new window will open, click on the Performance tab and modify the “-Xmx2048m” value in the first line, which says VM Parameter to something like “-Xmx8192m”. This will allocate more memory to the Java virtual machine.
– split the graph into smaller graphs and save the intermediate results.