docs: def downsample_mesh(mesh, tol=1.0):
      """
      Returns a mesh sampled at a lower resolution - if the difference
      in azimuth is larger than the specified tolerance a turn is assumed
  
      :returns:
          Downsampled mesh as instance of :class:
          openquake.hazardlib.geo.mesh.RectangularMesh
      """
      idx = _find_turning_points(mesh, tol)
      if mesh.depths is not None:
          return RectangularMesh(lons=mesh.lons[:, idx],
                                 lats=mesh.lats[:, idx],
                                 depths=mesh.depths[:, idx])
      else:
          return RectangularMesh(lons=mesh.lons[:, idx],
                                 lats=mesh.lats[:, idx])