Hello
I have been working on a processing workflow to perform SBAS with SNAP and export to PyRate. My SNAP version is 11
The screenshot below shows the images I am working with:
My current processing steps are broken up into multiple XML graphs that perform the following steps and are executed via gpt calls on the command line:
for file in files:
Graph 1: Apply orbit file → TOPSAR-Split
done
Graph 2: ProductSet-Reader → Back-geocoding
Graph 3: Add Elevation → MultiMasterInSAR → TOPSAR-Deburst → Subset → GoldsteinPhaseFiltering
Graph 4: Snaphu Export
Graph 5: BatchSnaphuUnwrapOp
Up to this point everything functions correctly and I have produced the desired unwrapped phase data as shown in the screenshot
The next steps I need to apply are Snaphu Import and Terrain Correction before exporting to PyRate.
Since I have performed a batch unwrap, I have a single unwrapped stack with the unwrapped phase files in it. It doesn’t look like the SnaphuImport operator can deal with a data stack.
My question is: Is there a way that I can import this data back into SNAP in one step and perform terrain correction on this stack. Or do I need to operate on individual files from now on and loop through the files.
Update: I am now questioning whether I need the SnaphuImport step since the result of the Batch operation can be read directly. When I try to perform the terrain correction directly on the unwrapped stack I receive the following error:
Error: java.lang.NullPointerException
org.esa.snap.core.gpf.OperatorException: java.lang.NullPointerException
at org.esa.snap.core.gpf.graph.GraphProcessor$GPFImagingListener.errorOccurred(GraphProcessor.java:389)
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.OperatorImageTileStack.computeRect(OperatorImageTileStack.java:116)
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 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: java.lang.NullPointerException
at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:434)
at eu.esa.sar.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:1104)
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.NullPointerException
at eu.esa.sar.sar.gpf.geometric.RangeDopplerGeocodingOp.computeTileStack(RangeDopplerGeocodingOp.java:955)
... 14 more
This error occurs regardless of the DEM selected to perform the terrain correction.
Thanks