Compute composite array merging temporal frames according to the compositing method

            :param eopatch: eopatch holding time-series
            :return: eopatch with composite image of time-series

def execute(self, eopatch):
        """ Compute composite array merging temporal frames according to the compositing method

            :param eopatch: eopatch holding time-series
            :return: eopatch with composite image of time-series
        """
        feature_type, feature_name = next(self.feature(eopatch))
        data = eopatch[feature_type][feature_name].copy()

        # compute band according to compositing method (e.g. blue, maxNDVI, maxNDWI)
        reference_bands = self._get_reference_band(data)

        # find temporal indices corresponding to pre-defined percentile
        indices = self._get_indices(reference_bands)

        # compute composite image selecting values along temporal dimension corresponding to percentile indices
        composite_image = np.empty((data.shape[1:]), np.float32)
        composite_image[:] = self.no_data_value
        for scene_id, scene in enumerate(data):
            composite_image = np.where(np.dstack([indices]) == scene_id, scene, composite_image)

        eopatch[self.composite_type][self.composite_name] = composite_image

        return eopatch