Snappy or GPT? advanced BandMaths

I’m trying to determine if I can do the following workflow in GPT or if I need to move to snappy. I’ve implemented this as a proof-of-concept algorithm in GRASS GIS but would like to do it in the SNAP ecosphere if possible.

I’m trying to mosaic several overlapping Sentinel3 scenes, where the selection criteria is a function of SZA, cloud mask, and possibly other data.

In some locations there >3 overlapping scenes. Focusing just on SZA, I need to pick the product with the minimum SZA, and then various other scenes based on that product.

As a visual example, here are the SZA values from several scenes:

And here, for each pixel, is the scene with the minimum SZA. The colors here are a lookup table (LUT), range 0-5, into the array of products, which I can then use to pick out the RGB from each of those products.

Finally, using the above, I mosaic, using the product with the minimum SZA:

Can this be done in a GPT workflow? Or do you suggest moving to snappy (and numpy?) for the more advanced logic? If this can be done in GPT, can anyone provide some hints as to the BandMaths functions that might help?

Thanks,

-k.

This kind of logic is not possible with band math or gpt. I think snappy is the way to go.