def METHOD_NAME(self, n, raw_data, px_idx, rep, pol_idx):
    if n != self._ccd_idx:
        return super(SEMCLCCDStream, self).METHOD_NAME(n, raw_data, px_idx, rep, pol_idx)
    if pol_idx > len(self._live_data[n]) - 1:
        # New polarization => new DataArray
        md = raw_data.metadata.copy()
        # Compute metadata based on SEM metadata
        semmd = self._live_data[0][pol_idx].metadata
        # handle sub-pixels (aka fuzzing)
        md[MD_PIXEL_SIZE] = (semmd[MD_PIXEL_SIZE][0] * self._emitter.resolution.value[0],
                             semmd[MD_PIXEL_SIZE][1] * self._emitter.resolution.value[1])
        md[MD_POS] = self._live_data[0][pol_idx].metadata[MD_POS]
        md[MD_DIMS] = "YX"
        md[MD_DESCRIPTION] = self._streams[n].name.value
        # Make sure it doesn't contain metadata related to AR
        for k in (model.MD_AR_POLE, model.MD_AR_MIRROR_BOTTOM, model.MD_AR_MIRROR_TOP,
                  model.MD_AR_FOCUS_DISTANCE, model.MD_AR_HOLE_DIAMETER, model.MD_AR_PARABOLA_F,
                  model.MD_AR_XMAX, model.MD_ROTATION, model.MD_WL_LIST):
            md.pop(k, None)
        da = numpy.zeros(shape=(rep[1], rep[0]), dtype=raw_data.dtype)
        self._live_data[n].append(model.DataArray(da, md))
    self._live_data[n][pol_idx][px_idx] = raw_data