Returns the number of occupied nearest neighbour sites, classified by site type.

        Args:
            None

        Returns:
            (Dict(Str:Int)): Dictionary of nearest-neighbour occupied site numbers, classified by site label, e.g. { 'A' : 2, 'B' : 1 }.

def site_specific_nn_occupation( self ):
        """
        Returns the number of occupied nearest neighbour sites, classified by site type.

        Args:
            None

        Returns:
            (Dict(Str:Int)): Dictionary of nearest-neighbour occupied site numbers, classified by site label, e.g. { 'A' : 2, 'B' : 1 }.
        """
        to_return = { l : 0 for l in set( ( site.label for site in self.p_neighbours ) ) }
        for site in self.p_neighbours:
            if site.is_occupied:
             to_return[ site.label ] += 1
        return to_return