S2A newly created band normalisation

I created about 160 new bands using bandmath from a Sentinel 2A image.
I would like to normalize all these new band values between 0 and 1.
Currently I use the statistics button to look at the maximum pixel value for the band, then I use bandmath to divide the band by the maximum pixel value (e.g. Calc_band / Max calc_band pixel value) to normalize the bands.
This is very time consuming for 160 bands.
Is there a more efficient way of doing this in SNAP?

Unfortunately this is not possible. The Band Maths is only working on pixel level at the moment you need to use Python to achieve this in an automatic way. There are some guides on how to do this:

I’ve added you request to our list of issues: [SNAP-1467] Statistical values accessible in BandMaths

Thank you for the feedback.

As an additional comment, depending on your calculated bands, if you do the same on a different product, then the maximum values could be different. If so, the normalised values would not be comparable between products.

Good point. What if the two S2A products were first normalized to each other, using the RadiometricNormalizationPIFsProcessor, by accounting for areas that are not expected to change reflection between time periods, such as deep water and man made infrastructure, and then the band calculations are done?

Sorry, I can’t answer this. I don’t know this processor.
But in general even if the area is not subject to change the reflectance can change, because of different sun angle and view angle.

This processor is part of SNAP under Optical>Thematic water processing>Sen2Coral>Processing Modules>RadiometricNormalizationPIFs Processor

Is done by other people and I have not installed this plugin.
If you have questions regarding Sen2Coral you better use the contact information at the Sen2Coral page