TargetMapping Module Requirements

Objective

Maintain a map of targets that have been identified and allow for the retrieval of targets

Features

Feature

Requirement

Feature

Requirement

1

Database Access Layer: Class

Build a class that maintains an in-memory sqlite database as its state using GeoAlchemy and Spatialite

2

 Database Access Layer: Insert

Function to insert a new point into the target database

3

Database Access Layer: Target Matching

Allow user to check if any points in the database are within a given radius of a point passed into the function.

4

Database Access Layer: Point Finding

Allow user to find all points within a given polygon

5

Target Mapping: Export coordinates of edges of image from geolocation

Add the coordinates of the top left, top right, bottom left and bottom right points in an image to the data structure being exported from the geolocation module.

6

Target Mapping: Target De-Voting

Generate polygon from the coordinates of the edges of the frame. Query target database for all points within the polygon. If any of these points do not show up in the input bounding boxes, then remove votes.

7

Target Mapping: Target Voting

Query target database for a point below a given threshold, using the input bounding box as the center, and add votes to point.

8

Target Mapping: Generate POINT from input bounding box

Write a function that takes in the bounding box in [[x, y]] format and turns it into a POINT which can be used to query the database.

9

Target Mapping: Generate POLYGON from edges of frame

Given 4 points, return a POLYGON object that can be used for a query.

10

Worker function

Take in target coordinates and edges of frame. Generate polygon of frame and point of target. Perform target voting and target de-voting.

References

https://www.mdpi.com/1424-8220/20/1/272

https://geoalchemy-2.readthedocs.io/en/latest/spatialite_tutorial.html