def write_vtp_header(path, prefix, vertices, connectivity, offsets, nPoints, nPolygons, variable_list, outType, xtime=None): vtkFile = VtkFile("{}/{}".format(path, prefix), VtkPolyData) #if xtime is not None: # vtkFile.openElement(str("metadata")) # vtkFile.openElement(str("xtime")) # vtkFile.xml.addText(str(xtime)) # vtkFile.closeElement(str("xtime")) # vtkFile.closeElement(str("metadata")) vtkFile.openElement(vtkFile.ftype.name) vtkFile.openPiece(npoints=nPoints, npolys=nPolygons) vtkFile.openElement(str("Points")) vtkFile.addData(str("points"), vertices) vtkFile.closeElement(str("Points")) vtkFile.openElement(str("Polys")) vtkFile.addData(str("connectivity"), connectivity) vtkFile.addData(str("offsets"), offsets) vtkFile.closeElement(str("Polys")) vtkFile.openData(str("Point"), scalars='solution') for var in variable_list: if var in vec_vars: vtkFile.addHeader('x'+var, outType, nPoints, 1) vtkFile.addHeader('y'+var, outType, nPoints, 1) vtkFile.addHeader('z'+var, outType, nPoints, 1) else: vtkFile.addHeader(var, outType, nPoints, 1) vtkFile.closeData(str("Point")) vtkFile.closePiece() vtkFile.closeElement(vtkFile.ftype.name) vtkFile.appendData(vertices) vtkFile.appendData(connectivity) vtkFile.appendData(offsets) return vtkFile
normals = np.asarray(data[i].normals) connectivity = np.asarray(data[i].connectivity) offsets = np.asarray(data[i].offsets) vtkBlocks.openPiece(start=None, end=None, npoints=npoints, ncells=None, nverts=None, nlines=None, nstrips=None, npolys=npolys) # Point data vtkBlocks.openElement("Points") vtkBlocks.addHeader("points", vertices.dtype.name, len(pointIDs), 3) vtkBlocks.closeElement("Points") vtkBlocks.openData("Point", scalars="pointIDs") # vtkBlocks.addData("pointIDs", pointIDs) vtkBlocks.addHeader("pointIDs", pointIDs.dtype.name, len(pointIDs), 1) vtkBlocks.closeData("Point") # Cell data vtkBlocks.openData("Cell", normals="normals") vtkBlocks.addHeader("normals", normals.dtype.name, npolys, 3) vtkBlocks.closeData("Cell") # Poly data vtkBlocks.openElement("Polys") vtkBlocks.addHeader("connectivity", connectivity.dtype.name, len(connectivity), 1)
# Extract data for vtk file creation npoints = len(data[i].vertexIDs) pointIDs = np.asarray(data[i].vertexIDs) vertices = np.asarray(data[i].vertices) npolys = np.asarray(data[i].faceCount) normals = np.asarray(data[i].normals) connectivity = np.asarray(data[i].connectivity) offsets = np.asarray(data[i].offsets) vtkBlocks.openPiece(start = None, end = None, npoints = npoints, ncells = None, nverts = None, nlines = None, nstrips = None, npolys = npolys) # Point data vtkBlocks.openElement("Points") vtkBlocks.addHeader("points", vertices.dtype.name, len(pointIDs), 3) vtkBlocks.closeElement("Points") vtkBlocks.openData("Point", scalars = "pointIDs") # vtkBlocks.addData("pointIDs", pointIDs) vtkBlocks.addHeader("pointIDs", pointIDs.dtype.name, len(pointIDs), 1) vtkBlocks.closeData("Point") # Cell data vtkBlocks.openData("Cell", normals = "normals") vtkBlocks.addHeader("normals", normals.dtype.name, npolys, 3) vtkBlocks.closeData("Cell") # Poly data vtkBlocks.openElement("Polys") vtkBlocks.addHeader("connectivity", connectivity.dtype.name, len(connectivity), 1) vtkBlocks.addHeader("offsets", offsets.dtype.name, len(offsets), 1)
def write_vtp_header(path, prefix, active_var_index, var_indices, variable_list, all_dim_vals, vertices, connectivity, offsets, nPoints, nPolygons, outType, cellData=True, pointData=False, xtime=None): # {{{ vtkFile = VtkFile("{}/{}".format(path, prefix), VtkPolyData) if xtime is not None: vtkFile.openElement(str("metadata")) vtkFile.openElement(str("xtime")) vtkFile.xml.addText(str(xtime)) vtkFile.closeElement(str("xtime")) vtkFile.closeElement(str("metadata")) vtkFile.openElement(vtkFile.ftype.name) vtkFile.openPiece(npoints=nPoints, npolys=nPolygons) vtkFile.openElement(str("Points")) vtkFile.addData(str("points"), vertices) vtkFile.closeElement(str("Points")) vtkFile.openElement(str("Polys")) vtkFile.addData(str("connectivity"), connectivity) vtkFile.addData(str("offsets"), offsets) vtkFile.closeElement(str("Polys")) if (cellData): vtkFile.openData( str("Cell"), scalars=[str(var) for var in variable_list[active_var_index]]) for iVar in var_indices: var_name = variable_list[iVar] (out_var_names, dim_list) = \ get_hyperslab_name_and_dims(var_name, all_dim_vals[var_name]) for out_var_name in out_var_names: vtkFile.addHeader(str(out_var_name), outType, nPolygons, 1) vtkFile.closeData(str("Cell")) if (pointData): vtkFile.openData( str("Point"), scalars=[str(var) for var in variable_list[active_var_index]]) for iVar in var_indices: var_name = variable_list[iVar] (out_var_names, dim_list) = \ get_hyperslab_name_and_dims(var_name, all_dim_vals[var_name]) for out_var_name in out_var_names: vtkFile.addHeader(str(out_var_name), outType, nPoints, 1) vtkFile.closeData(str("Point")) vtkFile.closePiece() vtkFile.closeElement(vtkFile.ftype.name) vtkFile.appendData(vertices) vtkFile.appendData(connectivity) vtkFile.appendData(offsets) return vtkFile # }}}