def call_rescale(args):
    path = Path(args.path).resolve()

    time_string = time.strftime("%Y%m%d_%H%M%S", time.localtime())
    Console.set_logging_file(
        get_processed_folder(path) /
        ("log/" + time_string + "_correct_images_rescale.log"))

    correct_config, camerasystem = load_configuration_and_camera_system(
        path, args.suffix)

    # install freeimage plugins if not installed
    imageio.plugins.freeimage.download()

    if correct_config.camerarescale is None:
        Console.error("Camera rescale configuration not found")
        Console.error(
            "Please populate the correct_images.yaml file with a rescale configuration"
        )
        Console.quit("Malformed correct_images.yaml file")

    # obtain parameters for rescale from correct_config
    rescale_cameras = correct_config.camerarescale.rescale_cameras

    for camera in rescale_cameras:
        corrections.rescale_camera(path, camerasystem, camera)
    Console.info("Rescaling completed for all cameras ...")
def call_process(args):
    """Perform processing on source images using correction parameters
    generated in parse and outputs corrected images

    Parameters
    -----------
    args : parse_args object
        User provided arguments for path of source images
    """

    path = Path(args.path).resolve()

    time_string = time.strftime("%Y%m%d_%H%M%S", time.localtime())
    Console.set_logging_file(
        get_processed_folder(path) /
        ("log/" + time_string + "_correct_images_process.log"))

    correct_config, camerasystem = load_configuration_and_camera_system(
        path, args.suffix)

    for camera in camerasystem.cameras:
        Console.info("Processing for camera", camera.name)

        if len(camera.image_list) == 0:
            Console.info(
                "No images found for the camera at the path provided...")
            continue
        else:
            corrector = Corrector(args.force, args.suffix, camera,
                                  correct_config, path)
            if corrector.camera_found:
                corrector.process()
    Console.info("Process completed for all cameras...")
def call_process_data(args):
    time_string = time.strftime("%Y%m%d_%H%M%S", time.localtime())

    Console.set_verbosity(args.verbose)
    Console.set_logging_file(
        get_processed_folder(args.path) /
        ("log/" + time_string + "_auv_nav_process.log"))
    auv_nav_path = get_config_folder(args.path) / "auv_nav.yaml"
    if auv_nav_path.exists():
        auv_nav_path_log = get_processed_folder(
            args.path) / ("log/" + time_string + "_auv_nav.yaml")
        auv_nav_path.copy(auv_nav_path_log)
    process(
        args.path,
        args.force,
        args.start_datetime,
        args.end_datetime,
        args.relative_pose_uncertainty,
        args.start_image_identifier,
        args.end_image_identifier,
    )
def call_parse_data(args):
    time_string = time.strftime("%Y%m%d_%H%M%S", time.localtime())
    Console.set_logging_file(
        get_processed_folder(args.path[0]) /
        ("log/" + time_string + "_auv_nav_parse.log"))
    parse(args.path, args.force, args.merge)