Generate view angles from metadata Sentinel-2

after https://forum.step.esa.int/t/c2rcc-problem-for-s2-msi/8279/10?u=harmel
a small piece of code for generating S2’msi angles with snappy:

def s2_resampler(product, resolution=20, upmethod=‘Bilinear’, downmethod=‘Mean’,
flag=‘FlagMedianAnd’, opt=False):

    '''Resampling operator dedicated to Sentinel2-msi characteristics (e.g., viewing angles)
    :param product: S2-msi product as provided by esasnappy ProductIO.readProduct()
    :param resolution: target resolution in meters (10, 20, 60)
    :param upmethod: interpolation method ('Nearest', 'Bilinear', 'Bicubic')
    :param downmethod: aggregation method ('First', 'Min', 'Max', 'Mean', 'Median')
    :param flag: method for flags aggregation ('First', 'FlagAnd', 'FlagOr', 'FlagMedianAnd', 'FlagMedianOr')
    :param opt: resample on pyramid levels (True/False)
    :return: interpolated target product'''

    res=str(resolution)

    resampler = jpy.get_type('org.esa.s2tbx.s2msi.resampler.S2ResamplingOp')

    op = resampler()
    op.setParameter('targetResolution', res)
    op.setParameter('upsampling', upmethod)
    op.setParameter('downsampling', downmethod)
    op.setParameter('flagDownsampling', flag)
    op.setParameter('resampleOnPyramidLevels', opt)
    op.setSourceProduct(product)

    return op.getTargetProduct()
3 Likes