Пример #1
0
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()
Пример #2
0
    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()
Пример #3
0
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()
Пример #4
0
        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()