code: def expand(self, normalization='4pi', csphase=1, **kwargs):
          
          if type(normalization) != str:
              raise ValueError('normalization must be a string. ' +
                               'Input type was {:s}'
                               .format(str(type(normalization))))
  
          if normalization.lower() not in ('4pi', 'ortho', 'schmidt', 'unnorm'):
              raise ValueError(
                  "The normalization must be '4pi', 'ortho', 'schmidt', " +
                  "or 'unnorm'. Input value was {:s}."
                  .format(repr(normalization))
                  )
  
          if csphase != 1 and csphase != -1:
              raise ValueError(
                  "csphase must be either 1 or -1. Input value was {:s}."
                  .format(repr(csphase))
                  )
  
          return self._expand(normalization=normalization, csphase=csphase,
                              **kwargs)
docs: Expand the grid into spherical harmonics.
  
          Usage
          -----
          clm = x.expand([normalization, csphase, lmax_calc])
  
          Returns
          -------
          clm : SHCoeffs class instance
  
          Parameters
          ----------
          normalization : str, optional, default = '4pi'
              Normalization of the output class: '4pi', 'ortho', 'schmidt', or
              'unnorm', for geodesy 4pi normalized, orthonormalized, Schmidt
              semi-normalized, or unnormalized coefficients, respectively.
          csphase : int, optional, default = 1
              Condon-Shortley phase convention: 1 to exclude the phase factor,
              or -1 to include it.
          lmax_calc : int, optional, default = x.lmax
              Maximum spherical harmonic degree to return.