Traverses the generations to evaluate the impact/power
        of the arc elements associated with each node.

def _local_impact_rating(self):
        '''
        Traverses the generations to evaluate the impact/power
        of the arc elements associated with each node.
        '''
        impact_values = {
            'base': 0.5,
            'mile': 2,
            'beat': 0.5,
            'tf': 0.5,
            'mile_child': 0.5,
            'same_mile': 2.5,
        }
        base_impact = impact_values['base']
        mile_impact = 0
        add_impact = 0
        direct_arc_nodes = self.arcelementnode_set.all()
        logger.debug('Found %d associated arc nodes...' % direct_arc_nodes.count())
        arc_element_types = {}
        logger.debug('Preloading arc element types...')
        for type_name, values in ARC_NODE_ELEMENT_DEFINITIONS.items():
            arc_element_types[type_name] = 0
        for node in direct_arc_nodes:
            arc_element_types[node.arc_element_type] += 1
            logger.debug('Found an node of type %s' % node.arc_element_type)
            if ARC_NODE_ELEMENT_DEFINITIONS[node.arc_element_type]['milestone']:
                logger.debug('node is a milestone of type %s. Adding bonus' % node.arc_element_type)
                mile_impact += impact_values['mile']
            else:
                logger.debug('Checking node parent.')
                parent_type = node.get_parent().arc_element_type
                logger.debug('Direct parent is of type %s' % parent_type)
                if ARC_NODE_ELEMENT_DEFINITIONS[node.get_parent().arc_element_type]['milestone']:
                    logger.debug('Impact calc: adding a bonus for being direct child of milestone.')
                    add_impact += impact_values['mile_child']
                if node.arc_element_type == 'beat':
                    logger.debug('Adding impact for beat.')
                    add_impact += impact_values['beat']
                if node.arc_element_type == 'tf':
                    add_impact += impact_values['tf']
        for key, value in arc_element_types.items():
            if ARC_NODE_ELEMENT_DEFINITIONS[key]['milestone'] and value > 1:
                logger.debug('Adding bonus for same milestone.')
                add_impact += (value - 1) * .5
        return base_impact, add_impact, mile_impact