def evaluate_familytree(self, family_tree, image_set):
        """
        Evaluate strategy for the given family tree and return a dict of images to analyze that match the strategy

        :param family_tree: the family tree to traverse and evaluate
        :param image_set: list of all images in the context
        :return:
        """

        if family_tree is None or image_set is None:
            raise ValueError('Cannot execute analysis strategy on None image or image with no familytree data')

        toanalyze = OrderedDict()
        tree_len = len(family_tree)
        for i in family_tree:
            image = image_set[i]
            if self._should_analyze_image(image, family_tree.index(i), tree_len):
                toanalyze[image.meta['imageId']] = image

        return toanalyze
Evaluate strategy for the given family tree and return a dict of images to analyze that match the strategy

        :param family_tree: the family tree to traverse and evaluate
        :param image_set: list of all images in the context
        :return: