Merge two mask band

Hello I’m new here. Sorry for my bad english. Can anybody help me with this problem.

What can I do to merge 2 products?. Each product has 1 band.
In the resulting product, I expect 2 bands, but there’s only one band.

red = ProductIO.readProduct(‘D:\tmp\T41VPD_20170603T065021_B04.jp2’)
green = ProductIO.readProduct(‘D:\tmp\T41VPD_20170603T065021_B03.jp2’)
sourceProducts= HashMap()
sourceProducts.put(‘masterProduct’, red)
sourceProducts.put(‘slaveProduct’, green)
parameters = HashMap()
target = GPF.createProduct(‘Merge’, parameters, sourceProducts)
bands = target.getBandNames()
print list(bands)

I’m setting the incorrect parameters?

Hi,

the problem is that the band in both products has the same name: band_1, so you have to rename them or indicate to the Merge operator how to rename it. For example:

red = ProductIO.readProduct(‘XXX_B04.jp2’)
green = ProductIO.readProduct(‘XXX_B03.jp2’)
sourceProducts= HashMap()
sourceProducts.put(‘masterProduct’, red)
sourceProducts.put(‘slaveProduct’, green)

parameters = HashMap()

NodeDescriptor = jpy.get_type(‘org.esa.snap.core.gpf.common.MergeOp$NodeDescriptor’)
nodeMaster = NodeDescriptor()
nodeMaster.setName(“band_1”);
nodeMaster.setNewName(“B4”);
nodeMaster.setProductId(“masterProduct”);
nodeSlave = NodeDescriptor()
nodeSlave.setName(“band_1”);
nodeSlave.setNewName(“B3”);
nodeSlave.setProductId(“slaveProduct”);
nodes = jpy.array(‘org.esa.snap.core.gpf.common.MergeOp$NodeDescriptor’, 2)
nodes[0]=nodeMaster
nodes[1]=nodeSlave

parameters.put(‘includes’, nodes)

target = GPF.createProduct(‘Merge’, parameters, sourceProducts)
bands = target.getBandNames()
print list(bands)