xref: /dflybsd-src/contrib/file/magic/Magdir/nifty (revision 739f0ef867128a933e021db3d831e906fcafd825)
1*3b9cdfa3SAntonio Huete Jimenez
2*3b9cdfa3SAntonio Huete Jimenez#------------------------------------------------------------------------------
3*3b9cdfa3SAntonio Huete Jimenez# $File: nifty,v 1.1 2022/02/14 16:51:15 christos Exp $
4*3b9cdfa3SAntonio Huete Jimenez# file(1) magic for the NIfTI file format
5*3b9cdfa3SAntonio Huete Jimenez
6*3b9cdfa3SAntonio Huete Jimenez# Type: NIfTI, Neuroimaging file format
7*3b9cdfa3SAntonio Huete Jimenez# URL:  https://nifti.nimh.nih.gov/
8*3b9cdfa3SAntonio Huete Jimenez# From: Yann Leprince <yann.leprince@cea.fr>, 2022
9*3b9cdfa3SAntonio Huete Jimenez
10*3b9cdfa3SAntonio Huete Jimenez344	string		n+1\0		NIfTI-1 neuroimaging data,
11*3b9cdfa3SAntonio Huete Jimenez!:mime	image/x.nifti
12*3b9cdfa3SAntonio Huete Jimenez!:ext	nii
13*3b9cdfa3SAntonio Huete Jimenez>0	use		nifti1
14*3b9cdfa3SAntonio Huete Jimenez344	string		ni1\0		NIfTI-1 neuroimaging data header,
15*3b9cdfa3SAntonio Huete Jimenez!:mime	image/x.nifti
16*3b9cdfa3SAntonio Huete Jimenez!:ext	hdr
17*3b9cdfa3SAntonio Huete Jimenez>0	use		nifti1
18*3b9cdfa3SAntonio Huete Jimenez
19*3b9cdfa3SAntonio Huete Jimenez4	string		n+2\0\r\n\032\n	NIfTI-2 neuroimaging data,
20*3b9cdfa3SAntonio Huete Jimenez!:mime	image/x.nifti
21*3b9cdfa3SAntonio Huete Jimenez!:ext	nii
22*3b9cdfa3SAntonio Huete Jimenez>0	use		nifti2
23*3b9cdfa3SAntonio Huete Jimenez4	string		ni2\0\r\n\032\n	NIfTI-2 neuroimaging data header,
24*3b9cdfa3SAntonio Huete Jimenez!:mime	image/x.nifti
25*3b9cdfa3SAntonio Huete Jimenez!:ext	hdr
26*3b9cdfa3SAntonio Huete Jimenez>0	use		nifti2
27*3b9cdfa3SAntonio Huete Jimenez
28*3b9cdfa3SAntonio Huete Jimenez# Main subroutine for NIfTI-1
29*3b9cdfa3SAntonio Huete Jimenez0	name		nifti1
30*3b9cdfa3SAntonio Huete Jimenez>0	clear		x
31*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=348		little endian
32*3b9cdfa3SAntonio Huete Jimenez>>70	use		nifti-datatype-le
33*3b9cdfa3SAntonio Huete Jimenez>>112	lefloat	!0		with scaling
34*3b9cdfa3SAntonio Huete Jimenez>>0	use		nifti1-dim-le
35*3b9cdfa3SAntonio Huete Jimenez>>252	leshort	>0		\b, with qform
36*3b9cdfa3SAntonio Huete Jimenez>>>252	use		xform-code-nifti1-le
37*3b9cdfa3SAntonio Huete Jimenez>>254	leshort	>0		\b, with sform
38*3b9cdfa3SAntonio Huete Jimenez>>>254	use		xform-code-nifti1-le
39*3b9cdfa3SAntonio Huete Jimenez>>136	string		>\0		\b, description: %s
40*3b9cdfa3SAntonio Huete Jimenez>0	belong		=348		big endian
41*3b9cdfa3SAntonio Huete Jimenez>>70	use		\^nifti-datatype-le
42*3b9cdfa3SAntonio Huete Jimenez>>112	befloat	!0		with scaling
43*3b9cdfa3SAntonio Huete Jimenez>>0	use		\^nifti1-dim-le
44*3b9cdfa3SAntonio Huete Jimenez>>252	beshort	>0		\b, with qform
45*3b9cdfa3SAntonio Huete Jimenez>>>252	use		\^xform-code-nifti1-le
46*3b9cdfa3SAntonio Huete Jimenez>>254	beshort	>0		\b, with sform
47*3b9cdfa3SAntonio Huete Jimenez>>>254	use		\^xform-code-nifti1-le
48*3b9cdfa3SAntonio Huete Jimenez>>136	string		>\0		\b, description: %s
49*3b9cdfa3SAntonio Huete Jimenez>0	default	x
50*3b9cdfa3SAntonio Huete Jimenez>>0	long		x		invalid sizeof_hdr=%d
51*3b9cdfa3SAntonio Huete Jimenez
52*3b9cdfa3SAntonio Huete Jimenez# Main subroutine for NIfTI-2
53*3b9cdfa3SAntonio Huete Jimenez0	name		nifti2
54*3b9cdfa3SAntonio Huete Jimenez>0	clear		x
55*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=540		little endian
56*3b9cdfa3SAntonio Huete Jimenez>>12	use		nifti-datatype-le
57*3b9cdfa3SAntonio Huete Jimenez>>176	lefloat	!0		with scaling
58*3b9cdfa3SAntonio Huete Jimenez>>0	use		nifti2-dim-le
59*3b9cdfa3SAntonio Huete Jimenez>>344	lelong		>0		\b, with qform
60*3b9cdfa3SAntonio Huete Jimenez>>>344	use		xform-code-nifti2-le
61*3b9cdfa3SAntonio Huete Jimenez>>348	lelong		>0		\b, with sform
62*3b9cdfa3SAntonio Huete Jimenez>>>348	use		xform-code-nifti2-le
63*3b9cdfa3SAntonio Huete Jimenez>>240	string		>\0		\b, description: %s
64*3b9cdfa3SAntonio Huete Jimenez>0	belong		=540		big endian
65*3b9cdfa3SAntonio Huete Jimenez>>12	use		\^nifti-datatype-le
66*3b9cdfa3SAntonio Huete Jimenez>>176	befloat	!0		with scaling
67*3b9cdfa3SAntonio Huete Jimenez>>0	use		\^nifti2-dim-le
68*3b9cdfa3SAntonio Huete Jimenez>>344	lelong		>0		\b, with qform
69*3b9cdfa3SAntonio Huete Jimenez>>>344	use		\^xform-code-nifti2-le
70*3b9cdfa3SAntonio Huete Jimenez>>348	lelong		>0		\b, with sform
71*3b9cdfa3SAntonio Huete Jimenez>>>348	use		\^xform-code-nifti2-le
72*3b9cdfa3SAntonio Huete Jimenez>>240	string		>\0		\b, description: %s
73*3b9cdfa3SAntonio Huete Jimenez>0	default	x
74*3b9cdfa3SAntonio Huete Jimenez>>0	long		x		invalid sizeof_hdr=%d
75*3b9cdfa3SAntonio Huete Jimenez
76*3b9cdfa3SAntonio Huete Jimenez
77*3b9cdfa3SAntonio Huete Jimenez# Other subroutines for details of NIfTI files
78*3b9cdfa3SAntonio Huete Jimenez
79*3b9cdfa3SAntonio Huete Jimenez0	name		nifti-datatype-le
80*3b9cdfa3SAntonio Huete Jimenez>0	clear		x
81*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=1		\b, binary datatype
82*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=2		\b, uint8 datatype
83*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=4		\b, int16 datatype
84*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=8		\b, int32 datatype
85*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=16		\b, float32 datatype
86*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=32		\b, complex64 datatype
87*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=64		\b, float64 datatype
88*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=128		\b, RGB24 datatype
89*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=256		\b, int8 datatype
90*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=512		\b, uint16 datatype
91*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=768		\b, uint32 datatype
92*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=1024		\b, int64 datatype
93*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=1280		\b, uint64 datatype
94*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=1536		\b, float128 datatype
95*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=1792		\b, complex128 datatype
96*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=2048		\b, complex256 datatype
97*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=2304		\b, RGBA32 datatype
98*3b9cdfa3SAntonio Huete Jimenez>0	default	x
99*3b9cdfa3SAntonio Huete Jimenez>>0	leshort	x		\b, unknown datatype 0x%x
100*3b9cdfa3SAntonio Huete Jimenez>>2	leshort	x		(%d bits/pixel)
101*3b9cdfa3SAntonio Huete Jimenez
102*3b9cdfa3SAntonio Huete Jimenez0	name		nifti1-dim-le
103*3b9cdfa3SAntonio Huete Jimenez>0	clear		x
104*3b9cdfa3SAntonio Huete Jimenez>40	leshort	<0		\b, INVALID dim[0]=%d
105*3b9cdfa3SAntonio Huete Jimenez>40	leshort	>7		\b, INVALID dim[0]=%d
106*3b9cdfa3SAntonio Huete Jimenez>0	default	x
107*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	x		\b, %d-dimensional (size
108*3b9cdfa3SAntonio Huete Jimenez>>42	leshort	x		%d
109*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>1
110*3b9cdfa3SAntonio Huete Jimenez>>>44	leshort	x		\bx%d
111*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>2
112*3b9cdfa3SAntonio Huete Jimenez>>>46	leshort	x		\bx%d
113*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>3
114*3b9cdfa3SAntonio Huete Jimenez>>>48	leshort	x		\bx%d
115*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>4
116*3b9cdfa3SAntonio Huete Jimenez>>>50	leshort	x		\bx%d
117*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>5
118*3b9cdfa3SAntonio Huete Jimenez>>>52	leshort	x		\bx%d
119*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>6
120*3b9cdfa3SAntonio Huete Jimenez>>>54	leshort	x		\bx%d
121*3b9cdfa3SAntonio Huete Jimenez>>80	lefloat	x		\b, voxel size %f
122*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>1
123*3b9cdfa3SAntonio Huete Jimenez>>>84	lefloat	x		x %f
124*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>2
125*3b9cdfa3SAntonio Huete Jimenez>>>88	lefloat	x		x %f
126*3b9cdfa3SAntonio Huete Jimenez>>123	use		nifti1-xyz-unit
127*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	>3
128*3b9cdfa3SAntonio Huete Jimenez>>>92	lefloat	x		x %f
129*3b9cdfa3SAntonio Huete Jimenez>>>123	use		nifti1-t-unit
130*3b9cdfa3SAntonio Huete Jimenez>>40	leshort	x		\b)
131*3b9cdfa3SAntonio Huete Jimenez
132*3b9cdfa3SAntonio Huete Jimenez0	name		nifti2-dim-le
133*3b9cdfa3SAntonio Huete Jimenez>0	clear		x
134*3b9cdfa3SAntonio Huete Jimenez>16	lequad		<0		\b, INVALID dim[0]=%lld
135*3b9cdfa3SAntonio Huete Jimenez>16	lequad		>7		\b, INVALID dim[0]=%lld
136*3b9cdfa3SAntonio Huete Jimenez>0	default	x
137*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		x		\b, %lld-dimensional (size
138*3b9cdfa3SAntonio Huete Jimenez>>24	lequad		x		%lld
139*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>1
140*3b9cdfa3SAntonio Huete Jimenez>>>32	lequad		x		\bx%lld
141*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>2
142*3b9cdfa3SAntonio Huete Jimenez>>>40	lequad		x		\bx%lld
143*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>3
144*3b9cdfa3SAntonio Huete Jimenez>>>48	lequad		x		\bx%lld
145*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>4
146*3b9cdfa3SAntonio Huete Jimenez>>>56	lequad		x		\bx%lld
147*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>5
148*3b9cdfa3SAntonio Huete Jimenez>>>64	lequad		x		\bx%lld
149*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>6
150*3b9cdfa3SAntonio Huete Jimenez>>>72	lequad		x		\bx%lld,
151*3b9cdfa3SAntonio Huete Jimenez>>112	ledouble	x		\b, voxel size %f
152*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>1
153*3b9cdfa3SAntonio Huete Jimenez>>>120	ledouble	x		x %f
154*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>2
155*3b9cdfa3SAntonio Huete Jimenez>>>128	ledouble	x		x %f
156*3b9cdfa3SAntonio Huete Jimenez>>500	use		nifti2-xyz-unit
157*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		>3
158*3b9cdfa3SAntonio Huete Jimenez>>>136	ledouble	x		x %f
159*3b9cdfa3SAntonio Huete Jimenez>>>500	use		nifti2-t-unit
160*3b9cdfa3SAntonio Huete Jimenez>>16	lequad		x		\b)
161*3b9cdfa3SAntonio Huete Jimenez
162*3b9cdfa3SAntonio Huete Jimenez0	name		xform-code-nifti1-le
163*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=1		to scanner-based coordinates
164*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=2		to aligned coordinates
165*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=3		to Talairach coordinates
166*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=4		to MNI152 coordinates
167*3b9cdfa3SAntonio Huete Jimenez>0	leshort	=5		to template coordinates
168*3b9cdfa3SAntonio Huete Jimenez
169*3b9cdfa3SAntonio Huete Jimenez0	name		xform-code-nifti2-le
170*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=1		to scanner-based coordinates
171*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=2		to aligned coordinates
172*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=3		to Talairach coordinates
173*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=4		to MNI152 coordinates
174*3b9cdfa3SAntonio Huete Jimenez>0	lelong		=5		to template coordinates
175*3b9cdfa3SAntonio Huete Jimenez
176*3b9cdfa3SAntonio Huete Jimenez0	name		nifti1-xyz-unit
177*3b9cdfa3SAntonio Huete Jimenez>0	byte		&0x01
178*3b9cdfa3SAntonio Huete Jimenez>>0	byte		^0x02		m
179*3b9cdfa3SAntonio Huete Jimenez>>0	byte		&0x02		micron
180*3b9cdfa3SAntonio Huete Jimenez>0	byte		^0x01
181*3b9cdfa3SAntonio Huete Jimenez>>0	byte		&0x02		mm
182*3b9cdfa3SAntonio Huete Jimenez
183*3b9cdfa3SAntonio Huete Jimenez0	name		nifti1-t-unit
184*3b9cdfa3SAntonio Huete Jimenez>0	byte		&0x08
185*3b9cdfa3SAntonio Huete Jimenez>>0	byte		^0x10		s
186*3b9cdfa3SAntonio Huete Jimenez>>0	byte		&0x10		ms
187*3b9cdfa3SAntonio Huete Jimenez>0	byte		^0x08
188*3b9cdfa3SAntonio Huete Jimenez>>0	byte		&0x10		microsecond
189*3b9cdfa3SAntonio Huete Jimenez
190*3b9cdfa3SAntonio Huete Jimenez0	name		nifti2-xyz-unit
191*3b9cdfa3SAntonio Huete Jimenez>0	lelong		&0x01
192*3b9cdfa3SAntonio Huete Jimenez>>0	lelong		^0x02		m
193*3b9cdfa3SAntonio Huete Jimenez>>0	lelong		&0x02		micron
194*3b9cdfa3SAntonio Huete Jimenez>0	lelong		^0x01
195*3b9cdfa3SAntonio Huete Jimenez>>0	lelong		&0x02		mm
196*3b9cdfa3SAntonio Huete Jimenez
197*3b9cdfa3SAntonio Huete Jimenez0	name		nifti2-t-unit
198*3b9cdfa3SAntonio Huete Jimenez>0	lelong		&0x08
199*3b9cdfa3SAntonio Huete Jimenez>>0	lelong		^0x10		s
200*3b9cdfa3SAntonio Huete Jimenez>>0	lelong		&0x10		ms
201*3b9cdfa3SAntonio Huete Jimenez>0	lelong		^0x08
202*3b9cdfa3SAntonio Huete Jimenez>>0	lelong		&0x10		microsecond
203