hi all,

we have run into a problem reading a pretty large (3.6 GB) .vtu file.
the file was produced by a fortran program that writes vtk data in the
old ascii format which results in a 17G ascii file which takes very
long to load in paraview (and results in an error message). so, we
have written a converter program that reads the ascii file and outputs
xml:


int main(int argc, char *argp[])
{
  if (argc != 2) {
    cerr << "usage: " << argp[0] << " <vtk filename>\n\n";
    return 1;
  }

  char *filename = argp[1];

  cout << "Input filename: " << filename << "\n";

  vtkSmartPointer<vtkUnstructuredGridReader> reader =
vtkSmartPointer<vtkUnstructuredGridReader>::New();
  reader->SetFileName(filename);

  char *ofilename = "foo.vtu";
  cout << "Output filename: " << ofilename << "\n";
  vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =
vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
  writer->SetFileName(ofilename);
  writer->SetInputConnection(reader->GetOutputPort());
  writer->Write();

  return EXIT_SUCCESS;
}

this program runs fine. now, if i open the resulting file in paraview,
i run into this error as soon as i hit apply:

ERROR: In 
/opt/paraview-3.8.1/src/ParaView-3.8.1/VTK/IO/vtkXMLUnstructuredDataReader.cxx,
line 652
vtkXMLUnstructuredGridReader (0x143f0c40): Cannot read cell
connectivity from Cells in piece 0 because the "connectivity" array is
not long enough.

the converter did work on a smaller test data set and paraview could
open it - only now with the large data set paraview fails. here is the
header of the failing file:

<?xml version="1.0"?>
<VTKFile type="UnstructuredGrid" version="0.1"
byte_order="LittleEndian" compressor="vtkZLibDataCompressor">
  <UnstructuredGrid>
    <Piece NumberOfPoints="106496000"
NumberOfCells="105122745"           >
      <PointData Vectors="vectors">
        <DataArray type="Float32" Name="vectors"
NumberOfComponents="3" format="appended" RangeMin="0.0021820231521"
  RangeMax="24.459394872"         offset="0"                   />
      </PointData>
      <CellData>
      </CellData>
      <Points>
        <DataArray type="Float32" Name="Points" NumberOfComponents="3"
format="appended" RangeMin="0"
RangeMax="5007.1818403"         offset="1580185620"          />
      </Points>
      <Cells>
        <DataArray type="Int64" Name="connectivity" format="appended"
RangeMin=""                     RangeMax=""
offset="2045521660"          />
        <DataArray type="Int64" Name="offsets" format="appended"
RangeMin=""                     RangeMax=""
offset="3504937336"          />
        <DataArray type="UInt8" Name="types" format="appended"
RangeMin=""                     RangeMax=""
offset="3671971228"          />
      </Cells>
    </Piece>
  </UnstructuredGrid>
  <AppendedData encoding="base64">
   _WJgAAACAAAAAAAAAvXYAALF2AADJdgAAUHcAA...

does anyone know what could be going on here? do we need to configure
paraview to handle larger files? is this a bug? could the original
ascii data set have been corrupt and the error reflects now in the xml
file?

thanks in advance and best regards,

   guenter
_______________________________________________
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

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to