def _overlapping_channels(self, wavelengths):
        """
        Return the channels that match the given wavelength array.
        """

        sizes = self.meta["channel_sizes"]
        min_a, max_a = wavelengths.min(), wavelengths.max()

        matched_channel_names = []
        for i, (name, size) in enumerate(zip(self.channel_names, sizes)):
            si = sum(sizes[:i])
            min_b, max_b = self.wavelengths[[si, si + size - 1]]
            if max_a > min_b and min_a < max_b:
                matched_channel_names.append(name)

        return matched_channel_names