def build_polygon_from_fault_attrs(w, fault_attrs): fault_trace = geo.line.Line( [geo.point.Point(row[0], row[1]) for row in fault_attrs["trace"]]) lon, lat = SimpleFaultSurface.get_surface_vertexes( fault_trace, fault_attrs["upperSeismoDepth"], fault_attrs["lowerSeismoDepth"], fault_attrs["dip"]) # Reorder the vertexes lons = numpy.concatenate([lon[::2], numpy.flipud(lon[1::2])]) lats = numpy.concatenate([lat[::2], numpy.flipud(lat[1::2])]) depths = numpy.concatenate([ numpy.ones_like(lon[::2]) * fault_attrs["upperSeismoDepth"], numpy.ones_like(lon[::2]) * fault_attrs["lowerSeismoDepth"] ]) # Create the 3D polygon w.poly(parts=[[[tlon, tlat, tdep] for tlon, tlat, tdep in zip( list(lons), list(lats), list(depths))]])
def build_polygon_from_fault_attrs(w, fault_attrs): fault_trace = geo.line.Line([geo.point.Point(row[0], row[1]) for row in fault_attrs["trace"]]) lon, lat = SimpleFaultSurface.get_surface_vertexes( fault_trace, fault_attrs["upperSeismoDepth"], fault_attrs["lowerSeismoDepth"], fault_attrs["dip"]) # Reorder the vertexes lons = numpy.concatenate([lon[::2], numpy.flipud(lon[1::2])]) lats = numpy.concatenate([lat[::2], numpy.flipud(lat[1::2])]) depths = numpy.concatenate([ numpy.ones_like(lon[::2]) * fault_attrs["upperSeismoDepth"], numpy.ones_like(lon[::2]) * fault_attrs["lowerSeismoDepth"]]) # Create the 3D polygon w.poly(parts=[[[tlon, tlat, tdep] for tlon, tlat, tdep in zip(list(lons), list(lats), list(depths))]])