def read(self, filename): reader = VTKDataReader() data = reader.read(filename) cells = data['cells'] vertices = data['vertices'] (ncells, ncorners) = cells.shape (nvertices, spaceDim) = vertices.shape vtkData = tvtk.UnstructuredGrid() vtkData.points = vertices assert(spaceDim == 3) assert(ncorners == 3) cellType = tvtk.Triangle().cell_type vtkData.set_cells(cellType, cells) # Displacement vector displacement = data['vertex_fields']['displacement'] array = tvtk.FloatArray() array.from_array(displacement.squeeze()) array.name = "Displacement (m)" vtkData.point_data.vectors = array vtkData.point_data.vectors.name = "Displacement (m)" # Compute velocity magnitude velocity = data['vertex_fields']['velocity'] velocityLog = ((velocity[:,0]**2 + velocity[:,1]**2 + velocity[:,2]**2)**0.5) array = tvtk.FloatArray() array.from_array(velocityLog.squeeze()) array.name = "Velocity (m/s)" vtkData.point_data.scalars = array vtkData.point_data.scalars.name = "Velocity (m/s)" return vtkData
def read(self, filename): reader = VTKDataReader() data = reader.read(filename) cells = data["cells"] vertices = data["vertices"] (ncells, ncorners) = cells.shape (nvertices, spaceDim) = vertices.shape vtkData = tvtk.UnstructuredGrid() vtkData.points = vertices assert spaceDim == 3 assert ncorners == 3 cellType = tvtk.Triangle().cell_type vtkData.set_cells(cellType, cells) # Displacement vector displacement = data["vertex_fields"]["displacement"] array = tvtk.FloatArray() array.from_array(displacement.squeeze()) array.name = "Displacement (m)" vtkData.point_data.vectors = array vtkData.point_data.vectors.name = "Displacement (m)" # Compute velocity magnitude velocity = data["vertex_fields"]["velocity"] velocityLog = (velocity[:, 0] ** 2 + velocity[:, 1] ** 2 + velocity[:, 2] ** 2) ** 0.5 array = tvtk.FloatArray() array.from_array(velocityLog.squeeze()) array.name = "Velocity (m/s)" vtkData.point_data.scalars = array vtkData.point_data.scalars.name = "Velocity (m/s)" return vtkData
# ---------------------------------------------------------------------- def feq(a, b): if numpy.abs(a - b) < 0.0001: return 1 else: return 0 # ---------------------------------------------------------------------- # Extract On Fault stations data ( Slip, Slip Rate, Tractions ) # ---------------------------------------------------------------------- nfileNames = numpy.arange(1, 1201, 5) filename = "%s-fault_t%04d.vtk" % (outputRoot, nfileNames[0]) fieldNames = ["slip", "slip_rate", "traction"] reader = VTKDataReader() data = reader.read(filename) values = numpy.array(data['vertices']) (nvertices, spaceDim) = values.shape x_OnFltStat = numpy.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) y_OnFltStat = numpy.array( [-12000.0, -7600.0, -4400.0, 0.0, 4400.0, 7600.0, 12000.0]) # CHECK THESE VALUES Index_OnFltStat = numpy.zeros(7) # Find the indices of On Fault Stations nFltStat = -1 for i in xrange(nvertices): if feq(values[i,1],y_OnFltStat[0]) or \ feq(values[i,1],y_OnFltStat[1]) or \
from numpy import * # ---------------------------------------------------------------------- def feq(a,b): if numpy.abs(a-b)<0.0001: return 1 else: return 0 # ---------------------------------------------------------------------- # Extract On Fault stations data ( Slip, Slip Rate, Tractions ) # ---------------------------------------------------------------------- nfileNames = numpy.arange(1,1201,5) filename = "%s-fault_t%04d.vtk" % (outputRoot,nfileNames[0]) fieldNames = ["slip","slip_rate","traction"] reader = VTKDataReader() data = reader.read(filename) values = numpy.array(data['vertices']) (nvertices, spaceDim) = values.shape x_OnFltStat = numpy.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) y_OnFltStat = numpy.array([-12000.0, -7600.0, -4400.0, 0.0, 4400.0, 7600.0, 12000.0]) # CHECK THESE VALUES Index_OnFltStat = numpy.zeros(7) # Find the indices of On Fault Stations nFltStat = -1 for i in xrange(nvertices): if feq(values[i,1],y_OnFltStat[0]) or \ feq(values[i,1],y_OnFltStat[1]) or \ feq(values[i,1],y_OnFltStat[2]) or \ feq(values[i,1],y_OnFltStat[3]) or \