nautilus: NAUTILUS: A package for analyzing sensor system performance

nautilusR Documentation

NAUTILUS: A package for analyzing sensor system performance

Description

Hello, and welcome to NAUTILUS! NAUTILUS is an R package designed to help you analyze sensor system peformance by comparing the sensor-determined positions of targets to the true (GPS-determined) positions. The overall goal of NAUTILUS is to provide a simple, flexible, and transparent way to explore sensor performance and help answer a wide range of different questions in ways that are easy to explain to others. NAUTILUS is intended for exploratory analysis, rather than rigorous evaluation of radar performance metrics.

Nautilus Input Formats

truthData data frame containing all of the truth data for each target (likely from GPS or land-based radar systems). MUST have the following columns:

  • time: (double) time of measurement. We currently recommend POSIX

  • lon: (double) longitude of target at time of measurement

  • lat: (double) latitude of target at time of measurement

  • alt: (double) altitude of target at time of measurement

  • truthID: (factor) name or identifier for target. We recommend letters or names

  • heading: (double) target heading in degrees azimuth

sensorData: data frame containing each sensor point for all of the tracks. MUST have the following columns:

  • time: (double) time of measurement. We currently recommend POSIX

  • lon: (double) longitude of target at time of measurement

  • lat: (double) latitude of target at time of measurement

  • alt: (double) altitude of target at time of measurement

  • trackNum: (factor) identifier for the track. We recommend numbers for each unique track returned by the sensor system

ownShipData: data frame containing all of the truth position of the sensor system (likely from GPS or land-based radar systems). This may be ownship if testing something on a ship or the lat/lon position of a stationary ststem. MUST have the following columns:

  • time: (double) time of measurement. We currently recommend POSIX

  • lon: (double) longitude of target at time of measurement

  • lat: (double) latitude of target at time of measurement

  • alt: (double) altitude of target at time of measurement

  • truthID: (factor) name or identifier for target. We recommend letters or names

  • heading: (double) sensor system heading in degrees azimuth

Track-to-Truth Association

The primary purpose of Nautilus is to associate track to truth data, which is done in two steps:

  1. target_track_distance(truthData, sensorData,ownShipData)

  2. target_assignment(method, cutoff, ...)

with the output of the first piped into the second. The choices of 'mode' in target_assignment are:

  • "point": point method of target assignment. Calls target_assignment.point(). Requires additional parameters "cutoff"

  • "wholeTrack": whole track method of target assignment. Calls target_assignment.track(). Requires additional parameters "cutoff"

  • "windowSquare": square window method of target assignment. Calls target_assignment.window(), requires additional parameters "cutoff" and "windowSize"

  • "windowGauss": Gaussian window method of target assignment. Calls target_assignment.gauss(). Requires additional parameters "cutoff" and "windowSize"

  • "user": user-specified method of target assignment. Calls target_assignment.user(). Requires additional parameters "userAssignedVector"

For many reasons users may want to run target_assignment() twice. In that case, see target_assignment_secondpass

The ouput of target_assignment is a dataframe with the following columns:

  • lonError: difference in longitude between the sensor point and assigned target at the time of the sensor point

  • latError: difference in latitude between the sensor point and assigned target at the time of the sensor point

  • altError: difference in altitude between the sensor point and assigned target at the time of the sensor point

  • bearingToTarget: bearing (azimuth) to target from ownship at the time of the sensor point

  • trackNum: the track number associated with this sensor data point

  • tgtAssigned: the ID of the target assigned to this sensor point

  • locationError: distance between sensor point and target at the given time

  • pointIndex: index referring to which of the original sensor data points this target-track pair refers. Necessary for comparisons in target_assignment()

  • time: the time that this sensor point was recorded

  • bearingError: difference in bearing between the sensor point and target at the time of the sensor point

  • downrangeError: difference in range to ownship between the sensor point and target

  • lon: longitude of the sensor point

  • lat: latitude of the sensor point

  • alt: altitude of the sensor point

  • rangeToShip: range from target to ownship at the time of the sensor data point

  • targetAspect: target aspect (as seen from ownship) at the time of the sensor data point

  • meanLocationError: (only in square and gauss window methods) mean distance between sensor point and target for all of the points included in the window

  • isFalseTrack: boolean indicating whether a point is outside the cutoff and therefore considered a false track

  • tgtXtrack: factor expressing the truthID.trackNum interaction

  • segmentNumber: an integer counting the number of times during which a single track is assigned to a particular target

Plotting Functions

Nautilus has a wide array of plotting functions:

  • plot_compare_track_status

  • plot_coverage_by_target

  • plot_distance_data

  • plot_distance_data_plotly

  • plot_error

  • plot_overall_coverage

  • plot_polar_error

  • plot_scatterplot_with_density

  • plot_target_assignments

  • plot_target_assignments_plotly

  • plot_track_status

  • plot_track_status_plotly

  • plot_tracks_per_target

  • plot_truth_data

  • plot_truth_data_plotly

  • plot_truth_gaps

Summary Table Functions

Nautilus has several functions that return helpful tables of information:

  • summarize_performance

  • summarize_time_tracked


battleVerse/nautilus documentation built on July 16, 2024, 4:20 a.m.