def calibrate(self, data, calibration, channel):
        """Perform calibration"""
        coefs = CALIB_COEFS[self.platform_name][channel]
        is_vis = self._is_vis(channel)

        # IR files provide radiances, VIS file provides reflectances
        if is_vis and calibration == 'reflectance':
            return data
        elif not is_vis and calibration == 'radiance':
            return data
        elif not is_vis and calibration == 'brightness_temperature':
            return self._calibrate(radiance=data, calibration=calibration,
                                   coefs=coefs, channel=channel)
        else:
            raise ValueError('Unsupported calibration for channel {}: {}'
                             .format(channel, calibration))
Perform calibration