示例#1
0
    def plot(self, filename=None):
        data = self._data

        from fipy.tools import numerix

        for var in self.vars:
            name, rank, value = self._nameRankValue(var)

            if not (numerix.array(value.shape) == 0).any():
                data.get_array(name).to_array()[:] = value

        try:
            from tvtk.misc import write_data
        except ImportError as e:
            from enthought.tvtk.misc import write_data
        write_data(self.dataset, filename)
示例#2
0
    def plot(self, filename=None):
        data = self._data

        from fipy.tools import numerix

        for var in self.vars:
            name, rank, value = self._nameRankValue(var)

            if not (numerix.array(value.shape) == 0).any():
                data.get_array(name).to_array()[:] = value

        try:
            from tvtk.misc import write_data
        except ImportError as e:
            from enthought.tvtk.misc import write_data
        write_data(self.dataset, filename)
示例#3
0
def visualize(tetrahedrons,
              save=False,
              file_name='tetrahedron_mesh.vtu',
              just_surface=True,
              octmps_output_file='ClassI_ScattFilt.out'):
    if just_surface:
        data = get_surface_structure(tetrahedrons)
    else:
        data = get_complete_structure(tetrahedrons)

    # Saving as VTU file
    if save:
        write_data(data, file_name=file_name)

    mlab.figure(figure='OCTMPS', fgcolor=(1, 1, 1), bgcolor=(0.5, 0.5, 0.5))

    src = VTKDataSource(data=data)
    surf = mlab.pipeline.surface(src, opacity=0.01)
    mlab.axes()
    mlab.pipeline.surface(mlab.pipeline.extract_edges(surf),
                          color=(1, 1, 1),
                          line_width=0.0)

    if octmps_output_file:
        # Make the data and add it to the pipeline.
        data, x_positions, z_positions = make_data(
            octmps_output_file=octmps_output_file)
        data = np.array([data]).swapaxes(1, 0)
        src = ArraySource(transpose_input_array=True)
        src.scalar_data = data
        src.spacing = (x_positions[1] - x_positions[0], 0.,
                       z_positions[1] - z_positions[0])
        src.origin = (x_positions[0], 0.0, z_positions[0])
        mlab.pipeline.surface(src, colormap='jet')
        mlab.colorbar(orientation='vertical', title='Reflectance')
        mlab.show()
示例#4
0
class VTKViewer(AbstractViewer):
    """Renders `_MeshVariable` data in VTK format
    """
    def __init__(self, vars, title=None, limits={}, **kwlimits):
        """Creates a VTKViewer

        :Parameters:
          vars
            a `_MeshVariable` or a tuple of them
          title
            displayed at the top of the `Viewer` window
          limits : dict
            a (deprecated) alternative to limit keyword arguments
          xmin, xmax, ymin, ymax, zmin, zmax, datamin, datamax
            displayed range of data. Any limit set to
            a (default) value of `None` will autoscale.
        """
        kwlimits.update(limits)
        AbstractViewer.__init__(self, vars=vars, title=title, **kwlimits)

        mesh = self.vars[0].mesh

        self.dataset = self._makeDataSet(mesh)

        data = self._data

        for var in self.vars:
            name, rank, value = self._nameRankValue(var)

            i = data.add_array(value)
            data.get_array(i).name = name

            if rank == 0:
                data.set_active_scalars(name)
            elif rank == 1:
                data.set_active_vectors(name)
            else:
                data.set_active_tensors(name)

    def _makeDataSet(self, mesh):
        pass

    @staticmethod
    def _nameRankValue(var):
        name = var.name or "%s #%d" % (var.__class__.__name__, id(var))
        rank = var.rank
        value = var.mesh._toVTK3D(var.value, rank=rank)

        return (name, rank, value)

    def plot(self, filename=None):
        data = self._data

        from fipy.tools import numerix

        for var in self.vars:
            name, rank, value = self._nameRankValue(var)

            if not (numerix.array(value.shape) == 0).any():
                data.get_array(name).to_array()[:] = value

        try:
            from tvtk.misc import write_data
        except ImportError, e:
            from enthought.tvtk.misc import write_data
        write_data(self.dataset, filename)