def _get_site_coeffs(self, sites, imt):
        """
        Extracts correct coefficients for each site from Table 5 on p. 208
        for each site.

        :raises UserWarning:
            If vs30 is below limit for site class D, since "E- and F-type
            sites [...] are susceptible for liquefaction and failure." p. 205.
        """

        site_classes = self.get_nehrp_classes(sites)
        is_bedrock = self.is_bedrock(sites)

        if 'E' in site_classes:
            msg = ('Site class E and F not supported by %s'
                   % type(self).__name__)
            warnings.warn(msg, UserWarning)

        a_1 = np.nan*np.ones_like(sites.vs30)
        a_2 = np.nan*np.ones_like(sites.vs30)
        sigma = np.nan*np.ones_like(sites.vs30)
        for key in self.COEFFS_NEHRP.keys():
            indices = (site_classes == key) & ~is_bedrock
            a_1[indices] = self.COEFFS_NEHRP[key][imt]['a1']
            a_2[indices] = self.COEFFS_NEHRP[key][imt]['a2']
            sigma[indices] = self.COEFFS_NEHRP[key][imt]['sigma']

        a_1[is_bedrock] = 0.
        a_2[is_bedrock] = 0.
        sigma[is_bedrock] = 0.

        return (a_1, a_2, sigma)
Extracts correct coefficients for each site from Table 5 on p. 208
        for each site.

        :raises UserWarning:
            If vs30 is below limit for site class D, since "E- and F-type
            sites [...] are susceptible for liquefaction and failure." p. 205.