2009-11-09 2 views
2

J'ai des données irrégulières, x dimension - 384, y dimension - 256 et z dimension 64. Maintenant, ces coordonnées sont stockées dans 3 fichiers binaires séparés et j'ai un fichier de données ayant une valeur de données pour ces points. Je veux savoir, comment puis-je représenter ces données pour être facilement visualisées dans vtk. Jusqu'à présent, nous utilisions AVS qui a des fichiers fld, qui peuvent facilement lire de telles données. Je ne sais pas comment le faire en vtk. Apprécierait n'importe quel pointeur dans cette direction.Visualiser des données irrégulières dans vtk

Répondre

1

Peut-être que vous pouvez écrire un programme court pour convertir les fichiers au format natif VTK. Ils sont simples à travailler, et il existe des saveurs ASCII et binaires. Ils sont décrits dans ce document: www.vtk.org/VTK/img/file-formats.pdf

Vous pouvez également trouver ceci utile: http://www.rug.nl/cit/hpcv/visualisation/VTK/avs2vtk/man.html - si vous explorez la page, il existe des scripts pour convertir les fichiers AVS aux formats VTK, ce peut être un bon point de départ.

Hope this helps, Carlos-

2

Ma meilleure réponse serait écrire un petit programme qui lit les fichiers et remplit ensuite un objet vtkImageData puis enregistrez-le en utilisant vtkMetaImageWriter ou quelque chose?

vtkSmartPointer<vtkImageData> ImageData = vtkSmartPointer<vtkImageData>::New(); 
ImageData->SetDimensions(384,254,64); 
ImageData->SetOrigin(0.0,0.0,0.0); 
ImageData->SetSpacing(1.0,1.0,1.0); 
ImageData->SetScalarTypeToDouble(); 
ImageData->AllocateScalars(); 
for(int i=0; i<z_dim-1; i++){ 
    for(int j=0;j<y_dim-1;j++){        
    for(int k=0;k<x_dim-1;j++){ 
      double pix= pixel from data file 
      double* pixel = static_cast<double*>(ImageData->GetScalarPointer(k,j,i)); 
      pixel[0] = pix; 
      } 
    }    

}