GRD co-registration error

Hi,

I have spent many hours trying to do co-registration of GRD products with no success.

I have a stack of 33 images (all Ascending) that I want to pre-process and then co-register as I require a high level of spatial accuracy for change detection.

My pre-processing chain is as follows:

Read -> Subset (wkt polygon) -> Apply Orbit File -> Calibration -> Multi-look -> Terrain Flattening -> Terrain
Correction (Range-Doppler) -> Linear to dB

GRD_UnityWater_preprocessing_blank3.xml (6.2 KB)

This chain works very well, and I get consistent results without any errors.

However, when i go to use either the DEM-coregistration or the ‘Coregistration’ (Create Stack) functions, I get one of two errors:
DEM-coregistration returns “javax.media.opengl.GLException: stack contains no elements”;
and the Coregistration function returns something about no array (sorry, I didn’t copy / save this message)

I have tried to remove the subset function in case this is the cause, and instead I get the slave images as being outputted with only 0 values, and the same error message as before.

Can anyone please help and suggest why this is going wrong?

I have the latest version of the software and it is fully up to date.

Many thanks!

Full error message below:

javax.media.opengl.GLException: stack contains no elements
at jogamp.opengl.GLStateTracker.popAttrib(GLStateTracker.java:158)
at jogamp.opengl.gl4.GL4bcImpl.glPopClientAttrib(GL4bcImpl.java:20699)
at gov.nasa.worldwind.terrain.RectangularTessellator.endRendering(Unknown Source)
at gov.nasa.worldwind.terrain.SectorGeometryList.endRendering(Unknown Source)
at gov.nasa.worldwind.render.SurfaceTileRenderer.renderTiles(Unknown Source)
at gov.nasa.worldwind.layers.TiledImageLayer.draw(Unknown Source)
at gov.nasa.worldwind.layers.TiledImageLayer.doRender(Unknown Source)
at gov.nasa.worldwind.layers.AbstractLayer.render(Unknown Source)
[catch] at gov.nasa.worldwind.layers.TiledImageLayer.render(Unknown Source)
at gov.nasa.worldwind.AbstractSceneController.draw(Unknown Source)
at gov.nasa.worldwind.StereoOptionSceneController.draw(Unknown Source)
at gov.nasa.worldwind.BasicSceneController.doRepaint(Unknown Source)
at gov.nasa.worldwind.AbstractSceneController.repaint(Unknown Source)
at gov.nasa.worldwind.WorldWindowGLAutoDrawable.doDisplay(Unknown Source)
at gov.nasa.worldwind.WorldWindowGLAutoDrawable.display(Unknown Source)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:665)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:649)
at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1289)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1119)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
at javax.media.opengl.Threading.invoke(Threading.java:193)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:541)
at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:595)
at javax.media.opengl.awt.GLCanvas.update(GLCanvas.java:795)
at sun.awt.RepaintArea.updateComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

UPDATE: I have tried removing the Linear to dB option as I saw worked for one person, and got more odd results / errors:

When using the DEM co-registration for three images in the stack, I got an output, with complete bands, but the images themselves now have missing strips / holes of data:

The original Master image is in the lower window of the above image.

When I ran the Co-registration function (Create Stack) I got the below error:
java.lang.NullPointerException

The output did not open in SNAP (because it did not complete writing) and the saved partial file contains one master and one slave image half complete / written, so it looks like the process fell over half way through co-registering the first slave to the master image.

Please can someone help to explain these odd results?!

UPDATE:
The error shown in the initial post (stack contains no elements) is not linked to DEM-assisted Co-registration, in fact it occurs when the GRD zipped (uncompressed) files are loaded into the GUI (via drag and drop). Is this a known error? And does it actually impact the following processing?

2 Likes