-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjfif2csv.py
56 lines (38 loc) · 1.55 KB
/
jfif2csv.py
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env python
# 19. September 2023
# Joakim Skjefstad
import pycathx # From same folder
import glob
import os
import csv
import argparse
def folder_to_csv(folder, csv_filename, verbose=False):
all_images = []
for f in glob.glob(f"{folder}\**\*.jpg", recursive=True):
if os.path.isfile(f):
#jpg_instance = pycathx.CathxImage
all_images.append((f, pycathx.target_file(f)))
f = open(csv_filename, 'w', newline='')
writer = csv.writer(f, quotechar='|', quoting=csv.QUOTE_MINIMAL)
header = ["path", "altitude", "exposure", "aperture", "focus_enc"] # , "analog_gain", "digital_gain" does not seem to change
writer.writerow(header)
for image in all_images:
filename = image[0]
jfif = image[1]
fields = [filename, jfif.altitude, jfif.exposure, jfif.aperture, jfif.focus_enc]
#print(fields)
writer.writerow(fields)
f.close()
print(f"Wrote csv to {csv_filename}")
def main():
parser = argparse.ArgumentParser(prog='jfif2csv',
description='Convert some parameters to csv. Can (will?) be extended to contain all metadata one day.',
epilog='For more information, read source code.')
parser.add_argument("-folder", type=str, nargs='?')
args = parser.parse_args()
if args.folder:
folder = args.folder
folder_to_csv(folder, "output.csv")
print("Done, did you get expected output? Remember to add -folder=\"foldername\". Default output is output.csv")
if __name__=='__main__':
main()