1import sys 2 3try: 4 import numpy 5except ImportError: 6 print("Numpy (http://numpy.scipy.org) not found.") 7 print("This test requires numpy!") 8 from vtk.test import Testing 9 Testing.skip() 10 11import vtk 12from vtk.numpy_interface import dataset_adapter as dsa 13from vtk.numpy_interface import algorithms as algs 14 15def test_dataset(ds): 16 p2c = vtk.vtkPointDataToCellData() 17 p2c.SetInputData(ds) 18 p2c.Update() 19 20 c2p = vtk.vtkCellDataToPointData() 21 c2p.SetInputConnection(p2c.GetOutputPort()) 22 c2p.Update() 23 24 d1 = dsa.WrapDataObject(c2p.GetOutput()) 25 26 c2p = vtk.vtkmAverageToPoints() 27 c2p.SetInputData(p2c.GetOutput()) 28 c2p.SetInputArrayToProcess(0, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS, "RTData") 29 c2p.Update() 30 31 d2 = dsa.WrapDataObject(c2p.GetOutput()) 32 33 rtD1 = d1.PointData['RTData'] 34 rtD2 = d2.PointData['RTData'] 35 36 assert (algs.max(algs.abs(rtD1 - rtD2)) < 10E-4) 37 38print("Testing simple debugging grid...") 39# This dataset matches the example values in vtkmCellSetExplicit: 40dbg = vtk.vtkUnstructuredGrid() 41dbg.SetPoints(vtk.vtkPoints()) 42dbg.GetPoints().SetNumberOfPoints(7) 43dbg.InsertNextCell(vtk.VTK_TRIANGLE, 3, [0, 1, 2]) 44dbg.InsertNextCell(vtk.VTK_QUAD, 4, [0, 1, 3, 4]) 45dbg.InsertNextCell(vtk.VTK_TRIANGLE, 3, [1, 3, 5]) 46dbg.InsertNextCell(vtk.VTK_LINE, 2, [5, 6]) 47 48dbgRt = vtk.vtkDoubleArray() 49dbgRt.SetNumberOfTuples(7) 50dbgRt.SetName('RTData') 51dbgRt.SetValue(0, 17.40) 52dbgRt.SetValue(1, 123.0) 53dbgRt.SetValue(2, 28.60) 54dbgRt.SetValue(3, 19.47) 55dbgRt.SetValue(4, 3.350) 56dbgRt.SetValue(5, 0.212) 57dbgRt.SetValue(6, 1023.) 58dbg.GetPointData().AddArray(dbgRt) 59 60test_dataset(dbg) 61print("Success!") 62 63print("Testing homogeneous image data...") 64source = vtk.vtkRTAnalyticSource() 65source.Update() 66imgData = source.GetOutput() 67test_dataset(imgData) 68print("Success!") 69 70d = dsa.WrapDataObject(imgData) 71rtData = d.PointData['RTData'] 72rtMin = algs.min(rtData) 73rtMax = algs.max(rtData) 74clipScalar = 0.5 * (rtMin + rtMax) 75 76print("Testing non-homogenous unstructured grid...") 77clip = vtk.vtkClipDataSet() 78clip.SetInputData(imgData) 79clip.SetValue(clipScalar) 80clip.Update() 81ugrid = clip.GetOutput() 82test_dataset(ugrid) 83print("Success!") 84