def get_projection_on_elements(self):
        """
        Method returning a dictionary of projections on elements.

        Returns:
            a dictionary in the {Spin.up:[][{Element:values}],
            Spin.down:[][{Element:values}]} format
            if there is no projections in the band structure
            returns an empty dict
        """
        result = {}
        structure = self.structure
        for spin, v in self.projections.items():
            result[spin] = [[collections.defaultdict(float)
                             for i in range(len(self.kpoints))]
                            for j in range(self.nb_bands)]
            for i, j, k in itertools.product(range(self.nb_bands),
                                             range(len(self.kpoints)),
                                             range(structure.num_sites)):
                result[spin][i][j][str(structure[k].specie)] += np.sum(
                    v[i, j, :, k])
        return result
def get_projection_on_elements ( self ) : result = { } structure = self . structure for spin , v in self . projections . items ( ) : result [ spin ] = [ [ collections . defaultdict ( float ) for i in range ( len ( self . kpoints ) ) ] for j in range ( self . nb_bands ) ] for i , j , k in itertools . product ( range ( self . nb_bands ) , range ( len ( self . kpoints ) ) , range ( structure . num_sites ) ) : result [ spin ] [ i ] [ j ] [ str ( structure [ k ] . specie ) ] += np . sum ( v [ i , j , : , k ] ) return result
Method returning a dictionary of projections on elements.

        Returns:
            a dictionary in the {Spin.up:[][{Element:values}],
            Spin.down:[][{Element:values}]} format
            if there is no projections in the band structure
            returns an empty dict