dest='backup', help='store backup of overwritten values in Mapillary JSON') args = parser.parse_args() if args.orientation is not None: exifOrientation = format_orientation(args.orientation) s = Sequence(args.path) if args.interpolate: bearings = s.interpolate_direction() for filename in s.get_file_list(args.path): stat = os.stat(filename) exifRead = EXIF(filename) mapillaryTag = json.loads(exifRead.extract_image_description()) if args.interpolate: bearing = bearings[filename] else: bearing = exifRead.extract_direction() if args.offset: bearing = offset_bearing(bearing, args.offset) exifEdit = ExifEdit(filename) if args.interpolate or args.offset: exifEdit.add_direction(bearing, precision=10) if (args.backup): if 'backup' not in mapillaryTag: mapillaryTag['backup'] = {}
sys.exit() if path.lower().endswith(".jpg"): # single file file_list = [path] else: # folder(s) file_list = [] for root, sub_folders, files in os.walk(path): file_list += [ os.path.join(root, filename) for filename in files if filename.lower().endswith(".jpg") ] num_file = len(file_list) for i, filepath in enumerate(file_list): exif = EXIF(filepath) description_ = exif.extract_image_description() exif_edit = ExifEdit(filepath) try: description_ = json.loads(description_) except: description_ = {} if 'MAPSettingsProject' not in description_ or overwrite: description_['MAPSettingsProject'] = project_key description_ = {} exif_edit.add_image_description(description_) exif_edit.write() print("Done, processed %s files" % len(file_list))