Import 2017-06-07 23:51:09: master 48a19e80

Author Committer Branch Timestamp Parent
jcfr jcfr master 2015-10-29 03:09:23 master 23851258
Changeset

BUG: Fix support for missing labels in vtkMRMLDoubleArrayStorage reader

The reader in vtkMRMLDoubleArrayStorage was always setting the
first line of values in the .mcsv file as labels. If the stored
vtkMRMLDoubleArray had not labels set, then the retrieved double
array labels would be set to the first line of numerical values,
associated with the first data point. This resulted in a missing
data point as well as shifted indices for all remaining points,
and incorrect labels.

The correction this commit offers is to write the line '# nolabels'
in the file if labels exist. If the reader finds this line, it will
set the first line of values as the first data point, instead of
setting it as label values.

Examples :

Here are four examples with (u,v,w) as labels, (12.1,425.577,-454)
for the first data point, and (8.79633e+09,0,-1) for the second one:

(1) New writer: vtkMRMLDoubleArrayNode with labels

measurement file filename.mcsv

u,v,w
12.1,425.577,-454
8.79633e+09,0,-1

(2) New writer: vtkMRMLDoubleArrayNode with no labels set

measurement file filename.mcsv

nolabels

12.1,425.577,-454
8.79633e+09,0,-1

(3) Old writer: vtkMRMLDoubleArrayNode with labels

measurement file filename.mcsv

columns = x,y,yerr

u,v,w
12.1,425.577,-454
8.79633e+09,0,-1

(4) Old writer: vtkMRMLDoubleArrayNode with no labels set

measurement file filename.mcsv

columns = x,y,yerr

12.1,425.577,-454
8.79633e+09,0,-1

Observations :

The line '# columns = x,y,yerr' was hardcoded [1] in the former
writer and had no meaning related to the actual double array
node labels. The inspiration problably came from .mcsv or .acsv
writers/readers [2][3] but had no effect here.

[1] https://github.com/Slicer/Slicer/blob/6e63b4bf5dbc65a9973160de7397dfc47882e038/Libs/MRML/Core/vtkMRMLDoubleArrayStorageNode.cxx#L244
[2] https://github.com/Slicer/Slicer/blob/master/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsFiducialStorageNode.cxx#L159-L185
[3] https://github.com/Slicer/Slicer/blob/master/Modules/Loadable/Annotations/MRML/vtkMRMLAnnotationFiducialsStorageNode.cxx#L245-L268

From: Alexis Girault <alexis.girault@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@24675 3bd1e089-480b-0410-8dfb-8563597acbee

mod - Libs/MRML/Core/vtkMRMLDoubleArrayStorageNode.cxx Diff File