32
32
('dof' , '>i4' ),
33
33
('goodRASFlag' , '>i2' ),
34
34
('delta' , '>f4' , (3 ,)),
35
- ('Mdc' , '>f4' , (3 , 3 )),
35
+ ('x_ras' , '>f4' , (3 , 1 )),
36
+ ('y_ras' , '>f4' , (3 , 1 )),
37
+ ('z_ras' , '>f4' , (3 , 1 )),
36
38
('Pxyz_c' , '>f4' , (3 ,))
37
39
]
38
40
# Optional footer. Also has more stuff after this, optionally
@@ -153,7 +155,7 @@ def get_affine(self):
153
155
hdr = self ._structarr
154
156
d = np .diag (hdr ['delta' ])
155
157
pcrs_c = hdr ['dims' ][:3 ] / 2.0
156
- Mdc = hdr ['Mdc' ]. T
158
+ Mdc = np . vstack (( hdr ['x_ras' ], hdr [ 'y_ras' ], hdr [ 'z_ras' ]))
157
159
pxyz_0 = hdr ['Pxyz_c' ] - np .dot (Mdc , np .dot (d , pcrs_c ))
158
160
M = np .eye (4 , 4 )
159
161
M [0 :3 , 0 :3 ] = np .dot (Mdc , d )
@@ -315,9 +317,9 @@ def default_structarr(klass, endianness=None):
315
317
hdr_data ['type' ] = 3
316
318
hdr_data ['goodRASFlag' ] = 1
317
319
hdr_data ['delta' ][:] = np .array ([1 , 1 , 1 ])
318
- hdr_data ['Mdc' ][:, 0 ] = np .array ([- 1 , 0 , 0 ]) # x_ras
319
- hdr_data ['Mdc' ][:, 1 ] = np .array ([0 , 0 , 1 ]) # y_ras
320
- hdr_data ['Mdc' ][:, 2 ] = np .array ([0 , - 1 , 0 ]) # z_ras
320
+ hdr_data ['x_ras' ] = np .array ([[ - 1 ], [ 0 ], [ 0 ]])
321
+ hdr_data ['y_ras' ] = np .array ([[ 0 ], [ 0 ], [ 1 ]])
322
+ hdr_data ['z_ras' ] = np .array ([[ 0 ], [ - 1 ], [ 0 ]])
321
323
hdr_data ['Pxyz_c' ] = np .array ([0 , 0 , 0 ]) # c_ras
322
324
hdr_data ['mrparms' ] = np .array ([0 , 0 , 0 , 0 ])
323
325
return hdr_data
@@ -327,9 +329,9 @@ def _set_affine_default(self):
327
329
'''
328
330
self ._structarr ['goodRASFlag' ] = 1
329
331
self ._structarr ['delta' ][:] = np .array ([1 , 1 , 1 ])
330
- hdr_data [ 'Mdc' ][:, 0 ] = np .array ([- 1 , 0 , 0 ]) # x_ras
331
- hdr_data [ 'Mdc' ][:, 1 ] = np .array ([0 , 0 , 1 ]) # y_ras
332
- hdr_data [ 'Mdc' ][:, 2 ] = np .array ([0 , - 1 , 0 ]) # z_ras
332
+ self . _structarr [ 'x_ras' ] = np .array ([[ - 1 ], [ 0 ], [ 0 ]])
333
+ self . _structarr [ 'y_ras' ] = np .array ([[ 0 ], [ 0 ], [ 1 ]])
334
+ self . _structarr [ 'z_ras' ] = np .array ([[ 0 ], [ - 1 ], [ 0 ]])
333
335
self ._structarr ['Pxyz_c' ][:] = np .array ([0 , 0 , 0 ]) # c_ras
334
336
335
337
def writehdr_to (self , fileobj ):
@@ -535,7 +537,9 @@ def _affine2header(self):
535
537
Pxyz_c = np .dot (self ._affine , Pcrs_c )
536
538
537
539
hdr ['delta' ][:] = delta
538
- hdr ['Mdc' ][:, :] = Mdc .T
540
+ hdr ['x_ras' ] = Mdc [:, [0 ]]
541
+ hdr ['y_ras' ] = Mdc [:, [1 ]]
542
+ hdr ['z_ras' ] = Mdc [:, [2 ]]
539
543
hdr ['Pxyz_c' ][:] = Pxyz_c [:3 ]
540
544
541
545
0 commit comments