202 lines
5 KiB
Text
202 lines
5 KiB
Text
|
|
#------------------------------------------------------------------------------
|
|
# $File: nifty,v 1.1 2022/02/14 16:51:15 christos Exp $
|
|
# file(1) magic for the NIfTI file format
|
|
|
|
# Type: NIfTI, Neuroimaging file format
|
|
# URL: https://nifti.nimh.nih.gov/
|
|
# From: Yann Leprince <yann.leprince@cea.fr>, 2022
|
|
|
|
344 string n+1\0 NIfTI-1 neuroimaging data,
|
|
!:mime image/x.nifti
|
|
!:ext nii
|
|
>0 use nifti1
|
|
344 string ni1\0 NIfTI-1 neuroimaging data header,
|
|
!:mime image/x.nifti
|
|
!:ext hdr
|
|
>0 use nifti1
|
|
|
|
4 string n+2\0\r\n\032\n NIfTI-2 neuroimaging data,
|
|
!:mime image/x.nifti
|
|
!:ext nii
|
|
>0 use nifti2
|
|
4 string ni2\0\r\n\032\n NIfTI-2 neuroimaging data header,
|
|
!:mime image/x.nifti
|
|
!:ext hdr
|
|
>0 use nifti2
|
|
|
|
# Main subroutine for NIfTI-1
|
|
0 name nifti1
|
|
>0 clear x
|
|
>0 lelong =348 little endian
|
|
>>70 use nifti-datatype-le
|
|
>>112 lefloat !0 with scaling
|
|
>>0 use nifti1-dim-le
|
|
>>252 leshort >0 \b, with qform
|
|
>>>252 use xform-code-nifti1-le
|
|
>>254 leshort >0 \b, with sform
|
|
>>>254 use xform-code-nifti1-le
|
|
>>136 string >\0 \b, description: %s
|
|
>0 belong =348 big endian
|
|
>>70 use \^nifti-datatype-le
|
|
>>112 befloat !0 with scaling
|
|
>>0 use \^nifti1-dim-le
|
|
>>252 beshort >0 \b, with qform
|
|
>>>252 use \^xform-code-nifti1-le
|
|
>>254 beshort >0 \b, with sform
|
|
>>>254 use \^xform-code-nifti1-le
|
|
>>136 string >\0 \b, description: %s
|
|
>0 default x
|
|
>>0 long x invalid sizeof_hdr=%d
|
|
|
|
# Main subroutine for NIfTI-2
|
|
0 name nifti2
|
|
>0 clear x
|
|
>0 lelong =540 little endian
|
|
>>12 use nifti-datatype-le
|
|
>>176 lefloat !0 with scaling
|
|
>>0 use nifti2-dim-le
|
|
>>344 lelong >0 \b, with qform
|
|
>>>344 use xform-code-nifti2-le
|
|
>>348 lelong >0 \b, with sform
|
|
>>>348 use xform-code-nifti2-le
|
|
>>240 string >\0 \b, description: %s
|
|
>0 belong =540 big endian
|
|
>>12 use \^nifti-datatype-le
|
|
>>176 befloat !0 with scaling
|
|
>>0 use \^nifti2-dim-le
|
|
>>344 lelong >0 \b, with qform
|
|
>>>344 use \^xform-code-nifti2-le
|
|
>>348 lelong >0 \b, with sform
|
|
>>>348 use \^xform-code-nifti2-le
|
|
>>240 string >\0 \b, description: %s
|
|
>0 default x
|
|
>>0 long x invalid sizeof_hdr=%d
|
|
|
|
|
|
# Other subroutines for details of NIfTI files
|
|
|
|
0 name nifti-datatype-le
|
|
>0 clear x
|
|
>0 leshort =1 \b, binary datatype
|
|
>0 leshort =2 \b, uint8 datatype
|
|
>0 leshort =4 \b, int16 datatype
|
|
>0 leshort =8 \b, int32 datatype
|
|
>0 leshort =16 \b, float32 datatype
|
|
>0 leshort =32 \b, complex64 datatype
|
|
>0 leshort =64 \b, float64 datatype
|
|
>0 leshort =128 \b, RGB24 datatype
|
|
>0 leshort =256 \b, int8 datatype
|
|
>0 leshort =512 \b, uint16 datatype
|
|
>0 leshort =768 \b, uint32 datatype
|
|
>0 leshort =1024 \b, int64 datatype
|
|
>0 leshort =1280 \b, uint64 datatype
|
|
>0 leshort =1536 \b, float128 datatype
|
|
>0 leshort =1792 \b, complex128 datatype
|
|
>0 leshort =2048 \b, complex256 datatype
|
|
>0 leshort =2304 \b, RGBA32 datatype
|
|
>0 default x
|
|
>>0 leshort x \b, unknown datatype 0x%x
|
|
>>2 leshort x (%d bits/pixel)
|
|
|
|
0 name nifti1-dim-le
|
|
>0 clear x
|
|
>40 leshort <0 \b, INVALID dim[0]=%d
|
|
>40 leshort >7 \b, INVALID dim[0]=%d
|
|
>0 default x
|
|
>>40 leshort x \b, %d-dimensional (size
|
|
>>42 leshort x %d
|
|
>>40 leshort >1
|
|
>>>44 leshort x \bx%d
|
|
>>40 leshort >2
|
|
>>>46 leshort x \bx%d
|
|
>>40 leshort >3
|
|
>>>48 leshort x \bx%d
|
|
>>40 leshort >4
|
|
>>>50 leshort x \bx%d
|
|
>>40 leshort >5
|
|
>>>52 leshort x \bx%d
|
|
>>40 leshort >6
|
|
>>>54 leshort x \bx%d
|
|
>>80 lefloat x \b, voxel size %f
|
|
>>40 leshort >1
|
|
>>>84 lefloat x x %f
|
|
>>40 leshort >2
|
|
>>>88 lefloat x x %f
|
|
>>123 use nifti1-xyz-unit
|
|
>>40 leshort >3
|
|
>>>92 lefloat x x %f
|
|
>>>123 use nifti1-t-unit
|
|
>>40 leshort x \b)
|
|
|
|
0 name nifti2-dim-le
|
|
>0 clear x
|
|
>16 lequad <0 \b, INVALID dim[0]=%lld
|
|
>16 lequad >7 \b, INVALID dim[0]=%lld
|
|
>0 default x
|
|
>>16 lequad x \b, %lld-dimensional (size
|
|
>>24 lequad x %lld
|
|
>>16 lequad >1
|
|
>>>32 lequad x \bx%lld
|
|
>>16 lequad >2
|
|
>>>40 lequad x \bx%lld
|
|
>>16 lequad >3
|
|
>>>48 lequad x \bx%lld
|
|
>>16 lequad >4
|
|
>>>56 lequad x \bx%lld
|
|
>>16 lequad >5
|
|
>>>64 lequad x \bx%lld
|
|
>>16 lequad >6
|
|
>>>72 lequad x \bx%lld,
|
|
>>112 ledouble x \b, voxel size %f
|
|
>>16 lequad >1
|
|
>>>120 ledouble x x %f
|
|
>>16 lequad >2
|
|
>>>128 ledouble x x %f
|
|
>>500 use nifti2-xyz-unit
|
|
>>16 lequad >3
|
|
>>>136 ledouble x x %f
|
|
>>>500 use nifti2-t-unit
|
|
>>16 lequad x \b)
|
|
|
|
0 name xform-code-nifti1-le
|
|
>0 leshort =1 to scanner-based coordinates
|
|
>0 leshort =2 to aligned coordinates
|
|
>0 leshort =3 to Talairach coordinates
|
|
>0 leshort =4 to MNI152 coordinates
|
|
>0 leshort =5 to template coordinates
|
|
|
|
0 name xform-code-nifti2-le
|
|
>0 lelong =1 to scanner-based coordinates
|
|
>0 lelong =2 to aligned coordinates
|
|
>0 lelong =3 to Talairach coordinates
|
|
>0 lelong =4 to MNI152 coordinates
|
|
>0 lelong =5 to template coordinates
|
|
|
|
0 name nifti1-xyz-unit
|
|
>0 byte &0x01
|
|
>>0 byte ^0x02 m
|
|
>>0 byte &0x02 micron
|
|
>0 byte ^0x01
|
|
>>0 byte &0x02 mm
|
|
|
|
0 name nifti1-t-unit
|
|
>0 byte &0x08
|
|
>>0 byte ^0x10 s
|
|
>>0 byte &0x10 ms
|
|
>0 byte ^0x08
|
|
>>0 byte &0x10 microsecond
|
|
|
|
0 name nifti2-xyz-unit
|
|
>0 lelong &0x01
|
|
>>0 lelong ^0x02 m
|
|
>>0 lelong &0x02 micron
|
|
>0 lelong ^0x01
|
|
>>0 lelong &0x02 mm
|
|
|
|
0 name nifti2-t-unit
|
|
>0 lelong &0x08
|
|
>>0 lelong ^0x10 s
|
|
>>0 lelong &0x10 ms
|
|
>0 lelong ^0x08
|
|
>>0 lelong &0x10 microsecond
|