[MINC-users] mincresample along a dimension with *-width variables

Andrew Wood andrew at biospective.com
Thu Feb 6 12:25:12 EST 2014


HI All,

I ran into a issue when resampling a volume along a dimension which has
*-width attribute values. It seems that such a dimension can't be resampled
to have a different number of elements.

An example input volume:
$ mincinfo in.mnc
file: in.mnc
image: signed__ short -32768 to 32767
image dimensions: zspace yspace xspace
    dimension name         length         step        start
    --------------         ------         ----        -----
    zspace                     47        3.375     -1027.16
    yspace                    128     -2.65336      363.575
    xspace                    128     -2.65336      171.012

$ mincheader in.mnc | grep zspace-width
        double zspace-width(zspace) ;
                zspace-width:dimorder = "zspace" ;
                zspace-width:varid = "MINC standard variable" ;
                zspace-width:vartype = "dim-width____" ;
                zspace-width:version = "MINC Version    1.0" ;
                zspace-width:filtertype = "square____" ;
                zspace-width:spacing = "regular__" ;
                zspace-width:width = -3.375 ;
 zspace-width = -3.375, -3.375, -3.375, -3.375, -3.375, -3.375, -3.375,

Now, add a voxel to each dimension:
$ mincresample -clobber in.mnc out.mnc -nelements 129 129 48
(from miattputstr): Function 'dimrename' not implemented

$ mincinfo out.mnc
file: out.mnc
image: signed__ short -32768 to 32767
image dimensions: zspace yspace xspace
    dimension name         length         step        start
    --------------         ------         ----        -----
    zspace                     47        3.375     -1027.16
    yspace                    129     -2.65336      363.575
    xspace                    129     -2.65336      171.012


I dug around the mincresample source code, and the the first thing done
when creating the output volume is a copy of all variable definitions from
the input, excluding {x,y,z}space, image, and image-{min,max}. It appears
that copying the zspace-width actually forces zspace to be copied,
resulting in a naming conflict between the original zspace and our new
zspace. To work around this, it tries to rename the copied zspace to
zspace0, which is where we see the "Function 'dimrename' not implemented"
error message. The result is being stuck with the size of the original
zspace.

The problem goes away if {x,y,z}space-width is added to the exclusion list
for the original variable copy operation. I'm having trouble imagining when
those *-width variables are used though, so I'm not sure if this'd be a
sane fix.

Does anyone have any thoughts that might clear up this situation?

Thanks,
Andrew


More information about the MINC-users mailing list