1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
from pathlib import Path
import infiray_irg
test_files = sorted(Path('test_pictures').glob('*.irg'))
for f in test_files:
try:
coarse, fine, vis = infiray_irg.load(f.read_bytes(), print_debug_information=True)
print('\033[93m', f'{f.name:>20}', 'Coldest pixel:', fine.min(), 'C', 'Hottest pixel:', fine.max(), 'C', '\033[0m')
except Exception as e:
print(f'Error parsing {f}')
raise e
print()
print('Header diffs:')
for offset, legend in {
0: 'magc hlen coars_len yres xres flg0 unk1 zero fine unk2 jpeg_len_ yres xres emissivit fine_off1 fine_off2 distance_',
64: ' unit gain'}.items():
print(f'{" ":>20}', legend)
test_headers = {f: f.read_bytes()[offset:offset+64] for f in test_files}
header_idx_diffs = [len(set(header[i] for header in test_headers.values())) > 1 for i in range(64)]
for f, header in test_headers.items():
print(f'{str(f.name):>20}', ' '.join(
''.join(
(f'\033[91m{header[i]:02x}' if header_idx_diffs[i] else f'\033[0m{header[i]:02x}')
for i in range(chunk, chunk+2))
for chunk in range(0, 64, 2)
)+'\033[0m')
|