code: def _get_site_type_dummy_variables(self, sites):
          
          ssa = np.zeros(len(sites.vs30))
          ssb = np.zeros(len(sites.vs30))
          ssc = np.zeros(len(sites.vs30))
          ssd = np.zeros(len(sites.vs30))
          sse = np.zeros(len(sites.vs30))
  
          # Class E Vs30 = 0 m/s. We fixed this value to define class E
          idx = (np.fabs(sites.vs30) < 1E-10)
          sse[idx] = 1.0
          # Class D;  Vs30 < 180 m/s.
          idx = (sites.vs30 >= 1E-10) & (sites.vs30 < 180.0)
          ssd[idx] = 1.0
          # SClass C; 180 m/s <= Vs30 <= 360 m/s.
          idx = (sites.vs30 >= 180.0) & (sites.vs30 < 360.0)
          ssc[idx] = 1.0
          # Class B; 360 m/s <= Vs30 <= 800 m/s.
          idx = (sites.vs30 >= 360.0) & (sites.vs30 < 800)
          ssb[idx] = 1.0
          # Class A; Vs30 > 800 m/s.
          idx = (sites.vs30 >= 800.0)
          ssa[idx] = 1.0
          return ssa, ssb, ssc, ssd, sse
docs: Get site type dummy variables, five different EC8 site classes
          he recording sites are classified into 5 classes,
          based on the shear wave velocity intervals in the uppermost 30 m, Vs30,
          according to the EC8 (CEN 2003):
          class A: Vs30 > 800 m/s
          class B: Vs30 = 360 − 800 m/s
          class C: Vs30 = 180 - 360 m/s
          class D: Vs30 < 180 m/s
          class E: 5 to 20 m of C- or D-type alluvium underlain by
          stiffer material with Vs30 > 800 m/s.