code: def _get_site_coeffs(self, sites, imt):
          
  
          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)
docs: 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.