docs: def get_ucerf_rupture(self, iloc, src_filter):
          """
          :param iloc:
              Location of the rupture plane in the hdf5 file
          :param src_filter:
              Sites for consideration and maximum distance
          """
          trt = self.tectonic_region_type
          ridx = self.get_ridx(iloc)
          mag = self.orig.mags[iloc]
          surface_set = []
          indices = src_filter.get_indices(self, ridx, mag)
          if len(indices) == 0:
              return None
          for trace, plane in self.gen_trace_planes(ridx):
              # build simple fault surface
              for jloc in range(0, plane.shape[2]):
                  top_left = Point(
                      plane[0, 0, jloc], plane[0, 1, jloc], plane[0, 2, jloc])
                  top_right = Point(
                      plane[1, 0, jloc], plane[1, 1, jloc], plane[1, 2, jloc])
                  bottom_right = Point(
                      plane[2, 0, jloc], plane[2, 1, jloc], plane[2, 2, jloc])
                  bottom_left = Point(
                      plane[3, 0, jloc], plane[3, 1, jloc], plane[3, 2, jloc])
                  try:
                      surface_set.append(
                          ImperfectPlanarSurface.from_corner_points(
                              top_left, top_right, bottom_right, bottom_left))
                  except ValueError as err:
                      raise ValueError(err, trace, top_left, top_right,
                                       bottom_right, bottom_left)
  
          rupture = ParametricProbabilisticRupture(
              mag, self.orig.rake[iloc], trt,
              surface_set[len(surface_set) // 2].get_middle_point(),
              MultiSurface(surface_set), self.orig.rate[iloc], self.tom)
  
          return rupture