SAOCOM DEM Terrain Correction

Hello! I am having an issue when trying to Terrain correct a DEM generated by an interferometric pair of SAOCOM images. This problem does not occur when I work with ALOS images even though I use the same workflow for DEM generation.
Neither of the intermediate products have this problem.

Workflow used:

  • Corregistration
  • Interferogram formation
  • Multilooking (4)
  • Goldstein Filter
  • Phase Unwrapping with SNAPHU
  • Phase to elevation
  • Terrain correction (here is the problem)

I work with SNAP 8 in Windows 10 and Linux (Ubuntu 20.04) only for the phase unwrapping.
Below I lay the logfile message extract:

SEVERE [org.esa.snap]: JAI error occurred: ‘Problem occurs when computing a tile by the owner.’ at com.sun.media.jai.util.SunTileScheduler@6615d25f

java.lang.ArrayIndexOutOfBoundsException: 0

at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:989)

Caused: org.esa.snap.core.gpf.OperatorException: 0

at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:432)

at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:1098)

at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeRect(OperatorImageTileStack.java:122)

at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeTile(OperatorImageTileStack.java:86)

at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)

at javax.media.jai.OpImage.getTile(Unknown Source)

at javax.media.jai.PlanarImage.getData(Unknown Source)

at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)

at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)

at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)

at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)

[catch] at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)

at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)

at javax.media.jai.OpImage.getTile(Unknown Source)

at com.sun.media.jai.util.RequestJob.compute(Unknown Source)

at com.sun.media.jai.util.WorkerThread.run(Unknown Source)

SEVERE [null]: Last record repeated 3 more times.

org.esa.snap.core.gpf.OperatorException: 0

at org.esa.snap.core.gpf.internal.OperatorExecutor$GPFImagingListener.errorOccurred(OperatorExecutor.java:381)

at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(Unknown Source)

at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)

at javax.media.jai.OpImage.getTile(Unknown Source)

at javax.media.jai.PlanarImage.getData(Unknown Source)

at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)

at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)

at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)

at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)

at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)

at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)

at javax.media.jai.OpImage.getTile(Unknown Source)

at com.sun.media.jai.util.RequestJob.compute(Unknown Source)

at com.sun.media.jai.util.WorkerThread.run(Unknown Source)

Caused by: org.esa.snap.core.gpf.OperatorException: 0

at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:432)

at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:1098)

at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeRect(OperatorImageTileStack.java:122)

at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeTile(OperatorImageTileStack.java:86)

… 12 more

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0

at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:989)

… 14 more

SEVERE [org.esa.snap.rcp.SnapApp]: A problem occurred during the target product processing.

Type: OperatorException

Message: 0

java.lang.ArrayIndexOutOfBoundsException: 0

at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:989)

Caused: org.esa.snap.core.gpf.OperatorException: 0

at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:432)

at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:1098)

at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeRect(OperatorImageTileStack.java:122)

at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeTile(OperatorImageTileStack.java:86)

Caused: org.esa.snap.core.gpf.OperatorException: 0

at org.esa.snap.core.gpf.internal.OperatorExecutor$GPFImagingListener.errorOccurred(OperatorExecutor.java:381)

at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(Unknown Source)

at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)

at javax.media.jai.OpImage.getTile(Unknown Source)

at javax.media.jai.PlanarImage.getData(Unknown Source)

at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)

at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)

at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)

at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)

at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)

at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)

at javax.media.jai.OpImage.getTile(Unknown Source)

at com.sun.media.jai.util.RequestJob.compute(Unknown Source)

[catch] at com.sun.media.jai.util.WorkerThread.run(Unknown Source)

The same happens when I execute it from the GPF command line.
I also tried creating a subset but received the following error:

SNAP error - Terrain correction SAOCOM DEM - subset

Thank you for reading. Any comments would be helpful!

Could you share the data product and I could debug the issue?
You could send me a link at luis @ skywatch dot com

Thank you for such a fast reply. I have sent the files corresponding to the DEM and the DEM subset. Could you confirm their reception?

Hi, now I´m having the same issue with Terrain Correction and SAOCOM.
After performing Phase to Elevation I have the followin error with Terrain Correction:

java.lang.ArrayIndexOutOfBoundsException: 0
at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:989)
Caused: org.esa.snap.core.gpf.OperatorException: 0
at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:432)
at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:1098)
at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeRect(OperatorImageTileStack.java:122)
at org.esa.snap.core.gpf.internal.OperatorImageTileStack.computeTile(OperatorImageTileStack.java:86)
Caused: org.esa.snap.core.gpf.OperatorException: 0
at org.esa.snap.core.gpf.internal.OperatorExecutor$GPFImagingListener.errorOccurred(OperatorExecutor.java:381)
at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(Unknown Source)
at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
at javax.media.jai.OpImage.getTile(Unknown Source)
at javax.media.jai.PlanarImage.getData(Unknown Source)
at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)
at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)
at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)
at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)
at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)
at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
at javax.media.jai.OpImage.getTile(Unknown Source)
at com.sun.media.jai.util.RequestJob.compute(Unknown Source)
[catch] at com.sun.media.jai.util.WorkerThread.run(Unknown Source)

Anyone could solve this issue?
Thanks in advance.

Does the result of phase to elevation look alright?

A fix for this will be available in s1tbx 8.0.5 shortly

1 Like