Esempio n. 1
0
    def getFields(self):
        if not self.dataTable:
            # read a data file
            if '.csv' in self.inputFile:
                r = vtk.vtkDelimitedTextReader()
                r.DetectNumericColumnsOn()
                r.SetFileName(self.inputFile)
                r.SetHaveHeaders(True)
                r.Update()
                self.dataTable = r.GetOutput()
            else:
                reader = simple.OpenDataFile(self.inputFile)
                reader.UpdatePipeline()
                ds = reader.GetClientSideObject().GetOutputDataObject(0)
                if ds.IsA('vtkTable'):
                    self.dataTable = ds
                else:
                    self.dataTable = vtk.vtkTable()
                    fillTableWithDataSet(self.dataTable, ds)

        self.fields = {}
        self.columnNames = []
        self.numRows = self.dataTable.GetNumberOfRows()
        for i in range(self.dataTable.GetNumberOfColumns()):
            # Add a range for any numeric fields
            self.columnNames.append(self.dataTable.GetColumnName(i))
            arr = self.dataTable.GetColumn(i)
            if arr.GetDataTypeAsString() in NUMERIC_TYPES:
                self.fields[self.columnNames[i]] = {
                    'range': list(arr.GetRange())
                }

        return self.fields
Esempio n. 2
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkDelimitedTextReader(), 'Reading vtkDelimitedText.',
         (), ('vtkDelimitedText',),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
Esempio n. 3
0
def initialize(self, VTKWebApp, args):
    dataid = args.id
    treedata = getDBdata(dataid)
    VTKWebApp.tree1 = treedata["tree1"]
    VTKWebApp.tree2 = treedata["tree2"]
    VTKWebApp.table = dataid+ ".csv"

    # Create default pipeline (Only once for all the session)
    if not VTKWebApp.view:
        # read the trees
        treeReader1 = vtk.vtkNewickTreeReader()
        treeReader1.SetReadFromInputString(1)
        treeReader1.SetInputString(VTKWebApp.tree1)
        treeReader1.Update()
        tree1 = treeReader1.GetOutput()

        treeReader2 = vtk.vtkNewickTreeReader()
        treeReader2.SetReadFromInputString(1)
        treeReader2.SetInputString(VTKWebApp.tree2)
        treeReader2.Update()
        tree2 = treeReader2.GetOutput()

        # read the table
        tableReader = vtk.vtkDelimitedTextReader()
        tableReader.SetFileName(VTKWebApp.table)
        tableReader.SetHaveHeaders(True)
        tableReader.DetectNumericColumnsOn()
        tableReader.ForceDoubleOn()
        tableReader.Update()
        table = tableReader.GetOutput()

        # setup the tanglegram
        tanglegram = vtk.vtkTanglegramItem()
        tanglegram.SetTree1(tree1);
        tanglegram.SetTree2(tree2);
        tanglegram.SetTable(table);
        tanglegram.SetTree1Label("tree1");
        tanglegram.SetTree2Label("tree2");

        # setup the window
        view = vtk.vtkContextView()
        view.GetRenderer().SetBackground(1,1,1)
        view.GetRenderWindow().SetSize(800,600)

        iren = view.GetInteractor()
        iren.SetRenderWindow(view.GetRenderWindow())

        transformItem = vtk.vtkContextTransform()
        transformItem.AddItem(tanglegram)
        transformItem.SetInteractive(1)

        view.GetScene().AddItem(transformItem)
        view.GetRenderWindow().SetMultiSamples(0)

        iren.Initialize()
        view.GetRenderWindow().Render()

        # VTK Web application specific
        VTKWebApp.view = view.GetRenderWindow()
        self.Application.GetObjectIdMap().SetActiveObject("VIEW", view.GetRenderWindow())
Esempio n. 4
0
def CSVToVTKTable(csv):
  reader = vtk.vtkDelimitedTextReader()
  reader.SetReadFromInputString(1)
  reader.SetInputString(csv, len(csv))
  reader.SetHaveHeaders(1)
  reader.DetectNumericColumnsOn()
  reader.Update()
  table = reader.GetOutput()
  return table
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(self,
                                       module_manager,
                                       vtk.vtkDelimitedTextReader(),
                                       'Reading vtkDelimitedText.', (),
                                       ('vtkDelimitedText', ),
                                       replaceDoc=True,
                                       inputFunctions=None,
                                       outputFunctions=None)
    def initialize(self):
        global renderer, renderWindow, renderWindowInteractor, cone, mapper, actor

        # Bring used components
        self.registerVtkWebProtocol(protocols.vtkWebMouseHandler())
        self.registerVtkWebProtocol(protocols.vtkWebViewPort())
        self.registerVtkWebProtocol(protocols.vtkWebViewPortImageDelivery())
        self.registerVtkWebProtocol(protocols.vtkWebViewPortGeometryDelivery())

        # Update authentication key to use
        self.updateSecret(_PhylogeneticTree.authKey)

        # Create default pipeline (Only once for all the session)
        if not _PhylogeneticTree.view:
            # read in  a tree
            treeReader = vtk.vtkNewickTreeReader()
            treeReader.SetFileName(_PhylogeneticTree.treeFilePath)
            treeReader.Update()
            reader = treeReader.GetOutput()

            # read in  a table
            tableReader = vtk.vtkDelimitedTextReader()
            tableReader.SetFileName(_PhylogeneticTree.csvFilePath)
            tableReader.SetHaveHeaders(True)
            tableReader.DetectNumericColumnsOn()
            tableReader.Update()
            table = tableReader.GetOutput()

            # play with the heatmap vis
            treeHeatmapItem = vtk.vtkTreeHeatmapItem()
            treeHeatmapItem.SetTree(reader)
            treeHeatmapItem.SetTable(table)

            # setup the window
            view = vtk.vtkContextView()
            view.GetRenderer().SetBackground(1, 1, 1)
            view.GetRenderWindow().SetSize(800, 600)

            iren = view.GetInteractor()
            iren.SetRenderWindow(view.GetRenderWindow())

            transformItem = vtk.vtkContextTransform()
            transformItem.AddItem(treeHeatmapItem)
            transformItem.SetInteractive(1)

            view.GetScene().AddItem(transformItem)
            view.GetRenderWindow().SetMultiSamples(0)

            iren.Initialize()
            view.GetRenderWindow().Render()

            # VTK Web application specific
            _PhylogeneticTree.view = view.GetRenderWindow()
            self.Application.GetObjectIdMap().SetActiveObject(
                "VIEW", view.GetRenderWindow())
Esempio n. 7
0
    def initialize(self):
        global renderer, renderWindow, renderWindowInteractor, cone, mapper, actor

        # Bring used components
        self.registerVtkWebProtocol(protocols.vtkWebMouseHandler())
        self.registerVtkWebProtocol(protocols.vtkWebViewPort())
        self.registerVtkWebProtocol(protocols.vtkWebViewPortImageDelivery())
        self.registerVtkWebProtocol(protocols.vtkWebViewPortGeometryDelivery())

        # Update authentication key to use
        self.updateSecret(_PhylogeneticTree.authKey)

        # Create default pipeline (Only once for all the session)
        if not _PhylogeneticTree.view:
            # read in  a tree
            treeReader = vtk.vtkNewickTreeReader()
            treeReader.SetFileName(_PhylogeneticTree.treeFilePath)
            treeReader.Update()
            reader = treeReader.GetOutput()

            # read in  a table
            tableReader = vtk.vtkDelimitedTextReader()
            tableReader.SetFileName(_PhylogeneticTree.csvFilePath)
            tableReader.SetHaveHeaders(True)
            tableReader.DetectNumericColumnsOn()
            tableReader.Update()
            table = tableReader.GetOutput()

            # play with the heatmap vis
            treeHeatmapItem = vtk.vtkTreeHeatmapItem()
            treeHeatmapItem.SetTree(reader);
            treeHeatmapItem.SetTable(table);

            # setup the window
            view = vtk.vtkContextView()
            view.GetRenderer().SetBackground(1,1,1)
            view.GetRenderWindow().SetSize(800,600)

            iren = view.GetInteractor()
            iren.SetRenderWindow(view.GetRenderWindow())

            transformItem = vtk.vtkContextTransform()
            transformItem.AddItem(treeHeatmapItem)
            transformItem.SetInteractive(1)

            view.GetScene().AddItem(transformItem)
            view.GetRenderWindow().SetMultiSamples(0)

            iren.Initialize()
            view.GetRenderWindow().Render()

            # VTK Web application specific
            _PhylogeneticTree.view = view.GetRenderWindow()
            self.Application.GetObjectIdMap().SetActiveObject("VIEW", view.GetRenderWindow())
Esempio n. 8
0
    def readCSVFile(self, filename):
        """ Function to read a CSV file
	    """
        print("CSV FilePath: " + filename)
        sys.stdout.flush()
        CSVreader = vtk.vtkDelimitedTextReader()
        CSVreader.SetFieldDelimiterCharacters(",")
        CSVreader.SetFileName(filename)
        CSVreader.SetHaveHeaders(True)
        CSVreader.Update()

        return CSVreader.GetOutput()
Esempio n. 9
0
def download_sparse_points():
    """Used with ``download_saddle_surface``"""
    saved_file, _ = _download_file('sparsePoints.txt')
    points_reader = vtk.vtkDelimitedTextReader()
    points_reader.SetFileName(saved_file)
    points_reader.DetectNumericColumnsOn()
    points_reader.SetFieldDelimiterCharacters('\t')
    points_reader.SetHaveHeaders(True)
    table_points = vtk.vtkTableToPolyData()
    table_points.SetInputConnection(points_reader.GetOutputPort())
    table_points.SetXColumn('x')
    table_points.SetYColumn('y')
    table_points.SetZColumn('z')
    table_points.Update()
    return pyvista.wrap(table_points.GetOutput())
Esempio n. 10
0
def initialize(self, VTKWebApp, args):
    VTKWebApp.treeFilePath = args.tree
    VTKWebApp.csvFilePath = args.table

    # Create default pipeline (Only once for all the session)
    if not VTKWebApp.view:
        # read in  a tree
        treeReader = vtk.vtkNewickTreeReader()
        treeReader.SetFileName(VTKWebApp.treeFilePath)
        treeReader.Update()
        reader = treeReader.GetOutput()

        # read in  a table
        tableReader = vtk.vtkDelimitedTextReader()
        tableReader.SetFileName(VTKWebApp.csvFilePath)
        tableReader.SetHaveHeaders(1)
        tableReader.DetectNumericColumnsOn()
        tableReader.Update()
        table = tableReader.GetOutput()

        # play with the heatmap vis
        treeHeatmapItem = vtk.vtkTreeHeatmapItem()
        treeHeatmapItem.SetTree(reader)
        treeHeatmapItem.SetTable(table)

        # setup the window
        view = vtk.vtkContextView()
        view.GetRenderer().SetBackground(1, 1, 1)
        view.GetRenderWindow().SetSize(800, 600)

        iren = view.GetInteractor()
        iren.SetRenderWindow(view.GetRenderWindow())

        transformItem = vtk.vtkContextTransform()
        transformItem.AddItem(treeHeatmapItem)
        transformItem.SetInteractive(1)

        view.GetScene().AddItem(transformItem)
        view.GetRenderWindow().SetMultiSamples(0)

        iren.Initialize()
        view.GetRenderWindow().Render()

        # VTK Web application specific
        VTKWebApp.view = view.GetRenderWindow()
        self.Application.GetObjectIdMap().SetActiveObject("VIEW", view.GetRenderWindow())
Esempio n. 11
0
    def _readFile(self, filename, color):
        # Takes filename as string and returns polyData
        extension = os.path.splitext(filename)[1]

        # Read PLY into vtkPoints
        if extension == ".ply":
            reader = vtk.vtkPLYReader()
            reader.SetFileName(filename)
            reader.Update()
            points = reader.GetOutput().GetPoints()
            vertices = vtk.vtkCellArray()
            for i in range(0, reader.GetOutput().GetNumberOfPoints()):
                vertices.InsertNextCell(1)
                vertices.InsertCellPoint(i)

        # Read TXT into vtkPoints
        elif extension == ".txt":
            textReader = vtk.vtkDelimitedTextReader()
            textReader.SetFileName(filename)
            textReader.SetFieldDelimiterCharacters('\t ')
            textReader.DetectNumericColumnsOn()
            textReader.Update()
            table = textReader.GetOutput()
            points = vtk.vtkPoints()
            vertices = vtk.vtkCellArray()
            for i in range(0, table.GetNumberOfRows()):
                points.InsertNextPoint(
                    table.GetValue(i, 0).ToDouble(),
                    table.GetValue(i, 1).ToDouble(),
                    table.GetValue(i, 2).ToDouble())
                vertices.InsertNextCell(1)
                vertices.InsertCellPoint(i)

        else:
            raise InputError("file must be ply or txt")

        # Add all generated data to polydata
        polydata = vtk.vtkPolyData()
        polydata.SetPoints(points)
        polydata.SetVerts(vertices)

        return polydata
Esempio n. 12
0
        mode = 3
    lut = vtk.vtkLookupTable()
    lut.SetTableRange(0, 10)
    lut.SetHueRange(0, 0.333)
    lut.SetSaturationRange(0.9, 0.9)
    lut.SetValueRange(0.75, 0.75)
    lut.SetNumberOfColors(11)
    lut.Build()
    color_map = []
    for i in range(lut.GetNumberOfTableValues()):
        color_map.append(lut.GetTableValue(i))
    for i in range(lut.GetNumberOfTableValues()):
        lut.SetTableValue(i, color_map[lut.GetNumberOfTableValues() - 1 - i])
    color_map.reverse()

    reader = vtk.vtkDelimitedTextReader()
    reader.SetFileName(EHRDataPath)
    reader.DetectNumericColumnsOn()
    reader.SetFieldDelimiterCharacters(',')
    reader.Update()

    rootTable = reader.GetOutput()
    feature = featureVector(EHRDataPath, mode)
    point_xyz, middle_points, frequency_count = pointCalculate(
        rootTable, feature)

    duration = durationCalculate(middle_points, feature, frequency_count)
    distance = distanceCalculate(point_xyz)
    #print(frequency_count)
    renderer = vtk.vtkRenderer()
    renderWindow = vtk.vtkRenderWindow()
import vtk
import numpy as N
from vtk.util import numpy_support as VN
import time

currGraph = vtk.vtkDirectedGraph()
prevGraph = vtk.vtkDirectedGraph()

reader = vtk.vtkDelimitedTextReader()
reader.SetDetectNumericColumns(True)
reader.SetHaveHeaders(True)
reader.SetFileName('/Volumes/SciVis_LargeData/ArtMarkets/judicial/judicial.csv')
reader.GetFieldDelimiterCharacters()
reader.Update()

table = reader.GetOutput()
year = VN.vtk_to_numpy(table.GetColumnByName('year'))
caseid = VN.vtk_to_numpy(table.GetColumnByName('caseid'))

edges = vtk.vtkDelimitedTextReader()
edges.DetectNumericColumnsOn()
edges.SetFileName('/Volumes/SciVis_LargeData/ArtMarkets/judicial/allcites.txt')
edges.SetFieldDelimiterCharacters(' ')
edges.Update()

edges_table = edges.GetOutput()
start_node = VN.vtk_to_numpy(edges_table.GetColumn(0))
end_node = VN.vtk_to_numpy(edges_table.GetColumn(1))

# This array is the same length as the number of edges
# and denotes the year in which the start node was decided
def vtkfile():

    csvfile = './sample.csv'

    colors = vtk.vtkNamedColors()

    points_reader = vtk.vtkDelimitedTextReader()
    points_reader.SetFileName(csvfile)
    points_reader.DetectNumericColumnsOn()
    points_reader.SetFieldDelimiterCharacters(',')
    points_reader.SetHaveHeaders(True)

    table_points = vtk.vtkTableToPolyData()
    table_points.SetInputConnection(points_reader.GetOutputPort())
    table_points.SetXColumn('CentroidX')
    table_points.SetYColumn('CentroidY')
    table_points.SetZColumn('CentroidZ')
    table_points.Update()

    points = table_points.GetOutput()
    points.GetPointData().SetActiveScalars('VelocityMagnitude')
    # range = points.GetPointData().GetScalars().GetRange()

    box = vtk.vtkImageData()
    box.SetDimensions([101, 101, 101])

    gaussian_kernel = vtk.vtkGaussianKernel()
    gaussian_kernel.SetSharpness(2)
    gaussian_kernel.SetRadius(12)

    interpolator = vtk.vtkPointInterpolator()
    interpolator.SetInputData(box)
    interpolator.SetSourceData(points)
    interpolator.SetKernel(gaussian_kernel)

    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(interpolator.GetOutputPort())
    # mapper.SetScalarRange(range)

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    # point_mapper = vtk.vtkPointGaussianMapper()
    # point_mapper.SetInputData(points)
    # # point_mapper.SetScalarRange(range)
    # point_mapper.SetScaleFactor(0.6)
    # point_mapper.EmissiveOff()
    # point_mapper.SetSplatShaderCode(
    #     "//VTK::Color::Impl\n"
    #     "float dist = dot(offsetVCVSOutput.xy,offsetVCVSOutput.xy);\n"
    #     "if (dist > 1.0) {\n"
    #     "  discard;\n"
    #     "} else {\n"
    #     "  float scale = (1.0 - dist);\n"
    #     "  ambientColor *= scale;\n"
    #     "  diffuseColor *= scale;\n"
    #     "}\n"
    # )
    #
    # point_actor = vtk.vtkActor()
    # point_actor.SetMapper(point_mapper)

    renderer = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    renderer.AddActor(actor)
    # renderer.AddActor(point_actor)
    renderer.SetBackground(colors.GetColor3d("SlateGray"))

    renWin.SetSize(640, 480)
    renWin.SetWindowName('PointInterpolator')

    renderer.ResetCamera()
    renderer.GetActiveCamera().Elevation(-45)

    iren.Initialize()

    renWin.Render()
    iren.Start()
Esempio n. 15
0
def test_table_init(tmpdir):
    """Save some delimited text to a file and read it"""
    filename = str(tmpdir.mkdir("tmpdir").join('tmp.%s' % 'csv'))
    nr, nc = 50, 3
    arrays = np.random.rand(nr, nc)

    # Create from 2D array
    table = pyvista.Table(arrays)
    assert table.n_rows == nr
    assert table.n_columns == nc
    assert table.n_arrays == nc

    assert len(table.row_arrays) == nc
    for i in range(nc):
        assert np.allclose(arrays[:, i], table[i])

    with pytest.raises(AssertionError):
        pyvista.Table(np.random.rand(100))

    with pytest.raises(AssertionError):
        pyvista.Table(np.random.rand(100, 2, 3))

    # create from dictionary
    array_dict = {}
    for i in range(nc):
        array_dict['foo{}'.format(i)] = arrays[:, i].copy()
    table = pyvista.Table(array_dict)
    assert table.n_rows == nr
    assert table.n_columns == nc

    assert len(table.row_arrays) == nc
    for i in range(nc):
        assert np.allclose(arrays[:, i], table['foo{}'.format(i)])

    dataset = examples.load_hexbeam()
    array_dict = dataset.point_arrays
    table = pyvista.Table(array_dict)
    assert table.n_rows == dataset.n_points
    assert table.n_columns == len(array_dict)

    assert len(table.row_arrays) == len(array_dict)
    for name in table.keys():
        assert np.allclose(dataset[name], table[name])

    # Create from vtkTable object
    h = '\t'.join(['a{}'.format(i) for i in range(nc)])
    np.savetxt(filename, arrays, delimiter='\t', header=h, comments='')

    reader = vtk.vtkDelimitedTextReader()
    reader.SetFileName(filename)
    reader.DetectNumericColumnsOn()
    reader.SetFieldDelimiterCharacters('\t')
    reader.SetHaveHeaders(True)
    reader.Update()

    # Test init
    table = pyvista.Table(reader.GetOutput(), deep=True)
    assert isinstance(table, vtk.vtkTable)
    assert isinstance(table, pyvista.Table)

    table = pyvista.Table(reader.GetOutput(), deep=False)
    assert isinstance(table, vtk.vtkTable)
    assert isinstance(table, pyvista.Table)

    # Test wrap
    table = pyvista.wrap(reader.GetOutput())
    assert isinstance(table, vtk.vtkTable)
    assert isinstance(table, pyvista.Table)

    assert table.n_rows == nr
    assert table.n_columns == nc

    assert len(table.row_arrays) == nc
    for i in range(nc):
        assert np.allclose(arrays[:, i], table[i])

    with pytest.raises(TypeError):
        pyvista.Table("foo")

    return
Esempio n. 16
0
def initialize(self, VTKWebApp, args):
    dataid = args.id
    treedata = getDBdata(dataid)
    VTKWebApp.tree = treedata["tree"]
    VTKWebApp.table = dataid+ ".csv"

    # Create default pipeline (Only once for all the session)
    if not VTKWebApp.view:
        treeHeatmapItem = vtk.vtkTreeHeatmapItem()

        # read in  a tree
        treeReader = vtk.vtkNewickTreeReader()
        treeReader.SetReadFromInputString(1)
        treeReader.SetInputString(VTKWebApp.tree)
        treeReader.Update()
        tree = treeReader.GetOutput()
        treeHeatmapItem.SetTree(tree)

        if (VTKWebApp.table != "none" and os.path.isfile(VTKWebApp.table)):
          # read in  a table
          print("read table"+ VTKWebApp.table)
          tableReader = vtk.vtkDelimitedTextReader()
          tableReader.SetFileName(VTKWebApp.table)
          tableReader.SetHaveHeaders(1)
          tableReader.DetectNumericColumnsOn()
          tableReader.Update()
          table = tableReader.GetOutput()
          if (table):
              treeHeatmapItem.SetTable(table)


        # setup the window
        view = vtk.vtkContextView()
        view.GetRenderer().SetBackground(1,1,1)
        view.GetRenderWindow().SetSize(800,600)

        iren = view.GetInteractor()
        iren.SetRenderWindow(view.GetRenderWindow())

        transformItem = vtk.vtkContextTransform()
        transformItem.AddItem(treeHeatmapItem)
        transformItem.SetInteractive(1)

        view.GetScene().AddItem(transformItem)
        view.GetRenderWindow().SetMultiSamples(0)

        iren.Initialize()
        view.GetRenderWindow().Render()

        # adjust zoom so the item nicely fills the screen
        itemSize = [0, 0]
        treeHeatmapItem.GetSize(itemSize)

        itemSize.append(0)
        transformItem.GetTransform().MultiplyPoint(itemSize, itemSize)

        newWidth = view.GetScene().GetSceneWidth()
        newHeight = view.GetScene().GetSceneHeight()

        pageWidth = newWidth
        pageHeight = newHeight
        sx = pageWidth  / itemSize[0]
        sy = pageHeight / itemSize[1]
        if sy < sx:
           scale = sy;
        else:
           scale = sx;

        if scale > 1:
           scale = scale * 0.5
        else:
           scale = scale * 0.9

        transformItem.Scale(scale, scale)

        # center the item within the screen
        itemCenter = [0, 0]
        treeHeatmapItem.GetCenter(itemCenter)
        itemCenter.append(0)

        centerPt = vtk.vtkPoints2D()
        centerPt.InsertNextPoint(newWidth / 2.0, newHeight / 2.0)
        transformItem.GetTransform().InverseTransformPoints(centerPt, centerPt)
        sceneCenter = [0, 0]
        centerPt.GetPoint(0, sceneCenter)

        dx = -1 * (itemCenter[0] - sceneCenter[0])
        dy = -1 * (itemCenter[1] - sceneCenter[1])

        transformItem.Translate(dx, dy)

        # VTK Web application specific
        VTKWebApp.view = view.GetRenderWindow()
        self.Application.GetObjectIdMap().SetActiveObject("VIEW", view.GetRenderWindow())
Esempio n. 17
0
def initialize(self, VTKWebApp, args):
    # Create default pipeline (Only once for all the session)
    if not VTKWebApp.view:

        baseURL = args.baseURL
        # support for overriding the base URL
        scriptDir = os.path.dirname(os.path.realpath(__file__))
        configPath = scriptDir + "/baseURL.txt"
        if os.path.isfile(configPath):
            f = file(configPath, "r")
            baseURL = f.read().rstrip()
            f.close()

        # get our input data from romanesco
        r = requests.get(baseURL + args.tree1URI, verify=False)
        tree1JSON = r.json()
        tree1Str = tree1JSON["data"]
        r = requests.get(baseURL + args.tree2URI, verify=False)
        tree2JSON = r.json()
        tree2Str = tree2JSON["data"]
        r = requests.get(baseURL + args.tableURI, verify=False)
        tableJSON = r.json()
        tableStr = tableJSON["data"]

        # get the tree names (TODO: consider better ways to get this info)
        tree1LabelURI = args.tree1URI[0:args.tree1URI.find("romanesco")]
        r = requests.get(baseURL + tree1LabelURI, verify=False)
        tree1LabelJSON = r.json()
        tree1Label = tree1LabelJSON["name"]
        tree1Label = tree1Label[0:tree1Label.find(".")]

        tree2LabelURI = args.tree2URI[0:args.tree2URI.find("romanesco")]
        r = requests.get(baseURL + tree2LabelURI, verify=False)
        tree2LabelJSON = r.json()
        tree2Label = tree2LabelJSON["name"]
        tree2Label = tree2Label[0:tree2Label.find(".")]

        # convert our input data into deserialized VTK objects
        tree1Reader = vtk.vtkTreeReader()
        tree1Reader.ReadFromInputStringOn()
        tree1Reader.SetInputString(tree1Str, len(tree1Str))
        tree1Reader.Update()
        tree1 = tree1Reader.GetOutput()

        tree2Reader = vtk.vtkTreeReader()
        tree2Reader.ReadFromInputStringOn()
        tree2Reader.SetInputString(tree2Str, len(tree2Str))
        tree2Reader.Update()
        tree2 = tree2Reader.GetOutput()

        tableReader = vtk.vtkDelimitedTextReader()
        tableReader.ReadFromInputStringOn()
        tableReader.SetInputString(tableStr, len(tableStr))
        tableReader.SetHaveHeaders(True)
        tableReader.DetectNumericColumnsOn()
        tableReader.ForceDoubleOn()
        table = tableReader.GetOutput()
        tableReader.Update()

        # create our visualization item and load the data into it.
        tanglegram = vtk.vtkTanglegramItem()
        tanglegram.SetTree1(tree1)
        tanglegram.SetTree2(tree2)
        tanglegram.SetTable(table)
        tanglegram.SetTree1Label(tree1Label)
        tanglegram.SetTree2Label(tree2Label)
        tanglegram.SetCorrespondenceLineWidth(4.0)
        tanglegram.SetTreeLineWidth(2.0)

        # setup the window
        view = vtk.vtkContextView()
        view.GetRenderWindow().SetSize(int(args.width), int(args.height))
        view.GetRenderer().SetBackground(1, 1, 1)

        iren = view.GetInteractor()
        iren.SetRenderWindow(view.GetRenderWindow())

        transformItem = vtk.vtkContextTransform()
        transformItem.AddItem(tanglegram)
        transformItem.SetInteractive(1)

        view.GetScene().AddItem(transformItem)
        view.GetRenderWindow().SetMultiSamples(0)

        iren.Initialize()
        view.GetRenderWindow().Render()

        # VTK Web application specific
        VTKWebApp.view = view.GetRenderWindow()
        self.Application.GetObjectIdMap().SetActiveObject(
            "VIEW", view.GetRenderWindow())
Esempio n. 18
0
def main():
    input_filename = get_program_parameters()

    reader = vtk.vtkDelimitedTextReader()
    reader.SetFileName(input_filename)
    reader.DetectNumericColumnsOn()
    reader.SetFieldDelimiterCharacters(" ")
    reader.Update()

    table = reader.GetOutput()

    points = vtk.vtkPoints()

    normals = vtk.vtkDoubleArray()

    normals.SetNumberOfComponents(3)  # 3 d normals(ie x, y, z)

    print("Table has", table.GetNumberOfRows(), "rows.")
    print("Table has", table.GetNumberOfColumns(), "columns.")

    for i in range(0, table.GetNumberOfRows()):
        print("x:",
              table.GetValue(i, 0).ToDouble(), "y:",
              (table.GetValue(i, 1)).ToDouble(), "z:",
              (table.GetValue(i, 2)).ToDouble())

        points.InsertNextPoint(
            table.GetValue(i, 0).ToDouble(),
            table.GetValue(i, 1).ToDouble(),
            table.GetValue(i, 2).ToDouble())

        n = [0.0, 0.0, 0.0]
        n[0] = (table.GetValue(i, 3)).ToDouble()
        n[1] = (table.GetValue(i, 4)).ToDouble()
        n[2] = (table.GetValue(i, 5)).ToDouble()

        print("n:", n[0], n[1], n[2])
        normals.InsertNextTuple(n)

    print("There are", points.GetNumberOfPoints(), "points.")

    polydata = vtk.vtkPolyData()
    polydata.SetPoints(points)
    polydata.GetPointData().SetNormals(normals)

    glyph_filter = vtk.vtkVertexGlyphFilter()
    glyph_filter.SetInputData(polydata)
    glyph_filter.Update()

    # Visualize
    colors = vtk.vtkNamedColors()

    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(glyph_filter.GetOutputPort())

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetPointSize(30)
    actor.GetProperty().SetColor(colors.GetColor3d("Tomato"))

    renderer = vtk.vtkRenderer()
    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window_interactor = vtk.vtkRenderWindowInteractor()
    render_window_interactor.SetRenderWindow(render_window)

    renderer.AddActor(actor)
    renderer.SetBackground(colors.GetColor3d("Mint"))

    render_window.Render()
    render_window_interactor.Start()
Esempio n. 19
0
import os
import sys
import vtk
from vtk.util.misc import vtkGetDataRoot
from vtk.util.misc import vtkGetTempDir

VTK_DATA_ROOT = vtkGetDataRoot()
VTK_TEMP_DIR = vtkGetTempDir()

file0 = VTK_TEMP_DIR + '/idFile0.vtt'
file1 = VTK_TEMP_DIR + '/idFile1.vtt'
file2 = VTK_TEMP_DIR + '/idFile2.vtt'

# read in some poly data
csvReader = vtk.vtkDelimitedTextReader()
csvReader.SetFileName(VTK_DATA_ROOT + "/Data/vehicle_data.csv")
csvReader.DetectNumericColumnsOn();
csvReader.SetHaveHeaders(True);
csvReader.Update()

# write various versions
xmlTableWriter = vtk.vtkXMLTableWriter()
xmlTableWriter.SetFileName(file0)
xmlTableWriter.SetDataModeToAscii()
xmlTableWriter.SetInputConnection(csvReader.GetOutputPort())
xmlTableWriter.Write()

xmlTableWriter.SetFileName(file1)
xmlTableWriter.SetInputConnection(csvReader.GetOutputPort())
xmlTableWriter.SetDataModeToAppended()
Esempio n. 20
0
def main():
    points_fn, probe_fn = get_program_parameters()

    colors = vtk.vtkNamedColors()

    points_reader = vtk.vtkDelimitedTextReader()
    points_reader.SetFileName(points_fn)
    points_reader.DetectNumericColumnsOn()
    points_reader.SetFieldDelimiterCharacters('\t')
    points_reader.SetHaveHeaders(True)

    table_points = vtk.vtkTableToPolyData()
    table_points.SetInputConnection(points_reader.GetOutputPort())
    table_points.SetXColumn('x')
    table_points.SetYColumn('y')
    table_points.SetZColumn('z')
    table_points.Update()

    points = table_points.GetOutput()
    points.GetPointData().SetActiveScalars('val')
    range = points.GetPointData().GetScalars().GetRange()

    # Read a probe surface
    stl_reader = vtk.vtkSTLReader()
    stl_reader.SetFileName(probe_fn)
    stl_reader.Update()

    surface = stl_reader.GetOutput()
    bounds = np.array(surface.GetBounds())

    dims = np.array([101, 101, 101])
    box = vtk.vtkImageData()
    box.SetDimensions(dims)
    box.SetSpacing((bounds[1::2] - bounds[:-1:2]) / (dims - 1))
    box.SetOrigin(bounds[::2])

    # Gaussian kernel
    gaussian_kernel = vtk.vtkGaussianKernel()
    gaussian_kernel.SetSharpness(2)
    gaussian_kernel.SetRadius(12)

    interpolator = vtk.vtkPointInterpolator()
    interpolator.SetInputData(box)
    interpolator.SetSourceData(points)
    interpolator.SetKernel(gaussian_kernel)

    resample = vtk.vtkResampleWithDataSet()
    resample.SetInputData(surface)
    resample.SetSourceConnection(interpolator.GetOutputPort())

    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(resample.GetOutputPort())
    mapper.SetScalarRange(range)

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    point_mapper = vtk.vtkPointGaussianMapper()
    point_mapper.SetInputData(points)
    point_mapper.SetScalarRange(range)
    point_mapper.SetScaleFactor(0.6)
    point_mapper.EmissiveOff()
    point_mapper.SetSplatShaderCode(
        "//VTK::Color::Impl\n"
        "float dist = dot(offsetVCVSOutput.xy,offsetVCVSOutput.xy);\n"
        "if (dist > 1.0) {\n"
        "  discard;\n"
        "} else {\n"
        "  float scale = (1.0 - dist);\n"
        "  ambientColor *= scale;\n"
        "  diffuseColor *= scale;\n"
        "}\n")

    point_actor = vtk.vtkActor()
    point_actor.SetMapper(point_mapper)

    renderer = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    renderer.AddActor(actor)
    renderer.AddActor(point_actor)
    renderer.SetBackground(colors.GetColor3d('SlateGray'))

    renWin.SetSize(640, 480)
    renWin.SetWindowName('PointInterpolator')

    renderer.ResetCamera()
    renderer.GetActiveCamera().Elevation(-45)

    iren.Initialize()

    renWin.Render()
    iren.Start()