def UnstructuredScalar(InputCoords, OutFileName): #mlab.options.backend = 'envisage' #------------ Writing .vti files ---------------------- # Make the data. dims = np.array((ngr, ngr, ngr)) vol = np.array((nx1, nx2, ny1, ny2, nz1, nz2)) origin = vol[::2] spacing = (vol[1::2] - origin) / (dims - 1) xmin, xmax, ymin, ymax, zmin, zmax = vol x, y, z = np.ogrid[xmin:xmax:dims[0] * 1j, ymin:ymax:dims[1] * 1j, zmin:zmax:dims[2] * 1j] x, y, z = [t.astype('f') for t in (x, y, z)] scalars = r # Make the tvtk dataset. spoints = tvtk.StructuredPoints(origin=origin, spacing=spacing, dimensions=dims) s = scalars.transpose().copy() spoints.point_data.scalars = np.ravel(s) spoints.point_data.scalars.name = 'scalars' fileOut = OutFileName + '.vti' w = tvtk.XMLImageDataWriter(input=spoints, file_name=fileOut) w.write()
def save(self, i): self.mask_nonfluid_nodes() os.environ['ETS_TOOLKIT'] = 'null' from tvtk.api import tvtk from tvtk.common import configure_input idata = tvtk.ImageData(spacing=(1, 1, 1), origin=(0, 0, 0)) first = True sample_field = None for name, field in self._scalar_fields.items(): if first: idata.point_data.scalars = field.flatten() idata.point_data.scalars.name = name first = False sample_field = field else: t = idata.point_data.add_array(field.flatten()) idata.point_data.get_array(t).name = name idata.update_traits() dim = len(sample_field.shape) for name, field in self._vector_fields.items(): if dim == 3: tmp = idata.point_data.add_array(np.c_[field[0].flatten(), field[1].flatten(), field[2].flatten()]) else: tmp = idata.point_data.add_array( np.c_[field[0].flatten(), field[1].flatten(), np.zeros_like(field[0].flatten())]) idata.point_data.get_array(tmp).name = name if dim == 3: idata.dimensions = list(reversed(sample_field.shape)) else: idata.dimensions = list(reversed(sample_field.shape)) + [1] fname = filename(self.basename, self.digits, self.subdomain_id, i, suffix='.vti') w = tvtk.XMLImageDataWriter(file_name=fname) configure_input(w, idata) w.write()
def StructuredScalar(InputArray, OutFileName, lim1, lim2): nGr = np.shape(InputArray)[0] # Make the data. nx1IC = ny1 = nz1 = int(lim1) nx2IC = ny2 = nz2 = int(lim2) im = jm = km = nGr * 1j nf0 = nf1 = nf2 = nGr Xg, Yg, Zg = np.mgrid[nx1IC:nx2IC:im, ny1:ny2:jm, nz1:nz2:km] # Make the data. dims = np.array((nf0, nf1, nf2)) vol = np.array((lim1, lim2, lim1, lim2, lim1, lim2)) origin = vol[::2] spacing = (vol[1::2] - origin) / (dims - 1) xmin, xmax, ymin, ymax, zmin, zmax = vol x, y, z = np.ogrid[xmin:xmax:dims[0] * 1j, ymin:ymax:dims[1] * 1j, zmin:zmax:dims[2] * 1j] x, y, z = [t.astype('f') for t in (x, y, z)] scalars = InputArray # Make the tvtk dataset. spoints = tvtk.StructuredPoints(origin=origin, spacing=spacing, dimensions=dims) s = scalars.transpose().copy() spoints.point_data.scalars = np.ravel(s) spoints.point_data.scalars.name = 'scalars' spoints.scalar_type = get_vtk_array_type(s.dtype) fileOut = OutFileName + '.vti' print fileOut w = tvtk.XMLImageDataWriter(input=spoints, file_name=fileOut) w.write()
idata.point_data.scalars = src_data[field].flatten() idata.point_data.scalars.name = field first = False else: t = idata.point_data.add_array(src_data[field].flatten()) idata.point_data.get_array(t).name = field # Only process vector fields. for field in src_data.files: if len(src_data[field].shape) != max_len: continue f = src_data[field] if dim == 3: tmp = idata.point_data.add_array(np.c_[f[0].flatten(), f[1].flatten(), f[2].flatten()]) else: tmp = idata.point_data.add_array(np.c_[f[0].flatten(), f[1].flatten(), np.zeros_like(f[0].flatten())]) idata.point_data.get_array(tmp).name = field if dim == 3: idata.dimensions = list(reversed(shape)) else: idata.dimensions = list(reversed(shape)) + [1] out_filename = filename.replace('.npz', '.vti') w = tvtk.XMLImageDataWriter(input=idata, file_name=out_filename) w.write()