Skip to content


# StreamLines

VTKEx/Python/Visualization/StreamLines

### Description

*Translated to python from the .cxx examples

Other languages

See (Cxx)

Question

If you have a simple question about this example contact us at VTKExProject If your question is more complex and may require extended discussion, please use the VTK Discourse Forum

### Code

StreamLines.py

    #!/usr/bin/env python

    # import os
    # os.chdir("VTKData/Data")

    import vtk

    def get_program_parameters():
        import argparse
        description = 'Streamlines.'
        epilogue = '''
       '''
        parser = argparse.ArgumentParser(description=description, epilog=epilogue)
        parser.add_argument('xyz_file', help='combxyz.bin.')
        parser.add_argument('q_file', help='combq.bin.')
        args = parser.parse_args()
        return args.xyz_file, args.q_file

    def main():
        colors = vtk.vtkNamedColors()

        colors.SetColor('bkg', [0.1, 0.2, 0.4, 1.0])

        xyz_file, q_file = get_program_parameters()

        # Read the data.
        #
        pl3d = vtk.vtkMultiBlockPLOT3DReader()
        pl3d.SetXYZFileName(xyz_file)
        pl3d.SetQFileName(q_file)
        pl3d.SetScalarFunctionNumber(100)
        pl3d.SetVectorFunctionNumber(202)
        pl3d.Update()

        seeds = vtk.vtkPlaneSource()
        seeds.SetXResolution(4)
        seeds.SetYResolution(4)
        seeds.SetOrigin(2, -2, 26)
        seeds.SetPoint1(2, 2, 26)
        seeds.SetPoint2(2, -2, 32)

        streamline = vtk.vtkStreamTracer()
        streamline.SetInputData(pl3d.GetOutput().GetBlock(0))
        streamline.SetSourceConnection(seeds.GetOutputPort())
        streamline.SetMaximumPropagation(200)
        streamline.SetInitialIntegrationStep(.2)
        streamline.SetIntegrationDirectionToForward()

        streamline_mapper = vtk.vtkPolyDataMapper()
        streamline_mapper.SetInputConnection(streamline.GetOutputPort())
        streamline_actor = vtk.vtkActor()
        streamline_actor.SetMapper(streamline_mapper)
        streamline_actor.VisibilityOn()

        outline = vtk.vtkStructuredGridOutlineFilter()
        outline.SetInputData(pl3d.GetOutput().GetBlock(0))
        outline_mapper = vtk.vtkPolyDataMapper()
        outline_mapper.SetInputConnection(outline.GetOutputPort())
        outline_actor = vtk.vtkActor()
        outline_actor.SetMapper(outline_mapper)
        outline_actor.GetProperty().SetColor(colors.GetColor3d('White'))

        renderer = vtk.vtkRenderer()
        render_window = vtk.vtkRenderWindow()
        render_window.AddRenderer(renderer)
        interactor = vtk.vtkRenderWindowInteractor()
        interactor.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
        render_window.SetInteractor(interactor)

        renderer.AddActor(streamline_actor)
        renderer.AddActor(outline_actor)

        renderer.SetBackground(colors.GetColor3d('bkg'))
        interactor.Initialize()
        render_window.Render()
        renderer.GetActiveCamera().SetPosition(-32.8, -12.3, 46.3)
        renderer.GetActiveCamera().SetFocalPoint(8.3, 0.03, 29.8)
        renderer.GetActiveCamera().SetViewUp(0.2, 0.5, 0.9)
        render_window.Render()
        interactor.Start()

    if __name__ == '__main__':
        main()