Hi Siming, Please reply-all to keep the discussion on the list so others may participate and benefit.
This line in your export code is a problem: sgrid->GetCellData()->AddArray(probe->GetOutput()->GetPointData()->GetArray(i)); Point and cell data arrays have different lengths for structured grids. The writer is apparently not catching this, but the reader is. Cory On Wed, Sep 27, 2017 at 9:42 AM, Siming Bayer <[email protected]> wrote: > I used the vtkProbeFilter to interpolate the value on the edges of a > volumetric mesh onto a image volume with dimension of 256x256x256. And save > the output of vtkProbeFilter to a .vts file use the following code: > > vtkSmartPointer<vtkImageData> volume = vtkSmartPointer<vtkImageData>::New(); > > volume->DeepCopy(reader->GetOutput()); > > //find the cell centers, store as polydata > > vtkSmartPointer<vtkPoints> probePoints = vtkSmartPointer<vtkPoints>::New(); > > double center[3] = { 0,0,0 }; > > for (vtkIdType cellId = 0; cellId < volume->GetNumberOfCells(); ++cellId) > > { > > double pcoords[3] = { 0,0,0 }; > > double *weights = new double[volume->GetMaxCellSize()]; > > vtkCell* cell = volume->GetCell(cellId); > > int subId = cell->GetParametricCenter(pcoords); > > cell->EvaluateLocation(subId, pcoords, center, weights); > > probePoints->InsertNextPoint(center[0], center[1], center[2]); > > } > > vtkSmartPointer<vtkPolyData> probePolyData = > vtkSmartPointer<vtkPolyData>::New(); > > probePolyData->SetPoints(probePoints); > > //read the .vtu mesh file as untructured grid > > vtkSmartPointer<vtkXMLUnstructuredGridReader> meshReader = > vtkSmartPointer<vtkXMLUnstructuredGridReader>::New(); > > meshReader->SetFileName(argv[2]); > > meshReader->Update(); > > vtkUnstructuredGrid* ugrid = meshReader->GetOutput(); > > std::cout << "Interpolating...." << std::endl; > > //Probe filter > > vtkSmartPointer<vtkProbeFilter> probe = > vtkSmartPointer<vtkProbeFilter>::New(); > > probe->SetValidPointMaskArrayName("mesh"); > > probe->SetSourceData(ugrid); > > probe->SetInputData(probePolyData); > > probe->Update(); > > //save the output of probefileter as .vtu file > > vtkSmartPointer<vtkStructuredGrid> sgrid = > vtkSmartPointer<vtkStructuredGrid>::New(); > > sgrid->SetDimensions(256, 256, 256); > > sgrid->SetPoints(probePoints); > > unsigned int numberOfArrays = > probe->GetOutput()->GetPointData()->GetNumberOfArrays(); > > std::cout << "Copying arrays:" << std::endl; > > for (unsigned int i = 0; i < numberOfArrays; i++) > > { > > std::cout << "\t" << > probe->GetOutput()->GetPointData()->GetArray(i)->GetName() << std::endl; > > sgrid->GetCellData()->AddArray(probe->GetOutput()->GetPointData()->GetArray(i)); > > } > > std::cout << "Writing .vts output" << std::endl; > > vtkSmartPointer<vtkXMLStructuredGridWriter> sWriter = > vtkSmartPointer<vtkXMLStructuredGridWriter>::New(); > > sWriter->SetFileName("test.vts"); > > sWriter->SetInputData(sgrid); > > sWriter->Write(); > > } > > > Maybe something wrong here? > > > best, > > Siming > > > 2017-09-27 15:29 GMT+02:00 Cory Quammen <[email protected]>: >> >> [Moving this discussion over to the ParaView list serve as it has to >> do with ParaView.] >> >> Unfortunately, there's not enough information in the header file. What >> wrote this .vts file? >> >> Thanks, >> Cory >> >> On Wed, Sep 27, 2017 at 9:25 AM, Siming Bayer <[email protected]> >> wrote: >> > Yes, >> > >> > the whole file is quite large. The header part is the following: >> > >> > <?xml version="1.0"?> >> > <VTKFile type="StructuredGrid" version="0.1" byte_order="LittleEndian" >> > header_type="UInt32" compressor="vtkZLibDataCompressor"> >> > <StructuredGrid WholeExtent="0 255 0 255 0 255"> >> > <Piece Extent="0 255 0 255 0 255" >> >> >> > <PointData> >> > </PointData> >> > <CellData> >> > <DataArray type="Float64" Name="velocity" NumberOfComponents="3" >> > format="appended" RangeMin="0" RangeMax="0" >> > offset="0" /> >> > <DataArray type="Float64" Name="position" NumberOfComponents="3" >> > format="appended" RangeMin="0" RangeMax="0" >> > offset="906832" /> >> > <DataArray type="Float64" Name="rest_position" >> > NumberOfComponents="3" format="appended" RangeMin="0" >> > RangeMax="0" offset="1813664" /> >> > <DataArray type="Int8" Name="mesh" format="appended" >> > RangeMin="0" >> > RangeMax="0" offset="2720496" /> >> > </CellData> >> > <Points> >> > <DataArray type="Float32" Name="Points" NumberOfComponents="3" >> > format="appended" RangeMin="0.86602540378" >> > RangeMax="440.80693053" >> > offset="2758320" /> >> > </Points> >> > </Piece> >> > </StructuredGrid> >> > <AppendedData encoding="base64"> >> > >> > >> > _.......................................................................(here >> > is the data) >> > </AppendedData> >> > </VTKFile> >> > >> > Thank you! >> > >> > best, >> > Siming >> > >> > 2017-09-27 15:21 GMT+02:00 Cory Quammen <[email protected]>: >> >> >> >> On Wed, Sep 27, 2017 at 8:50 AM, Siming Bayer <[email protected]> >> >> wrote: >> >> > Dear all, >> >> > >> >> > I got the following error while reading a .vts file with ParaView: >> >> > >> >> > >> >> > >> >> > ERROR: In >> >> > >> >> > >> >> > C:\bbd\7cc78367\build\superbuild\paraview\src\VTK\IO\XML\vtkXMLStructuredDataReader.cxx, >> >> > line 360 >> >> > >> >> > vtkXMLStructuredGridReader (000000000B791F40): Error reading extent 0 >> >> > 255 0 >> >> > 255 0 255 from piece 0 >> >> > >> >> > >> >> > What does it mean? What could be the reason? >> >> > >> >> >> >> Perhaps there is something wrong with the file. Can you share it, or >> >> ideally a smaller data set that exhibits the same problem? >> >> >> >> Thanks, >> >> Cory >> >> >> >> > >> >> > >> >> > >> >> > _______________________________________________ >> >> > Powered by www.kitware.com >> >> > >> >> > Visit other Kitware open-source projects at >> >> > http://www.kitware.com/opensource/opensource.html >> >> > >> >> > Please keep messages on-topic and check the VTK FAQ at: >> >> > http://www.vtk.org/Wiki/VTK_FAQ >> >> > >> >> > Search the list archives at: http://markmail.org/search/?q=vtkusers >> >> > >> >> > Follow this link to subscribe/unsubscribe: >> >> > http://public.kitware.com/mailman/listinfo/vtkusers >> >> > >> >> >> >> >> >> >> >> -- >> >> Cory Quammen >> >> Staff R&D Engineer >> >> Kitware, Inc. >> > >> > >> >> >> >> -- >> Cory Quammen >> Staff R&D Engineer >> Kitware, Inc. > > -- Cory Quammen Staff R&D Engineer Kitware, Inc. _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview
