GRD-Border-Noise and Thermal noise removal are not working anymore since March 13. 2018

Yes you should do them, even if in many cases their effect on the end-result is minimal.

Thank you. I updated my installation to the most recent version and am getting the same error as mentioned by holi in the first post of this thread.

INFO: org.esa.snap.core.gpf.operators.tooladapter.ToolAdapterIO: Initializing external tool adapters

at index 23: C:\WINDOWS\System32\Wbevator.GDALPlugInActivator: Illegal char <
m
at index 23: C:\WINDOWS\System32\Wbelegal char <
m
at sun.nio.fs.WindowsPathParser.normalize(Unknown Source)
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPath.parse(Unknown Source)
at sun.nio.fs.WindowsFileSystem.getPath(Unknown Source)
at java.nio.file.Paths.get(Unknown Source)
at org.esa.s2tbx.dataio.gdal.activator.GDALDistributionInstaller.findFolderInPathEnvironment(GDALDistributionInstaller.java:213)
at org.esa.s2tbx.dataio.gdal.activator.GDALDistributionInstaller.processInstalledWindowsDistribution(GDALDistributionInstaller.java:179)
at org.esa.s2tbx.dataio.gdal.activator.GDALDistributionInstaller.install(GDALDistributionInstaller.java:67)
at org.esa.s2tbx.dataio.gdal.activator.GDALPlugInActivator.start(GDALPlugInActivator.java:22)
at org.esa.snap.runtime.Engine.informActivators(Engine.java:222)
at org.esa.snap.runtime.Engine.lambda$start$10(Engine.java:121)
at org.esa.snap.runtime.Engine.runClientCode(Engine.java:189)
at org.esa.snap.runtime.Engine.start(Engine.java:121)
at org.esa.snap.runtime.Engine.start(Engine.java:90)
at org.esa.snap.runtime.Launcher.run(Launcher.java:51)
at org.esa.snap.runtime.Launcher.main(Launcher.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:62)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:101)
at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:16)

Executing processing graph
INFO: org.hsqldb.persist.Logger: dataFileCache open start
java.lang.NullPointerException
done.

Error: [NodeId: Remove-GRD-Border-Noise] java.lang.NullPointerException

I am using the same graph I’ve been using before the March update and it is not working now. Do you have any suggestions?

Thank you,
Diya

Hello again,

My mistake, I had not completed the update. I am no longer getting these errors. Thank you.

-Diya

I think you may not finished your snap update. I made my limitation for 15g and successfully processed over hundreds of images.

refer to this web: https://senbox.atlassian.net/wiki/spaces/SNAP/pages/30539785/Update+SNAP+from+the+command+line

list and check your local snap version.

I had to remove ThermalNoiseRemoval from my graphs. When using ProductReader and SliceAssembly, ThermalNoiseRemoval, errors and notes : “Error: Noise removal should be applied prior to slice assembly”, however ThermalNoiseRemoval after ProductSet-Reader is not allowed also.

ProductSet-Reader > SliceAssembly > Apply-Orbit-File > Remove-GRD-Border-Noise > ThermalNoiseRemoval > SAR-Simulation > Terrain-Correction > Subset > Write

What is your use-case? Sounds like you are trying to generate a series of multi-slice GRD acquisitions, correct?

ps. Your processing does not include calibration that is the most important step in post-processing GRD-data. Also with S-1 you should be able to use backgeocoding instead of SAR-simulation for the terrain-correction.

My mistake on my previous post: I showed a summary of a graph used to create layover/shadow images only.

I am terrain correcting ~1000 Sentinel-1 images for each 1 degree geocell. Some cells lie on the boundary between S1 slices in one orbit. After the updates in March relative to the format change, I can no longer use ThermalNoiseRemoval in my ProductSet-Reader>SliceAssembly graphs.

Below is the correct summary of my original terrain correction graph used prior to March 2018. I now run the same graph without ThermalNoiseRemoval.

ProductSet-Reader > SliceAssembly > Apply-Orbit-File > Remove-GRD-Border-Noise > ThermalNoiseRemoval > Calibration > Terrain-Flattening > Terrain-Correction > Subset > Write

A very similar graph for single images has worked fine for the last couple years, and still uses ThermalNoiseRemoval :
Read > Apply-Orbit-File > Remove-GRD-Border-Noise > ThermalNoiseRemoval > Calibration > Terrain-Flattening > Terrain-Correction > Subset > Write

Did you upgrade to the latest version 6.0.4? Before the update one could not place thermal noise removal before calibration but now it works.

For products processed by IPF version > 2.9, there is a new noise azimuth block in the metadata which the slice assembly cannot merge. For this reason the thermal noise removal is need prior to slice assembly.

In general, use slice assembly as late in the processing as you can.

This somewhat obsoletes ProductSet-Reader, since Read(s) and separate processing paths will be required for each slice that will be part of the AOI. Separate graphs will be needed for AOIs requiring 1, 2, 3, or more slices.

Thank you for the clarification. What is your opinion of processing S1 without ThermalNoiseRemoval?

The thermal noise is the little bit of ramp horizontally you see between the swaths. It may not matter for some applications.

You may want to consider scripting or batch processing read Apply-Orbit-File Remove-GRD-Border-Noise ThermalNoiseRemoval Calibration

and then the results of those do ProductSet-Reader SliceAssembly Terrain-Flattening Terrain-Correction

Excellent. Thank you for the suggestion. My multi-slice scripts are now running with ThermalNoiseRemoval.

Hello -

I am looking for some advice on how to clear the the NullPointException /Java Heap Space error associated with thermal noise removal from SLC images collected after March 2018, which is described earlier in this thread. Based on the comments in this and other related threads, I have:

  1. Updated to SNAP version 6.0.4
  2. Edited my snappy.ini file to “java_max_mem: 14G”

I am working in snappy and have attached my python file. There is no issue processing images collected before March 2018 via this script and I am able to process images after March 2018 using the SNAP GUI… but I can’t process even a single image collected after March 2018 via the script. I am not sure what I am missing. I suspect that either the update or the increase in java memory does not carry over to processing via snappy. However, I am very new to this system and am not sure how to trouble shoot/fix either issue. I would greatly appreciate any advice on what to try next. Many thanks for your help.

SLC_Intensity_kms.py (2.5 KB)

I have been processing all 2018 GRD images from a particular study area using command line gpt.exe and graphs.

The first two processes in my flow are Apply-Orbit-File and then ThermalNoiseRemoval then some other processing steps …

My script successfully processes the images before March 14th but none of the ones afterwards unless I get rid of the ThermalNoiseRemoval step.

I am not very experienced but am I missing something. My version of SNAP both desktop and command line are the latest. So has this problem been solved in the current releases or not because I am unable to apply ThermalNoiseRemoval to any Sentinel-1 data since the March 2018 date.

Reading this thread which stopped a few months ago it seems to me that a fix has been released so I would have thought I could successfully do what I am trying to do.

Thanks

are you sure you have installed all updates for SNAP 6?

grafik

I am on 6.0.6 for SNAP and 6.0.5 Sentinel-1 toolbox.

I updated the available updates using “help>check for updates” and said Yes to all.

However, I still cannot appply ThermalNoiseReduction to S1 GRD data later than March 2018.

It has been working for other people. What if you just run: apply-orbits - calibrate - remove thermal noise?

Thanks for the tip however I tried this and it gives a blank image.

I have two questions:

(1) when is the best time to apply the ThermalNoiseRemoval - I was assuming as early in the processing as possible makes most sense

(2) is it possible that although I have updated SNAP desktop to the latest version my SNAP commandline wasn’t updated at the same time

Thanks

Hi

I’m facing to this same problem.

I’m try process one image S1B_IW_SLC__1SDV_20210830T085717_20210830T085744_028473_0365D5_0F71 and apply thermal noise removal, but doesn’t work.

This is a error message:

org.esa.snap.core.gpf.OperatorException
at org.esa.s1tbx.calibration.gpf.Sentinel1RemoveThermalNoiseOp.computeTile(Sentinel1RemoveThermalNoiseOp.java:638)
at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:82)
at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)
Caused: org.esa.snap.core.gpf.OperatorException
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)

I’m using SNAP 8.0.8.

So anyone has a ideia how fix this ?

1 Like

Are you by any chance processing on a subset of bursts (i.e. after TOPSAR-Split to select one or two bursts from a particular swath)? I am seeing a similar error message as in this thread: Thermal Noise Removal Failure in Single Burst