geococo.cli

Attributes

app

Functions

new(json_path)

Initialize a new CocoDataset with user-prompted metadata

copy(source_json, dest_json[, update_meta])

Copy and (optionally) update the metadata of an existing CocoDataset

add(image_path, labels_path, json_path, output_dir, ...)

Transform and add GIS annotations to an existing CocoDataset

Module Contents

geococo.cli.app
geococo.cli.new(json_path)[source]

Initialize a new CocoDataset with user-prompted metadata

Parameters:

json_path (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Output path for new CocoDataset', exists=False, file_okay=True, writable=True, resolve_path=True)])

Return type:

None

geococo.cli.copy(source_json, dest_json, update_meta=True)[source]

Copy and (optionally) update the metadata of an existing CocoDataset

Parameters:
  • source_json (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Path to source CocoDataset', exists=True, readable=True, resolve_path=True)])

  • dest_json (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Output path for copied CocoDataset', exists=True, readable=True, resolve_path=True)])

  • update_meta (typing_extensions.Annotated[bool, typer.Option(help='Whether to prompt the user for new metadata')])

Return type:

None

geococo.cli.add(image_path, labels_path, json_path, output_dir, width, height, id_attribute=None, name_attribute=None, super_attribute=None)[source]

Transform and add GIS annotations to an existing CocoDataset

This method generates a COCO dataset by moving across the given image (image_path) with a moving window (image_size), constantly checking for intersecting annotations (labels_path) that represent image objects in said image (e.g. buildings in satellite imagery; denoted by (super)category name and/or id). Each valid intersection will add n Annotations entries to the dataset (json_path) and save a subset of the input image that contained these entries (output_dir).

The output data size depends on your input labels, as the moving window adjusts its step size to accommodate the average annotation size, optimizing dataset representation and minimizing tool configuration. Each addition will also increment the dataset version: patch if using the same image_path, minor if using a new image_path, and major if using a new output_dir.

Parameters:
  • image_path (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Path to geospatial image containing image objects', exists=True, readable=True, resolve_path=True)])

  • labels_path (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Path to vector file containing annotated image objects', exists=True, readable=True, resolve_path=True)])

  • json_path (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Path to json file containing the COCO dataset', exists=True, readable=True, resolve_path=True)])

  • output_dir (typing_extensions.Annotated[pathlib.Path, typer.Argument(help='Path to output directory for image subsets', exists=True, readable=True, resolve_path=True)])

  • width (typing_extensions.Annotated[int, typer.Argument(help='Width of image subsets')])

  • height (typing_extensions.Annotated[int, typer.Argument(help='Height of image subsets')])

  • id_attribute (typing_extensions.Annotated[Optional[str], typer.Option(help='Name of column containing category_id values (optional if --name_attribute is given)')])

  • name_attribute (typing_extensions.Annotated[Optional[str], typer.Option(help='Name of column containing category_name values (optional if --id_attribute is given)')])

  • super_attribute (typing_extensions.Annotated[Optional[str], typer.Option(help='Name of column containing supercategory values')])

Return type:

None