XML reader is unable to read large data arrays
It seems like data arrays that are a certain size cannot be read (but can be written) by the XML readers. The reader will seemingly skip over such an array and return a 0-element array instead.
I tried this with a 2^31 element double array (it still works with 2^30 elements).
To reproduce (warning: this creates a 21gb file and takes a similar amount of memory):
import vtk
from vtk.numpy_interface import dataset_adapter as dsa
import numpy as np
data = np.random.rand(2**31, 1)
output = dsa.WrapDataObject(vtk.vtkStructuredGrid())
output.FieldData.append(data, 'data')
writer = vtk.vtkXMLStructuredGridWriter()
writer.SetFileName('data.vts')
writer.SetInputData(output.VTKObject)
writer.Update()
del writer, output, data
reader = vtk.vtkXMLStructuredGridReader()
reader.SetFileName('data.vts')
reader.Update()
inp = dsa.WrapDataObject(reader.GetOutput())
data = inp.FieldData['data']
print('data: {data.shape}'.format(data=data)) # prints (0,)
Edited by Lutz Hofmann