code: def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
          
          # extracting dictionary of coefficients (for soil amplification)
          # specific to required intensity measure type
          C_SR = self.COEFFS_SOIL_RESPONSE[imt]
  
          # compute median PGA on rock (in g), needed to compute non-linear site
          # amplification
          C = self.COEFFS_AC10[PGA()]
          pga4nl = np.exp(
              self._compute_mean(C, rup.mag, dists.rjb, rup.rake)) * 1e-2 / g
  
          # compute full mean value by adding site amplification terms
          # (but avoiding recomputing mean on rock for PGA)
          if imt == PGA():
              mean = (np.log(pga4nl) +
                      self._get_site_amplification_linear(sites.vs30, C_SR) +
                      self._get_site_amplification_non_linear(sites.vs30, pga4nl,
                                                              C_SR))
          else:
              C = self.COEFFS_AC10[imt]
              mean = (self._compute_mean(C, rup.mag, dists.rjb, rup.rake) +
                      self._get_site_amplification_linear(sites.vs30, C_SR) +
                      self._get_site_amplification_non_linear(sites.vs30, pga4nl,
                                                              C_SR))
  
          # convert from cm/s**2 to g for SA (PGA is already computed in g)
          if imt.name == "SA":
              mean = np.log(np.exp(mean) * 1e-2 / g)
  
          stddevs = self._get_stddevs(C, stddev_types, num_sites=len(sites.vs30))
  
          return mean, stddevs
docs: See :meth:`superclass method
          <.base.GroundShakingIntensityModel.get_mean_and_stddevs>`
          for spec of input and result values.