def filter(self, sources):
        """
        :param sources: a sequence of sources
        :yields: rtree-filtered sources
        """
        if self.sitecol is None:  # do not filter
            yield from sources
            return
        for src in sources:
            box = self.integration_distance.get_affected_box(src)
            indices = within(box, self.index)
            if len(indices):
                src.indices = indices
                yield src