code: def get_nehrp_classes(self, sites):
          
  
          classes = sorted(self.NEHRP_VS30_UPPER_BOUNDS.keys())
          bounds = [self.NEHRP_VS30_UPPER_BOUNDS[item] for item in classes]
          bounds = np.reshape(np.array(bounds), (-1, 1))
          vs30s = np.reshape(sites.vs30, (1, -1))
          site_classes = np.choose((vs30s < bounds).sum(axis=0) - 1, classes)
  
          return site_classes.astype('object')
docs: Site classification threshholds from Section 4 "Site correction
          coefficients" p. 205. Note that site classes E and F are not
          supported.