Hello everybody,
i have Problems with the Collocation Tool and don’t know how to go on. Any help would be really apreciated!
I’ve made a water mask from a Landsat 8 Image of Cologne, wich i want to use for 40 different Landsat 5 and 8 Subset-Products of the same City. I’ve made the graph: ProductSet-Reader -> Collocate -> Write. In the ProductSet Reader i added the Product with the Watermask Band and one other random Product (image from 1985) (i had to use ProductSet Reader and add two Products, because when i use ‘read’ instead and only add the Watermask Product, i get the Error ‘At least two source Products have to be defined’ in the ‘Batch Processing’ and cannot choose a Master.
Then i saved this graph, and loaded it in Batch Processing. I added all my Products and
for Master i selected the Product with the Watermask Band. It run without an Error, and the Result were 40 images with their original names, but they all had the same bands (the Water mask as Master, and the ones from the image from 1985 as Slaves). So it seems, that the Collocation was only done with the two source images i uploaded at the beginning, but 40 times (The ammount of Products i the later uploaded in the Batch Processing. Where is the Problem here?
When i collocate the images individually it works for the Landsat 5 Images (but i would really like it if it would be possible with the Graph/ Batch processing, because i guess thats what it’s made for )
BUT when i want to do the same for Landsat 8 Products, i get the Error:
org.esa.snap.core.gpf.OperatorException: Source product ‘2020.02.15’ must be geo-coded.
at org.esa.snap.core.gpf.Operator.ensureSceneGeoCoding(Operator.java:506)
at org.esa.snap.collocation.CollocateOp.initialize(CollocateOp.java:284)
at org.esa.snap.core.gpf.internal.OperatorContext.initializeOperator(OperatorContext.java:486)
at org.esa.snap.core.gpf.internal.OperatorContext.getTargetProduct(OperatorContext.java:273)
at org.esa.snap.core.gpf.Operator.getTargetProduct(Operator.java:387)
at org.esa.snap.core.gpf.GPF.createProductNS(GPF.java:330)
at org.esa.snap.core.gpf.GPF.createProduct(GPF.java:305)
at org.esa.snap.core.gpf.GPF.createProduct(GPF.java:284)
at org.esa.snap.collocation.visat.CollocationDialog.createTargetProduct(CollocationDialog.java:70)
[catch] at org.esa.snap.core.gpf.ui.SingleTargetProductDialog.onApply(SingleTargetProductDialog.java:131)
at org.esa.snap.ui.AbstractDialog.lambda$initUI$6(AbstractDialog.java:519)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.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)
I don’t understand why the Landsat 8 images should have no geo-code? When i go over the image with the cursor, i see geo-coordinates. Is it in anyway possible that it looses its geo-code while subsetting? Then i tested to Collocate with the original Landsat 8 images. This seems to work first, but when i want to open a band of the Collocation Product, i find the following error:
org.esa.snap.core.jexp.ParseException: Undefined symbol ‘flags_M.designated_fill_M’.
at org.esa.snap.core.jexp.impl.ParserImpl.reportError(ParserImpl.java:1036)
at org.esa.snap.core.jexp.impl.ParserImpl.parseCallOrRef(ParserImpl.java:722)
at org.esa.snap.core.jexp.impl.ParserImpl.parsePrimary(ParserImpl.java:678)
at org.esa.snap.core.jexp.impl.ParserImpl.parsePostfix(ParserImpl.java:637)
at org.esa.snap.core.jexp.impl.ParserImpl.parseUnary(ParserImpl.java:624)
at org.esa.snap.core.jexp.impl.ParserImpl.parseMul(ParserImpl.java:530)
at org.esa.snap.core.jexp.impl.ParserImpl.parseAdd(ParserImpl.java:487)
at org.esa.snap.core.jexp.impl.ParserImpl.parseBitwiseAnd(ParserImpl.java:461)
at org.esa.snap.core.jexp.impl.ParserImpl.parseBitwiseXOr(ParserImpl.java:434)
at org.esa.snap.core.jexp.impl.ParserImpl.parseBitwiseOr(ParserImpl.java:408)
at org.esa.snap.core.jexp.impl.ParserImpl.parseComparison(ParserImpl.java:319)
at org.esa.snap.core.jexp.impl.ParserImpl.parseLogicalAnd(ParserImpl.java:286)
at org.esa.snap.core.jexp.impl.ParserImpl.parseLogicalOr(ParserImpl.java:259)
at org.esa.snap.core.jexp.impl.ParserImpl.parseConditional(ParserImpl.java:230)
at org.esa.snap.core.jexp.impl.ParserImpl.parseAssign(ParserImpl.java:179)
at org.esa.snap.core.jexp.impl.ParserImpl.parseTerm(ParserImpl.java:168)
at org.esa.snap.core.jexp.impl.ParserImpl.parseImpl(ParserImpl.java:150)
at org.esa.snap.core.jexp.impl.ParserImpl.parse(ParserImpl.java:136)
at org.esa.snap.core.jexp.impl.ParserImpl.parse(ParserImpl.java:115)
at org.esa.snap.core.dataop.barithm.BandArithmetic.parseExpression(BandArithmetic.java:116)
at org.esa.snap.core.image.VirtualBandOpImage.parseExpression(VirtualBandOpImage.java:106)
Caused: java.lang.IllegalArgumentException: expression: Undefined symbol ‘flags_M.designated_fill_M’.
at org.esa.snap.core.image.VirtualBandOpImage.parseExpression(VirtualBandOpImage.java:108)
at org.esa.snap.core.image.VirtualBandOpImage.parseExpression(VirtualBandOpImage.java:94)
at org.esa.snap.core.datamodel.VirtualBand.createSourceImage(VirtualBand.java:259)
at org.esa.snap.core.datamodel.Mask$BandMathsType.createImage(Mask.java:251)
at org.esa.snap.core.datamodel.Mask.createSourceImage(Mask.java:128)
at org.esa.snap.core.datamodel.RasterDataNode.getSourceImage(RasterDataNode.java:2162)
at org.esa.snap.core.layer.MaskLayerType.createMultiLevelSource(MaskLayerType.java:81)
at org.esa.snap.core.layer.MaskLayerType.createMultiLevelSource(MaskLayerType.java:77)
at org.esa.snap.core.layer.MaskLayerType.createLayer(MaskLayerType.java:63)
at org.esa.snap.core.layer.MaskLayerType.createLayer(MaskLayerType.java:52)
at org.esa.snap.ui.product.ProductSceneImage.createMaskCollectionLayer(ProductSceneImage.java:338)
at org.esa.snap.ui.product.ProductSceneImage.getMaskCollectionLayer(ProductSceneImage.java:184)
at org.esa.snap.ui.product.ProductSceneView.getMaskCollectionLayer(ProductSceneView.java:1242)
at org.esa.snap.ui.product.ProductSceneView.setMaskOverlayEnabled(ProductSceneView.java:619)
at org.esa.snap.ui.product.ProductSceneView.(ProductSceneView.java:272)
[catch] at org.esa.snap.rcp.actions.window.OpenImageViewAction$1.done(OpenImageViewAction.java:223)
at javax.swing.SwingWorker$5.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
at sun.swing.AccumulativeRunnable.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(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.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)
So where is that Problem with the Landsat 8 images?
Any help would be really apreciated because i really don’t know how to go on!
Thanks in Advance
Paul