def _create_id_array(dataobject, attributeType): """Returns a VTKArray or VTKCompositeDataArray for the ids""" if not dataobject: raise RuntimeError ("dataobject cannot be None") if dataobject.IsA("vtkCompositeDataSet"): ids = [] for ds in dataobject: ids.append(_create_id_array(ds, attributeType)) return dsa.VTKCompositeDataArray(ids) else: return dsa.VTKArray(\ np.arange(dataobject.GetNumberOfElements(attributeType)))
elev3 = cd3.PointData['Elevation'] npa = randomVec.Arrays[0] def compare(arr, tol): assert algs.all(algs.abs(arr) < tol) # Test operators compare(1 + randomVec - 1 - randomVec, 1E-4) assert (1 + randomVec).DataSet is randomVec.DataSet # Test slicing and indexing compare(randomVec[randomVec[:,0] > 0.2].Arrays[0] - npa[npa[:,0] > 0.2], 1E-7) compare(randomVec[algs.where(randomVec[:,0] > 0.2)].Arrays[0] - npa[numpy.where(npa[:,0] > 0.2)], 1E-7) compare(randomVec[dsa.VTKCompositeDataArray([(slice(None, None, None), slice(0,2,None)), 2])].Arrays[0] - npa[:, 0:2], 1E-6) # Test ufunc compare(algs.cos(randomVec) - numpy.cos(npa), 1E-7) assert algs.cos(randomVec).DataSet is randomVec.DataSet assert algs.in1d(elev, [0,1]) == [item in [0, 1] for item in elev] # Various numerical ops implemented in VTK g = algs.gradient(elev) assert algs.all(g[0] == (1, 0, 0)) v = algs.make_vector(elev, g[:,0], elev) assert algs.all(algs.gradient(v) == [[1, 0, 1], [0, 0, 0], [0, 0, 0]]) v = algs.make_vector(elev, g[:,0], elev2)
elev3 = cd3.PointData['Elevation'] npa = randomVec.Arrays[0] # Test operators assert algs.all(1 + randomVec - 1 - randomVec < 1E-4) assert (1 + randomVec).DataSet is randomVec.DataSet # Test slicing and indexing assert algs.all( randomVec[randomVec[:, 0] > 0.2].Arrays[0] - npa[npa[:, 0] > 0.2] < 1E-7) assert algs.all(randomVec[algs.where(randomVec[:, 0] > 0.2)].Arrays[0] - npa[numpy.where(npa[:, 0] > 0.2)] < 1E-7) assert algs.all( randomVec[dsa.VTKCompositeDataArray([(slice(None, None, None), slice(0, 2, None)), 2])].Arrays[0] - npa[:, 0:2] < 1E-6) # Test ufunc assert algs.all(algs.cos(randomVec) - numpy.cos(npa) < 1E-7) assert algs.cos(randomVec).DataSet is randomVec.DataSet # Various numerical ops implemented in VTK g = algs.gradient(elev) assert algs.all(g[0] == (1, 0, 0)) v = algs.make_vector(elev, g[:, 0], elev) assert algs.all(algs.gradient(v) == [[1, 0, 0], [0, 0, 0], [1, 0, 0]]) v = algs.make_vector(elev, g[:, 0], elev2) assert algs.all(algs.curl(v) == [1, 0, 0])
assert algs.sum(rtData / rtData, controller=vtk.vtkDummyController()) != total_npts # Test where arrays are NoneArray on one of the ranks. if size > 1: if rank == 0: rtData3 = rtData2 grad3 = grad2 else: rtData3 = dsa.NoneArray grad3 = dsa.NoneArray testArrays(rtData3, rtData2, grad3, grad2, total_npts) # Test composite arrays rtData3 = dsa.VTKCompositeDataArray([rtData, dsa.NoneArray]) grad3 = dsa.VTKCompositeDataArray([dsa.NoneArray, grad]) testArrays(rtData3, rtData2, grad3, grad2, total_npts) # Test where arrays are NoneArray on one of the ranks # and composite on others. if size > 1: if rank == 1: rtData3 = dsa.VTKCompositeDataArray([rtData2]) grad3 = dsa.VTKCompositeDataArray([grad2]) else: rtData3 = dsa.NoneArray grad3 = dsa.NoneArray testArrays(rtData3, rtData2, grad3, grad2, total_npts)