SonaSoft Navigation API

REST API to access processed sonar data from SonaSoft.

This API is intended to be used to retrieve processed sonar data from SonaSoft, and to provide a means to control SonaSoft. It gives access to the live, ping-to-ping data as well as the history data that is stored locally in a database.

Data can be requested as JSON. Using these interactive docs to test the API is significantly slower than using the API directly, so keep that in mind and test with curl or a similar tool to get a better idea of the performance.

More information: https://www.farsounder.com/software-development-kit
Contact Info: service@farsounder.com
Version: 0.1.0
BasePath:
License Agreement Required for Commercial Use
https://www.farsounder.com/software-development-kit

Access

Methods

[ Jump to Models ]

Table of Contents

HistoryData

ProcessorSettings

RealtimeData

HistoryData

Up
get /api/history_data
Get the latest history data (historyDataApiHistoryDataGet)

Get the latest Local History Mapping data.

This endpoint returns the latest Local History Mapping data from the history database. This includes gridded bottom and inwater detections within the specified radius of the given latitude and longitude. If since_timestamp_utc is specified, then only data that has been collected or updated since that time will be returned. If since_timestamp_utc is not specified, then all the data in the radius will be returned.

The limit and skip parameters can be used to paginate through the data. The total number of records available is returned in the X-Grids-Count header.

Query parameters

latitude (required)
Query Parameter — Latitude in decimal degrees default: null
longitude (required)
Query Parameter — Longitude in decimal degrees default: null
radius_meters (optional)
Query Parameter — Radius within which to query for history data, in Meters default: 500.0
since_timestamp_utc (optional)
Query Parameter — Return data that has been collected or updated since this time in UTC seconds since the linux epoch. If it is not specified, then all the data in the radius will be returned. default: null
skip (optional)
Query Parameter — default: 0
limit (optional)
Query Parameter — default: 500

Return type

HistoryData

Example data

Content-Type: application/json
{
  "gridded_inwater_detections" : [ {
    "longitude_degrees" : 2.027123023002322,
    "latitude_degrees" : 3.616076749251911,
    "timestamp_utc" : 9.301444243932576,
    "deepest_depth_meters" : 1.0246457001441578,
    "is_tide_corrected" : true,
    "uploaded_to_cloud" : true,
    "grid_interval_meters" : 4.145608029883936,
    "target_strength_db" : 7.386281948385884,
    "shallowest_depth_meters" : 1.4894159098541704,
    "number_of_points" : 1
  }, {
    "longitude_degrees" : 2.027123023002322,
    "latitude_degrees" : 3.616076749251911,
    "timestamp_utc" : 9.301444243932576,
    "deepest_depth_meters" : 1.0246457001441578,
    "is_tide_corrected" : true,
    "uploaded_to_cloud" : true,
    "grid_interval_meters" : 4.145608029883936,
    "target_strength_db" : 7.386281948385884,
    "shallowest_depth_meters" : 1.4894159098541704,
    "number_of_points" : 1
  } ],
  "gridded_bottom_detections" : [ {
    "longitude_degrees" : 1.4658129805029452,
    "latitude_degrees" : 6.027456183070403,
    "timestamp_utc" : 0.8008281904610115,
    "depth_meters" : 7.061401241503109,
    "is_tide_corrected" : true,
    "uploaded_to_cloud" : true,
    "grid_interval_meters" : 5.962133916683182,
    "target_strength_db" : 5.637376656633329,
    "number_of_points" : 2
  }, {
    "longitude_degrees" : 1.4658129805029452,
    "latitude_degrees" : 6.027456183070403,
    "timestamp_utc" : 0.8008281904610115,
    "depth_meters" : 7.061401241503109,
    "is_tide_corrected" : true,
    "uploaded_to_cloud" : true,
    "grid_interval_meters" : 5.962133916683182,
    "target_strength_db" : 5.637376656633329,
    "number_of_points" : 2
  } ]
}

Example data

Content-Type: application/json
{
  "detail" : [ {
    "msg" : "msg",
    "loc" : [ "ValidationError_loc_inner", "ValidationError_loc_inner" ],
    "type" : "type"
  }, {
    "msg" : "msg",
    "loc" : [ "ValidationError_loc_inner", "ValidationError_loc_inner" ],
    "type" : "type"
  } ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Successful Response HistoryData

422

Validation Error HTTPValidationError

ProcessorSettings

Up
get /api/processor_settings
Get the current processor settings (processorSettingsApiProcessorSettingsGet)
Get the latest processor settings.

Return type

ProcessorSettings

Example data

Content-Type: application/json
{
  "current_squelch_db" : 5.962133916683182,
  "minimum_squelch_db" : 6.027456183070403,
  "timestamp_utc" : 0.8008281904610115,
  "maximum_squelch_db" : 1.4658129805029452,
  "detect_bottom_enabled" : true,
  "auto_squelch_mode_enabled" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Successful Response ProcessorSettings

Up
patch /api/processor_settings
Change the current processor settings (updateProcessorSettingsApiProcessorSettingsPatch)

Update the current processor settings.

This endpoint is used to change the current processor settings. The settings included in the request will be updated, the rest will be left unchanged.

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

ProcessorSettingsUpdate ProcessorSettingsUpdate (required)
Body Parameter

Return type

ProcessorSettings

Example data

Content-Type: application/json
{
  "current_squelch_db" : 5.962133916683182,
  "minimum_squelch_db" : 6.027456183070403,
  "timestamp_utc" : 0.8008281904610115,
  "maximum_squelch_db" : 1.4658129805029452,
  "detect_bottom_enabled" : true,
  "auto_squelch_mode_enabled" : true
}

Example data

Content-Type: application/json
{
  "detail" : [ {
    "msg" : "msg",
    "loc" : [ "ValidationError_loc_inner", "ValidationError_loc_inner" ],
    "type" : "type"
  }, {
    "msg" : "msg",
    "loc" : [ "ValidationError_loc_inner", "ValidationError_loc_inner" ],
    "type" : "type"
  } ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Successful Response ProcessorSettings

422

Validation Error HTTPValidationError

RealtimeData

Up
get /api/target_data
Get the latest realtime detection data (targetDataApiTargetDataGet)

Get the latest realtime detection data.

This endpoint returns the latest detection data from the realtime processor. This includes realtime detections from the latest ping on any inwater targets as well as the latest detections from the latest ping on any bottom targets.

Return type

TargetData

Example data

Content-Type: application/json
{
  "timestamp_utc" : 0.8008281904610115,
  "heading" : {
    "heading_type" : "",
    "heading" : 6.027456183070403
  },
  "bottom_detections" : [ {
    "down_range_meters" : 7.061401241503109,
    "depth_meters" : 9.301444243932576,
    "target_strength_db" : 3.616076749251911,
    "cross_range_meters" : 2.3021358869347655
  }, {
    "down_range_meters" : 7.061401241503109,
    "depth_meters" : 9.301444243932576,
    "target_strength_db" : 3.616076749251911,
    "cross_range_meters" : 2.3021358869347655
  } ],
  "serial_number" : "serial_number",
  "position" : {
    "longitude_degrees" : 5.962133916683182,
    "latitude_degrees" : 1.4658129805029452,
    "altitude_meters" : 5.637376656633329
  },
  "inwater_detections" : [ {
    "inwater_detection_group" : [ {
      "down_range_meters" : 7.061401241503109,
      "depth_meters" : 9.301444243932576,
      "target_strength_db" : 3.616076749251911,
      "cross_range_meters" : 2.3021358869347655
    }, {
      "down_range_meters" : 7.061401241503109,
      "depth_meters" : 9.301444243932576,
      "target_strength_db" : 3.616076749251911,
      "cross_range_meters" : 2.3021358869347655
    } ]
  }, {
    "inwater_detection_group" : [ {
      "down_range_meters" : 7.061401241503109,
      "depth_meters" : 9.301444243932576,
      "target_strength_db" : 3.616076749251911,
      "cross_range_meters" : 2.3021358869347655
    }, {
      "down_range_meters" : 7.061401241503109,
      "depth_meters" : 9.301444243932576,
      "target_strength_db" : 3.616076749251911,
      "cross_range_meters" : 2.3021358869347655
    } ]
  } ],
  "maximum_depth_meters" : 2.027123023002322,
  "maximum_range_index" : 4
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Successful Response TargetData

Models

[ Jump to Methods ]

Table of Contents

  1. Detection - Detection
  2. FOVType - FOVType
  3. GriddedBottomDetection - GriddedBottomDetection
  4. GriddedInwaterDetection - GriddedInwaterDetection
  5. HTTPValidationError - HTTPValidationError
  6. Heading - Heading
  7. HeadingType - HeadingType
  8. HistoryData - HistoryData
  9. InwaterDetectionGroup - InwaterDetectionGroup
  10. Position - Position
  11. ProcessorSettings - ProcessorSettings
  12. ProcessorSettingsUpdate - ProcessorSettingsUpdate
  13. SystemType - SystemType
  14. TargetData - TargetData
  15. ValidationError - ValidationError
  16. ValidationError_loc_inner -

Detection - Detection Up

cross_range_meters
down_range_meters
depth_meters
target_strength_db

FOVType - FOVType Up

Enum for field of view types.

GriddedBottomDetection - GriddedBottomDetection Up

timestamp_utc
latitude_degrees
longitude_degrees
grid_interval_meters
target_strength_db
is_tide_corrected
uploaded_to_cloud
number_of_points
depth_meters

GriddedInwaterDetection - GriddedInwaterDetection Up

timestamp_utc
latitude_degrees
longitude_degrees
grid_interval_meters
target_strength_db
is_tide_corrected
uploaded_to_cloud
number_of_points
deepest_depth_meters
shallowest_depth_meters

HTTPValidationError - HTTPValidationError Up

detail (optional)

Heading - Heading Up

Data model for heading data.
heading_type (optional)
heading

HeadingType - HeadingType Up

Enum for heading types.

HistoryData - HistoryData Up

Data model for history data.
gridded_bottom_detections
gridded_inwater_detections

InwaterDetectionGroup - InwaterDetectionGroup Up

inwater_detection_group

Position - Position Up

Data model for position data.
latitude_degrees
longitude_degrees
altitude_meters (optional)

ProcessorSettings - ProcessorSettings Up

Data model for processor settings.
system_type
timestamp_utc
minimum_squelch_db
maximum_squelch_db
current_squelch_db
auto_squelch_mode_enabled
detect_bottom_enabled
field_of_view

ProcessorSettingsUpdate - ProcessorSettingsUpdate Up

Data model for updating processor settings.
current_squelch_db (optional)
auto_squelch_mode_enabled (optional)
detect_bottom_enabled (optional)
field_of_view (optional)

SystemType - SystemType Up

Enum for system types.

TargetData - TargetData Up

Data model for target data.
timestamp_utc
serial_number
heading
position
bottom_detections
inwater_detections
maximum_depth_meters
maximum_range_index

ValidationError - ValidationError Up

loc
msg
type

ValidationError_loc_inner - Up