Topographic Phase Removal Error

Same problem with a newly upgraded SNAP (8.0.4)
GPT=(HOME)/snap/bin/gpt (GPT) TopoPhaseRemoval -SsourceProduct=target_deburst.dim -PdemName=“SRTM 3Sec” -t target_topo.dim -c 2048M -q 2
following split > orbit > back geocoding > ESD > interferometry > deburst:

Error: [slvProductName] is null

with the long dump ending with
Caused by: java.lang.IllegalArgumentException: [slvProductName] is null
at org.esa.snap.core.util.Guardian.assertNotNull(Guardian.java:67)
at org.esa.snap.engine_utilities.gpf.StackUtils.saveSlaveProductBandNames(StackUtils.java:129)
at org.jlinda.nest.gpf.SubtRefDemOp.createTargetProduct(SubtRefDemOp.java:426)
at org.jlinda.nest.gpf.SubtRefDemOp.initialize(SubtRefDemOp.java:145)
… 24 more

This same area was already processed many times so I do not believe it is an issue with SRTM 3Sec tile (SNAP issue 1439 ?).

@Reelle: your screenshot looks like parts of the interferogram are missing. You have combined Sentinel-1A and B which are often shifted along track so the number of bursts differ. Please first compute a stack where all bursts are covered by both dates. Otherwise, the subsequent tasks can fail.

My issue was tracked to insufficient memory: random errors seemed to appear on the 12-GB RAM laptop I was running the processing on. Installing SNAP/gpt on a 64-GB RAM computer seems to allow completing all processing flawlessly. Apologies for the noise then.

Hello, I also have same problem. After some testing, I found this problem happened using s1tbx Version 8.0.4 with some special S-1 interferogram. Here is my testing:

  1. Input S-1 single swath interferogram to [Topographic Phase Removal]
    v8.0.1-> Successful
    v8.0.4-> Successful

  2. Input S-1 multi swath merge interferogram to [Topographic Phase Removal]
    v8.0.1-> Successful
    v8.0.4-> Error

Following is the error message:
java.lang.IllegalArgumentException: [slvProductName] is null
at org.esa.snap.core.util.Guardian.assertNotNull(Guardian.java:67)
at org.esa.snap.engine_utilities.gpf.StackUtils.saveSlaveProductBandNames(StackUtils.java:129)
at org.jlinda.nest.gpf.SubtRefDemOp.createTargetProduct(SubtRefDemOp.java:426)
at org.jlinda.nest.gpf.SubtRefDemOp.initialize(SubtRefDemOp.java:145)
Caused: org.esa.snap.core.gpf.OperatorException: [slvProductName] is null
at org.jlinda.nest.gpf.SubtRefDemOp.initialize(SubtRefDemOp.java:148)
at org.esa.snap.core.gpf.internal.OperatorContext.initializeOperator(OperatorContext.java:528)
at org.esa.snap.core.gpf.internal.OperatorContext.getTargetProduct(OperatorContext.java:298)
at org.esa.snap.core.gpf.Operator.getTargetProduct(Operator.java:385)
at org.esa.snap.core.gpf.GPF.createProductNS(GPF.java:333)
at org.esa.snap.core.gpf.GPF.createProduct(GPF.java:308)
at org.esa.snap.core.gpf.GPF.createProduct(GPF.java:287)
at org.esa.snap.graphbuilder.rcp.dialogs.SingleOperatorDialog.createTargetProduct(SingleOperatorDialog.java:175)
[catch] at org.esa.snap.graphbuilder.rcp.dialogs.SingleOperatorDialog.onApply(SingleOperatorDialog.java:287)
at org.esa.snap.ui.AbstractDialog.lambda$initUI$6(AbstractDialog.java:519)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

1 Like

Hello, after some surveys, I found that one of the slave metadata doesn’t be updated after [Interferogram] step, which caused SNAP can’t find correspond band as input in [Topographic Phase Removal], after manually modifying the value, I can successfully finish [Topographic Phase Removal] step.

The xml node of the metadata is

Dimap_Document → Dataset_Sources → MDElem name=“metadata” → MDElem name=“Slave_Metadata” → MDElem name=“S1B_IW_SLC__xxxxx” → MDATTR name=“Slave_bands”

The correct value of this node after [Interferogram] step should all be like:
i_ifg_VV_12Jul2020_18Jul2020 q_ifg_VV_12Jul2020_18Jul2020 Phase_ifg_VV_12Jul2020_18Jul2020 coh_VV_12Jul2020_18Jul2020

but in the metadata of product encountering this problem, only the first slave had correct value, the others would be like:

i_IW1_VV_slv2_24Jul2020 q_IW1_VV_slv2_24Jul2020

Also, this node value seems not impact s1tbx version 8.0.1 and before, the product with incorrect value still can finish [Topographic Phase Removal] step in old version SNAP.

1 Like

hi everyone
i am having the same problem.
i am running steps of gpt via python with the goal of having a script to do interferogram on mass - long story - another time…

after interferogram and deburst steps seems to work fine…
i tried running this within snap (8.0.4), both graph and menu (just in case) and i get the above error.

i understand im not alone here but how do i fix this?

many thanks in advance
tamir

several errors are reported in this topic, can you please specify your problem?

hi abraun
thanks for getting back to me so quickly its been driving me crazy… :slight_smile:

ok from what i can tell - its the same as what Topographic Phase Removal Error is reporting

i have run the following: split, orbit, backgeocoding, esd, interferogram, deburst but when i try to do the tpr (topo phase removal) i get the [slvProductName] is null error… just like Jmfriedt above (if you ask me - his/hers problem swas solved by installing a different version - not the size of the computer)…im running all this on a win10 computer with 128g ram and 12 cores. i am using python to edit xml graphs and running them via gpt … my snap is 8.0.5

i tried running (actually its running as i write) the last few steps in snap just to see if it works. i tried earlier but it didn’t work. now i went back to do the steps from interferometry onward to check if the outcome is different (i suspect not)(update - it didnt work). toi that end - i suspect constantinevi is possibly right.

if it is a repeated problem - i am the third in this thread alone - i hope you can advise of a work around or something. right now (hopefully tomorrow) i plan to reinstall an older version of snap and pray to the gods of sentinel …

anyway thanks everyone for sharing hope to broadcast good news to you all soon.

tamir

Maybe topographic phase removal was already done in the interferogram operator?
If not, please activate the checkbox and select a suitable DEM so you won’t need the TPR as a separate operation.

hi everyone
so i uninstalled (complete clean etc) snap and reinstalled it (version 8.0.0 i think) and i disabled the automatic updating (which would install the buggy 8.0.5 version) and now everything is working. so! here are the good news i promised. :slight_smile:

still, as per abroun remark:

as it is - tpr wasn’t done in the interferogram opp. it first appears after the tpr run

your second comment is really interesting and important - you mean that if i activate and provide a suitable dem file - tpr will be done within the interferogram stage?
i will try again but previously when i entered a dem it didn’t work, thats why i have gone back to using the srtm… nonetheless - i will check it up and update this forum (but its not going to be immediately - i would like to finish writing and run successfully this version of the code.

many thanks for your advice and support. next bug hurdle - snaphu… anyone exported, run and imported back via python? is there an option doing this with xml graphs?

many thanks
tamir

this is not a good idea. Firstly, before you import it back, you have to do the actual unwrapping by calling snaphu. Then a visual check of the result is required, because depending on the number of tiles, the cost mode and the unwrapping method the result can look differently. The import only makes sense if the unwrapping worked fine.

[quote=“divething, post:9, topic:31030”]
just like Jmfriedt above (if you ask me - his/hers problem was solved by installing a different version - not the size of the computer)…[/quote]

I believe you are correct: unlike my 12 GB RAM laptop, the 64 GB RAM desktop is a remote computer with no graphical user interface so that SNAP will not automagically upgrade. I stumbled on the same problem again and downgrading from 8.0.5 to the current archive 8.0 solved the issue.
Actually I just realized while running the processing script with the downgraded version of SNAP that gpt was already complaining

WARNING: org.esa.snap.engine_utilities.gpf.StackUtils: saveSlaveProductBandNames: slvProductName is null

but did not crash as the newer upgrades. The command I use is

$SNAP/gpt TopoPhaseRemoval -SsourceProduct=target_deburst.dim -PdemName=“External DEM” -PexternalDEMFile=“DEM.tif” -PexternalDEMNoDataValue=0.0 -t target_topo.dim

I met the same error “[slvProductName] is null” when processing topographic phase removal for a 2-pass interferogram. The steps I have done before this are open products → coregister → Interferogram Formation → TOPS Deburst.

The SNAP version I am using is 8.0.9 and the S1TBX version is 8.0.6.

Hello constantinevi! Where can I modify the value manually? Where is Dimap_Document?

Hello, sorry for late reply.
The snap dim file (file name end in “.dim”) can open as a XML file in txt editor. “Dimap_Document” should be the root node of this xml.

Hello Relle, you or someone else was able to solve Topographic Phase Removal Error ( Error: [slvProductName] is null), I have the same problem, and I would like to know if you or someone else was able to fix it, that it is not necessary to look for previous versions of SNAP 9.0 ??? please Help!!!

Hi

I have the same problem. How may I solve this error in TOPSAR-Split?

Hi @bext_la ,

Please provide us with the product(s) you are using in your processing, the graph (or a simplified version of it allowing us to reproduce the error) and the SNAP version.

Hello Diana, I am facing the same error in Topographic phase removal. I am using these products:

  1. S1A_IW_SLC__1SDV_20180710T154030_20180710T154057_022734_0276BA_6B71.SAFE
  2. S1A_IW_SLC__1SDV_20180722T154031_20180722T154058_022909_027C2A_8F14.SAFE
  3. S1A_IW_SLC__1SDV_20180827T154033_20180827T154100_023434_028CE6_F163
  4. S1A_IW_SLC__1SDV_20180920T154034_20180920T154101_023784_02981E_302D.SAFE

I am applying S-1 TOPS Split Apply Orbit for each of the products (IW1; Burst 1-4) and then applying S-1 Back Geocoding and creating a stack, then appying ESD , Interferogram generation, and then S-1 TOPS deburst after this while applying Topographic Phase Removal gives me an error of [slvProductName] is null

JIRA ticket SNAP-3651 created to track this issue