Report a an error for radiometric terrain flattening and split

Dear all,

I am using a machine with this specifications: Corei9 with 64 GB RAM, this machine has some problems with some operators in snap such as split, and radiometric terrain flattering. I almost did whatever I knew, no progress, here is the report:

java.lang.NullPointerException
Caused: org.esa.snap.core.gpf.OperatorException
at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:432)
at org.esa.s1tbx.sar.gpf.geometric.TerrainFlatteningOp.outputNormalizedImage(TerrainFlatteningOp.java:883)
at org.esa.s1tbx.sar.gpf.geometric.TerrainFlatteningOp.computeTileStack(TerrainFlatteningOp.java:503)
Caused: org.esa.snap.core.gpf.OperatorException: java.lang.NullPointerException
at org.esa.snap.engine_utilities.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:432)
at org.esa.s1tbx.sar.gpf.geometric.TerrainFlatteningOp.computeTileStack(TerrainFlatteningOp.java:514)
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.OperatorImageTileStack.computeRect(OperatorImageTileStack.java:116)
[catch] 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)

if anybody can help, I am really grateful.

thanks a lot in advance

Would it work when you apply Deburst first?

@ABraun, I used the following work flow:

I use SLC data,
apply orbit file, thermal noise removal, calibration (to beta), deburst, multilooking, radiometric terrain flattening
I also tried to calculate the terrain flattening gamma naught from complex number so I carried the below steps:
apply orbit file, calibration (to complex number), deburst, C2 matrix generation, multilooking, radiometric terrain flattening, but not working even with C2 matrix

let me summarize my tests into two different categories:

working case:
apply orbit file for the whole scene and step by step doing the first procedures

not working case:
first, applying any kind of graphs/batch processing
second, splitting the scene to sub swath

so I though it maybe problem of memory and cache, so i changes the performance options as follows:
-Xmx45056m -Xms512m -XX:+AggressiveOpts -Xverify:none -Dnetbeans.mainclass=org.esa.snap.main.Main -Dsun.java2d.noddraw=true -Dsun.awt.nopixfmt=true -Dsun.java2d.dpiaware=false

cache size:15000
tile size:1024

unfortunately, it didn’t help that much so any recommendations are most welcome, and thanks a lot

Sorry, this was not clear from your question.

Did you stick to the BEAM DIMAP format for all processing steps? Does the data still contain Beta0 after multi looking?

@ABraun, yes the format is dimap.
yes the data must be beta0 after multilooking, since terrain flattening input should be eight beta0 or C2 matrix, the problem is with radiometric terrain flattening operator which can not be executed and the error pups up

I’m not a developer, so the message is rather cryptic to me, but maybe @jun_lu has an idea.

@Nimaahm I think you can try the following steps:
apply orbit file, split, thermal noise removal, calibration (to beta), deburst, multilooking, radiometric terrain flattening
If want to use graph, you can create a graph with all operators except terrain flattening. That may reduce the usage of the memory. You can perform terrain flattening separately.
Give it a try and see if it works

@jun_lu, once you use any kind of graph and or split operator, the terrain flattening operator does not work. As I mentioned, if I carried out the steps one by one without splitting, it works but since I have more than 50 S1 images, I can’t do step by step procedure.

I think the problem is that terrain flattening misrecognized the input as GRD product. We will look into the problem. A JIRA ticket (https://senbox.atlassian.net/browse/SITBX-882) has been created to track the problem. For now if you can use the GRD product instead of the SLC product, then I think your graph should work

1 Like

@jun_lu thanks a lot, hopefully this issue get solved in future snap versions.

Dear all,

exact same issue here. Would be great if this gets solved soon, as I am relying on it in the Open SAR Toolkit, where SLC data is processed burst by burst (i.e. using the split operator and graphs).

Thanks in advance,
AV

The problem has been fixed and the fix should be in the next patch release. Thank you all for reporting the problem

2 Likes

Thank you for the quick fix!
Any idea when the next patch released will be rolled out?

Thanks a lot @jun_lu and all for the quick action