Export model to model distances as.csv

Slicer 4.11 on Mac OS X.

Hi everyone,
I’d like to export the results of the “model to model distance” extension as an .csv file for further analysis of the 3D distances. The “mesh statistics” extension only computes Min; Max; Mean; etc… but I need the entire dataset of 3D distances between the 2 models.

I never used python, but found some lines in this topic: Model2model distance: export values of vtk file

Yet the lines do not seem to work for me.

modelNode = slicer.util.getNode(‘VTK Output File’)
distances = slicer.util.arrayFromModelPointData(modelNode,‘Absolute_to_BBCJG_vtkMRMLModelNodeF’)
pandas.DataFrame(distances).to_csv(r’~/Desktop/Model/data.csv’, index=False)

Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘pandas’ is not defined

Thank you very much in advance for your help!


Regarding your code, there are few things you need to change.

  1. You need to install the pandas Python library or module. To do this, execute the following line in the Python Interactor: slicer.util.pip_install('pandas') [1]

  2. Then Import the pandas module by executing import pandas also in the Python Interactor

Now you can enter the code above but, keep in mind that some variables may not be the same as you expect. For instance;

  1. modelNode = slicer.util.getNode("VTK Output File") you may have named the output file to something other than VTK Output File

  2. slicer.util.arrayFromModelPointData(modelNode,"Absolute_to_BBCJG_vtkMRMLModelNodeF") I am not sure what Absolute_to_BBCJG_vtkMRMLModelNodeF is but you may need to change this to one of the variables in the VTK structure, such as: PointToPointVector or PointToPointAlongX and so on…

  3. Finally, make sure you have the correct path here pandas.DataFrame(distances).to_csv(r"~/Desktop/Model/data.csv", index=False)

Also, I had to change all of the single quotations ' to double ", I think this is a Windows/Linux thing. I am using a Windows!

Another trick that may work for you is to inspect the VTK Output File manually. You can always save the file as a ASCii or decompressed version of the file and open it with a text reader.

Thank you Fluvio_Lobo !

I had to install Pandas first, so the 2 first lines you provided did the job.
Regarding the names for the output file and the variable, I used the ones I was actually working on, so everything was fine.
And thank you for the trick with the decompressed file!

1 Like