def process_user_properties(import_path, user_name, organization_username=None, organization_key=None, private=False, master_upload=False, verbose=False, rerun=False, skip_subfolders=False): # basic check for all import_path = os.path.abspath(import_path) if not os.path.isdir(import_path): print("Error, import directory " + import_path + " doesnt not exist, exiting...") sys.exit() # get list of file to process process_file_list = processing.get_process_file_list( import_path, "user_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run user process") print( "If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun" ) # sanity checks if not user_name: print("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list(process_file_list, "user_process", "failed", verbose) return if private and not organization_username and not organization_key: print( "Error, if the import belongs to a private repository, you need to provide a valid organization user name or key to which the private repository belongs to, exiting..." ) processing.create_and_log_process_in_list(process_file_list, "user_process", "failed", verbose) return # function calls if not master_upload: user_properties = processing.user_properties(user_name, import_path, process_file_list, organization_username, organization_key, private, verbose) else: user_properties = processing.user_properties_master( user_name, import_path, process_file_list, organization_key, private, verbose) # write data and logs processing.create_and_log_process_in_list(process_file_list, "user_process", "success", verbose, user_properties)
def process_upload_params(import_path, user_name, master_upload=False, verbose=False, rerun=False, skip_subfolders=False): # basic check for all import_path = os.path.abspath(import_path) if not os.path.isdir(import_path): print("Error, import directory " + import_path + " doesnt not exist, exiting...") sys.exit() # get list of file to process process_file_list = processing.get_process_file_list( import_path, "upload_params_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run upload params process") print( "If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun" ) # sanity checks if not user_name: print("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list( process_file_list, "upload_params_process" "failed", verbose) return if not master_upload: try: credentials = uploader.authenticate_user(user_name) except: print("Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list( process_file_list, "upload_params_process" "failed", verbose) return if credentials == None or "user_upload_token" not in credentials or "user_permission_hash" not in credentials or "user_signature_hash" not in credentials: print("Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list( process_file_list, "upload_params_process" "failed", verbose) return user_upload_token = credentials["user_upload_token"] user_permission_hash = credentials["user_permission_hash"] user_signature_hash = credentials["user_signature_hash"] user_key = credentials["MAPSettingsUserKey"] for image in process_file_list: # check the status of the sequence processing log_root = uploader.log_rootpath(image) duplicate_flag_path = os.path.join(log_root, "duplicate") upload_params_path = os.path.join(log_root, "upload_params_process.json") if os.path.isfile(upload_params_path): os.remove(upload_params_path) if os.path.isfile(duplicate_flag_path) or master_upload: continue upload_params_properties = processing.get_upload_param_properties( log_root, image, user_name, user_upload_token, user_permission_hash, user_signature_hash, user_key, verbose) processing.create_and_log_process(image, "upload_params_process", "success", upload_params_properties, verbose=verbose) # flag manual upload log_manual_upload = os.path.join(log_root, "manual_upload") open(log_manual_upload, 'a').close()
def process_geotag_properties(import_path, geotag_source="exif", geotag_source_path=None, offset_time=0.0, offset_angle=0.0, local_time=False, sub_second_interval=0.0, use_gps_start_time=False, verbose=False, rerun=False, skip_subfolders=False): # basic check for all import_path = os.path.abspath(import_path) if not os.path.isdir(import_path): print("Error, import directory " + import_path + " doesnt not exist, exiting...") sys.exit() # get list of file to process process_file_list = processing.get_process_file_list( import_path, "geotag_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run geotag process") print( "If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun" ) # sanity checks if geotag_source_path == None and geotag_source != "exif": # if geotagging from external log file, path to the external log file # needs to be provided, if not, exit print( "Error, if geotagging from external log, rather than image EXIF, you need to provide full path to the log file." ) processing.create_and_log_process_in_list(process_file_list, "geotag_process" "failed", verbose) return elif geotag_source != "exif" and not os.path.isfile(geotag_source_path): print( "Error, " + geotag_source_path + " file source of gps/time properties does not exist. If geotagging from external log, rather than image EXIF, you need to provide full path to the log file." ) processing.create_and_log_process_in_list(process_file_list, "geotag_process" "failed", verbose) return # function calls if geotag_source == "exif": geotag_properties = processing.geotag_from_exif( process_file_list, import_path, offset_angle, verbose) elif geotag_source == "gpx" or geotag_source == "nmea": geotag_properties = processing.geotag_from_gps_trace( process_file_list, import_path, geotag_source, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "csv": geotag_properties = processing.geotag_from_csv(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, verbose) elif geotag_source == "gopro_video": geotag_properties = processing.geotag_from_gopro_video( process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "json": geotag_properties = processing.geotag_from_json( process_file_list, import_path, geotag_source_path, offset_time, offset_angle, verbose)
def process_geotag_properties(import_path, geotag_source="exif", geotag_source_path=None, offset_time=0.0, offset_angle=0.0, local_time=False, sub_second_interval=0.0, use_gps_start_time=False, verbose=False, rerun=False, skip_subfolders=False, video_file=None): # sanity check if video file is passed if video_file and not (os.path.isdir(video_file) or os.path.isfile(video_file)): print("Error, video path " + video_file + " does not exist, exiting...") sys.exit(1) # in case of video processing, adjust the import path if video_file: # set sampling path video_sampling_path = processing.sampled_video_frames_rootpath( video_file) import_path = os.path.join( os.path.abspath(import_path), video_sampling_path) if import_path else os.path.join( os.path.dirname(video_file), video_sampling_path) # basic check for all if not import_path or not os.path.isdir(import_path): print("Error, import directory " + import_path + " does not exist, exiting...") sys.exit(1) # get list of file to process process_file_list = processing.get_process_file_list( import_path, "geotag_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run geotag process") print( "If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun" ) # sanity checks if geotag_source_path == None and geotag_source != "exif": # if geotagging from external log file, path to the external log file # needs to be provided, if not, exit print( "Error, if geotagging from external log, rather than image EXIF, you need to provide full path to the log file." ) processing.create_and_log_process_in_list(process_file_list, "geotag_process" "failed", verbose) sys.exit(1) elif geotag_source != "exif" and not os.path.isfile( geotag_source_path) and not os.path.isdir(geotag_source_path): print( "Error, " + geotag_source_path + " file source of gps/time properties does not exist. If geotagging from external log, rather than image EXIF, you need to provide full path to the log file." ) processing.create_and_log_process_in_list(process_file_list, "geotag_process" "failed", verbose) sys.exit(1) # function calls if geotag_source == "exif": geotag_properties = processing.geotag_from_exif( process_file_list, import_path, offset_angle, verbose) elif geotag_source == "gpx" or geotag_source == "nmea": geotag_properties = processing.geotag_from_gps_trace( process_file_list, import_path, geotag_source, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "csv": geotag_properties = processing.geotag_from_csv(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, verbose) elif geotag_source == "gopro_video": geotag_properties = processing.geotag_from_gopro_video( process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "blackvue_videos": geotag_properties = processing.geotag_from_blackvue_video( process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "json": geotag_properties = processing.geotag_from_json( process_file_list, import_path, geotag_source_path, offset_time, offset_angle, verbose) print("Sub process finished")
def process_geotag_properties(import_path, geotag_source="exif", geotag_source_path=None, offset_time=0.0, offset_angle=0.0, local_time=False, sub_second_interval=0.0, use_gps_start_time=False, verbose=False, rerun=False, skip_subfolders=False, video_import_path=None): # sanity check if video file is passed if video_import_path and not os.path.isdir(video_import_path) and not os.path.isfile(video_import_path): print("Error, video path " + video_import_path + " does not exist, exiting...") sys.exit(1) # in case of video processing, adjust the import path if video_import_path: # set sampling path video_sampling_path = "mapillary_sampled_video_frames" video_dirname = video_import_path if os.path.isdir( video_import_path) else os.path.dirname(video_import_path) import_path = os.path.join(os.path.abspath(import_path), video_sampling_path) if import_path else os.path.join( os.path.abspath(video_dirname), video_sampling_path) # basic check for all if not import_path or not os.path.isdir(import_path): print_error("Error, import directory " + import_path + " does not exist, exiting...") sys.exit(1) # get list of file to process process_file_list = processing.get_process_file_list(import_path, "geotag_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run geotag process") print("If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun") # sanity checks if geotag_source_path == None and geotag_source != "exif": # if geotagging from external log file, path to the external log file # needs to be provided, if not, exit print_error( "Error, if geotagging from external log, rather than image EXIF, you need to provide full path to the log file.") processing.create_and_log_process_in_list(process_file_list, "geotag_process" "failed", verbose) sys.exit(1) elif geotag_source != "exif" and not os.path.isfile(geotag_source_path) and not os.path.isdir(geotag_source_path): print_error("Error, " + geotag_source_path + " file source of gps/time properties does not exist. If geotagging from external log, rather than image EXIF, you need to provide full path to the log file.") processing.create_and_log_process_in_list(process_file_list, "geotag_process" "failed", verbose) sys.exit(1) # function calls if geotag_source == "exif": geotag_properties = processing.geotag_from_exif(process_file_list, import_path, offset_time, offset_angle, verbose) elif geotag_source == "gpx" or geotag_source == "nmea": geotag_properties = processing.geotag_from_gps_trace(process_file_list, geotag_source, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "gopro_videos": geotag_properties = processing.geotag_from_gopro_video(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "blackvue_videos": geotag_properties = processing.geotag_from_blackvue_video(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) print("Sub process ended")
def process_user_properties(import_path, user_name, organization_username=None, organization_key=None, private=False, master_upload=False, verbose=False, rerun=False, skip_subfolders=False, video_file=None): # sanity check if video file is passed if video_file and not (os.path.isdir(video_file) or os.path.isfile(video_file)): print("Error, video path " + video_file + " does not exist, exiting...") sys.exit(1) # in case of video processing, adjust the import path if video_file: # set sampling path video_sampling_path = processing.sampled_video_frames_rootpath( video_file) import_path = os.path.join( os.path.abspath(import_path), video_sampling_path) if import_path else os.path.join( os.path.dirname(video_file), video_sampling_path) # basic check for all if not import_path or not os.path.isdir(import_path): print("Error, import directory " + import_path + " does not exist, exiting...") sys.exit(1) # get list of file to process process_file_list = processing.get_process_file_list( import_path, "user_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run user process") print( "If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun" ) # sanity checks if not user_name: print("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list(process_file_list, "user_process", "failed", verbose) sys.exit(1) if private and not organization_username and not organization_key: print( "Error, if the import belongs to a private repository, you need to provide a valid organization user name or key to which the private repository belongs to, exiting..." ) processing.create_and_log_process_in_list(process_file_list, "user_process", "failed", verbose) sys.exit(1) # function calls if not master_upload: user_properties = processing.user_properties(user_name, import_path, process_file_list, organization_username, organization_key, private, verbose) else: user_properties = processing.user_properties_master( user_name, import_path, process_file_list, organization_key, private, verbose) # write data and logs processing.create_and_log_process_in_list(process_file_list, "user_process", "success", verbose, user_properties) print("Sub process ended")
def process_upload_params(import_path, user_name, master_upload=False, verbose=False, rerun=False, skip_subfolders=False, video_import_path=None): # sanity check if video file is passed if video_import_path and not os.path.isdir( video_import_path) and not os.path.isfile(video_import_path): print("Error, video path " + video_import_path + " does not exist, exiting...") sys.exit(1) # in case of video processing, adjust the import path if video_import_path: # set sampling path video_sampling_path = "mapillary_sampled_video_frames" video_dirname = video_import_path if os.path.isdir( video_import_path) else os.path.dirname(video_import_path) import_path = os.path.join( os.path.abspath(import_path), video_sampling_path) if import_path else os.path.join( os.path.abspath(video_dirname), video_sampling_path) # basic check for all if not import_path or not os.path.isdir(import_path): print_error("Error, import directory " + import_path + " does not exist, exiting...") sys.exit(1) # get list of file to process process_file_list = processing.get_process_file_list( import_path, "upload_params_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run upload params process") print( "If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun" ) # sanity checks if not user_name: print_error("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list( process_file_list, "upload_params_process" "failed", verbose) sys.exit(1) if not master_upload: try: credentials = uploader.authenticate_user(user_name) except: print_error("Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list( process_file_list, "upload_params_process" "failed", verbose) sys.exit(1) if credentials == None or "user_upload_token" not in credentials or "user_permission_hash" not in credentials or "user_signature_hash" not in credentials: print_error("Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list( process_file_list, "upload_params_process" "failed", verbose) sys.exit(1) user_upload_token = credentials["user_upload_token"] user_permission_hash = credentials["user_permission_hash"] user_signature_hash = credentials["user_signature_hash"] user_key = credentials["MAPSettingsUserKey"] for image in tqdm(process_file_list, desc="Processing image upload parameters"): # check the status of the sequence processing log_root = uploader.log_rootpath(image) duplicate_flag_path = os.path.join(log_root, "duplicate") upload_params_path = os.path.join(log_root, "upload_params_process.json") if os.path.isfile(upload_params_path): os.remove(upload_params_path) if os.path.isfile(duplicate_flag_path) or master_upload: continue upload_params_properties = processing.get_upload_param_properties( log_root, image, user_name, user_upload_token, user_permission_hash, user_signature_hash, user_key, verbose) processing.create_and_log_process(image, "upload_params_process", "success", upload_params_properties, verbose=verbose) # flag manual upload log_manual_upload = os.path.join(log_root, "manual_upload") open(log_manual_upload, 'a').close() print("Sub process ended")
def process_user_properties(import_path, user_name, organization_username=None, organization_key=None, private=False, master_upload=False, verbose=False, rerun=False, skip_subfolders=False, video_import_path=None): # sanity check if video file is passed if video_import_path and not os.path.isdir(video_import_path) and not os.path.isfile(video_import_path): print("Error, video path " + video_import_path + " does not exist, exiting...") sys.exit(1) # in case of video processing, adjust the import path if video_import_path: # set sampling path video_sampling_path = "mapillary_sampled_video_frames" video_dirname = video_import_path if os.path.isdir( video_import_path) else os.path.dirname(video_import_path) import_path = os.path.join(os.path.abspath(import_path), video_sampling_path) if import_path else os.path.join( os.path.abspath(video_dirname), video_sampling_path) # basic check for all if not import_path or not os.path.isdir(import_path): print_error("Error, import directory " + import_path + " does not exist, exiting...") sys.exit(1) # get list of file to process process_file_list = processing.get_process_file_list(import_path, "user_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run user process") print("If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun") # sanity checks if not user_name: print_error("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list(process_file_list, "user_process", "failed", verbose) sys.exit(1) if private and not organization_username and not organization_key: print_error("Error, if the import belongs to a private repository, you need to provide a valid organization user name or key to which the private repository belongs to, exiting...") processing.create_and_log_process_in_list(process_file_list, "user_process", "failed", verbose) sys.exit(1) # function calls if not master_upload: user_properties = processing.user_properties(user_name, import_path, process_file_list, organization_username, organization_key, private, verbose) else: user_properties = processing.user_properties_master(user_name, import_path, process_file_list, organization_key, private, verbose) # write data and logs processing.create_and_log_process_in_list(process_file_list, "user_process", "success", verbose, user_properties) print("Sub process ended")
def process_upload_params(import_path, user_name, master_upload=False, verbose=False, rerun=False, skip_subfolders=False, video_import_path=None): # sanity check if video file is passed if video_import_path and not os.path.isdir(video_import_path) and not os.path.isfile(video_import_path): print("Error, video path " + video_import_path + " does not exist, exiting...") sys.exit(1) # in case of video processing, adjust the import path if video_import_path: # set sampling path video_sampling_path = "mapillary_sampled_video_frames" video_dirname = video_import_path if os.path.isdir( video_import_path) else os.path.dirname(video_import_path) import_path = os.path.join(os.path.abspath(import_path), video_sampling_path) if import_path else os.path.join( os.path.abspath(video_dirname), video_sampling_path) # basic check for all if not import_path or not os.path.isdir(import_path): print_error("Error, import directory " + import_path + " does not exist, exiting...") sys.exit(1) # get list of file to process process_file_list = processing.get_process_file_list(import_path, "upload_params_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run upload params process") print("If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun") # sanity checks if not user_name: print_error("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list(process_file_list, "upload_params_process" "failed", verbose) sys.exit(1) if not master_upload: try: credentials = uploader.authenticate_user(user_name) except: print_error( "Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list(process_file_list, "upload_params_process" "failed", verbose) sys.exit(1) if credentials == None or "user_upload_token" not in credentials or "user_permission_hash" not in credentials or "user_signature_hash" not in credentials: print_error( "Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list(process_file_list, "upload_params_process" "failed", verbose) sys.exit(1) user_upload_token = credentials["user_upload_token"] user_permission_hash = credentials["user_permission_hash"] user_signature_hash = credentials["user_signature_hash"] user_key = credentials["MAPSettingsUserKey"] for image in tqdm(process_file_list, desc="Processing image upload parameters"): # check the status of the sequence processing log_root = uploader.log_rootpath(image) duplicate_flag_path = os.path.join(log_root, "duplicate") upload_params_path = os.path.join( log_root, "upload_params_process.json") if os.path.isfile(upload_params_path): os.remove(upload_params_path) if os.path.isfile(duplicate_flag_path) or master_upload: continue upload_params_properties = processing.get_upload_param_properties(log_root, image, user_name, user_upload_token, user_permission_hash, user_signature_hash, user_key, verbose) processing.create_and_log_process(image, "upload_params_process", "success", upload_params_properties, verbose=verbose) # flag manual upload log_manual_upload = os.path.join( log_root, "manual_upload") open(log_manual_upload, 'a').close() print("Sub process ended")
def process_upload_params(import_path, user_name, master_upload=False, verbose=False, rerun=False, skip_subfolders=False): # basic check for all import_path = os.path.abspath(import_path) if not os.path.isdir(import_path): print("Error, import directory " + import_path + " doesnt not exist, exiting...") sys.exit() # get list of file to process process_file_list = processing.get_process_file_list(import_path, "upload_params_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run upload params process") print("If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun") # sanity checks if not user_name: print("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list(process_file_list, import_path, "upload_params_process" "failed", verbose) return if not master_upload: try: credentials = uploader.authenticate_user(user_name) except: print("Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list(process_file_list, import_path, "upload_params_process" "failed", verbose) return if credentials == None or "user_upload_token" not in credentials or "user_permission_hash" not in credentials or "user_signature_hash" not in credentials: print("Error, user authentication failed for user " + user_name) processing.create_and_log_process_in_list(process_file_list, import_path, "upload_params_process" "failed", verbose) return user_upload_token = credentials["user_upload_token"] user_permission_hash = credentials["user_permission_hash"] user_signature_hash = credentials["user_signature_hash"] user_key = credentials["MAPSettingsUserKey"] for image in process_file_list: # check the status of the sequence processing log_root = uploader.log_rootpath(import_path, image) duplicate_flag_path = os.path.join(log_root, "duplicate") upload_params_path = os.path.join( log_root, "upload_params_process.json") if os.path.isfile(upload_params_path): os.remove(upload_params_path) if os.path.isfile(duplicate_flag_path) or master_upload: continue upload_params_properties = processing.get_upload_param_properties(log_root, image, user_name, user_upload_token, user_permission_hash, user_signature_hash, user_key, verbose) processing.create_and_log_process(image, import_path, "upload_params_process", "success", upload_params_properties, verbose=verbose) # flag manual upload log_manual_upload = os.path.join( log_root, "manual_upload") open(log_manual_upload, 'a').close()
def process_geotag_properties(import_path, geotag_source="exif", geotag_source_path=None, offset_time=0.0, offset_angle=0.0, local_time=False, sub_second_interval=0.0, use_gps_start_time=False, verbose=False, rerun=False, skip_subfolders=False): # basic check for all import_path = os.path.abspath(import_path) if not os.path.isdir(import_path): print("Error, import directory " + import_path + " doesnt not exist, exiting...") sys.exit() # get list of file to process process_file_list = processing.get_process_file_list(import_path, "geotag_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run geotag process") print("If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun") # sanity checks if geotag_source_path == None and geotag_source != "exif": # if geotagging from external log file, path to the external log file # needs to be provided, if not, exit print("Error, if geotagging from external log, rather than image EXIF, you need to provide full path to the log file.") processing.create_and_log_process_in_list(process_file_list, import_path, "geotag_process" "failed", verbose) return elif geotag_source != "exif" and not os.path.isfile(geotag_source_path): print("Error, " + geotag_source_path + " file source of gps/time properties does not exist. If geotagging from external log, rather than image EXIF, you need to provide full path to the log file.") processing.create_and_log_process_in_list(process_file_list, import_path, "geotag_process" "failed", verbose) return # function calls if geotag_source == "exif": geotag_properties = processing.geotag_from_exif(process_file_list, import_path, offset_angle, verbose) elif geotag_source == "gpx": geotag_properties = processing.geotag_from_gpx(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "csv": geotag_properties = processing.geotag_from_csv(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, verbose) elif geotag_source == "gopro_video": geotag_properties = processing.geotag_from_gopro_video(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, local_time, sub_second_interval, use_gps_start_time, verbose) elif geotag_source == "json": geotag_properties = processing.geotag_from_json(process_file_list, import_path, geotag_source_path, offset_time, offset_angle, verbose)
def process_user_properties(import_path, user_name, organization_username=None, organization_key=None, private=False, master_upload=False, verbose=False, rerun=False, skip_subfolders=False): # basic check for all import_path = os.path.abspath(import_path) if not os.path.isdir(import_path): print("Error, import directory " + import_path + " doesnt not exist, exiting...") sys.exit() # get list of file to process process_file_list = processing.get_process_file_list(import_path, "user_process", rerun, verbose, skip_subfolders) if not len(process_file_list): print("No images to run user process") print("If the images have already been processed and not yet uploaded, they can be processed again, by passing the argument --rerun") # sanity checks if not user_name: print("Error, must provide a valid user name, exiting...") processing.create_and_log_process_in_list(process_file_list, import_path, "user_process", "failed", verbose) return if private and not organization_username and not organization_key: print("Error, if the import belongs to a private repository, you need to provide a valid organization user name or key to which the private repository belongs to, exiting...") processing.create_and_log_process_in_list(process_file_list, import_path, "user_process", "failed", verbose) return # function calls if not master_upload: user_properties = processing.user_properties(user_name, import_path, process_file_list, organization_username, organization_key, private, verbose) else: user_properties = processing.user_properties_master(user_name, import_path, process_file_list, organization_key, private, verbose) # write data and logs processing.create_and_log_process_in_list(process_file_list, import_path, "user_process", "success", verbose, user_properties)