code: def _check_in_cshm_polygon(self, rup):
          
          lats = np.ravel(rup.surface.mesh.array[1])
          lons = np.ravel(rup.surface.mesh.array[0])
          # These coordinates are provided by M Gerstenberger (personal
          # communication, 10 August 2018)
          polygon = shapely.geometry.Polygon([(171.6, -43.3), (173.2, -43.3),
                                              (173.2, -43.9), (171.6, -43.9)])
          points_in_polygon = [
              shapely.geometry.Point(lons[i], lats[i]).within(polygon)
              for i in np.arange(len(lons))]
          in_cshm = any(points_in_polygon)
  
          return in_cshm
docs: Checks if any part of the rupture surface mesh is located within the
          intended boundaries of the Canterbury Seismic Hazard Model in
          Gerstenberger et al. (2014), Seismic hazard modelling for the recovery
          of Christchurch, Earthquake Spectra, 30(1), 17-29.