Skip to end of metadata
Go to start of metadata

ARIS Sonar Data

The ARIS Explorer 3000 sonar is a non-rotating multibeam sonar, operating at a frequency of 3 Mhz with 128 beams. The sonar covers 28 degrees horizontally and 14 degrees vertically, with the beams along the horizontal (in normal deployments).  For more information, see the manufacturer's website: http://www.soundmetrics.com.The ARIS solfware ARIScope can be requested through the Sound Metrics website http://www.soundmetrics.com (go to the support page) or Contact us.

Revision History

  1. April 4th, 2017: Initial release

Data Product Options

None at this time.

Formats

The ARIS sonar outputs data at such a high rate and density that individual sonar images are not useful. Instead, most users will be interested in the MP4 videos made from the ARIS data. The videos use a frame rate equal to that of sonar, so the video duration should be the same duration as the duty cycle of the instrument. If the video is shorter that expected, it is likely that a few sonar image frames were dropped due to data transmission congestion (the sonar uses UDP transmission over Ethernet, so there is no guarantee of packet delivery). Raw data is handled by the Oceans 2.0 device driver, archived, then converted to manufacturer's format ARIS files. MAT files, which are generated from ARIS files, are available on-demand. MAT files are an intermediate product from which users can make plots or do analysis. MP4 video files, also generated from ARIS files, are archived and stored for fast retrieval, but will be generated on-the-fly if the post-processing and archiving is delayed.

Each sonar and video frame has an accurate time stamp from the ARIS sonar itself. This time is synchronized by the device driver every hour and included in all the data product formats (ARIS, MAT MP4). This frame time will be slightly different from the time in the file-names as that time is when the data was received at the shorestation, the difference being the normal latency over the network.

ARIS

These files are Sound Metric's custom format files for the ARIS sonar, used by the ARIScope software. Here's an example:

MAT

MAT files (v7) can be opened using Mathworks Matlab 7.0 or later. The file contains three structures, Meta, Data and Config.

Meta: a structure array containing the following metadata fields:
  • deviceID: A unique identifier to represent the instrument within the Ocean Networks Canada data management and archiving system.
  • creationDate:Date and time (using ISO8601 format) that the data product was produced. This is a valuable indicator for comparing to other revisions of the same data product.
  • deviceName: A name given to the instrument.
  • deviceCode: A unique string for the instrument which is used to generate data product filenames.
  • deviceCategory: Device category to list under data search ('Echosounder').
  • deviceCategoryCode: Code representing the device category. Used for accessing webservices, as described here: API / webservice documentation (log in to see this link).
  • lat: Fixed value obtained at time of deployment. Will be NaN if mobile or if both site latitude and device offset are null. If mobile, sensor information will be available in mobilePositionSensor structure..
  • lon: Fixed value obtained at time of deployment. Will be NaN if mobile or if both site longitude and device offset are null. If mobile, sensor information will be available in mobilePositionSensor structure.
  • depth: Fixed value obtained at time of deployment. Will be NaN if mobile or if both site depth and device offset are null. If mobile, sensor information will be available in mobilePositionSensor structure.
  • deviceHeading: Fixed value obtained at time of deployment. Will be NaN if mobile or if both site heading and device offset are null. If mobile, sensor information will be available in mobilePositionSensor structure.
  • devicePitch: Fixed value obtained at time of deployment. Will be NaN if mobile or if both site pitch and device offset are null. If mobile, sensor information will be available in mobilePositionSensor structure.
  • deviceRoll: Fixed value obtained at time of deployment. Will be NaN if mobile or if both site roll and device offset are null. If mobile, sensor information will be available in mobilePositionSensor structure.
  • siteName: Name corresponding to its latitude, longitude, depth position.
  • stationCode: Code representing the station or site. Used for accessing webservices, as described here: API / webservice documentation (log in to see this link).
  • locationName: The node of the Ocean Networks Canada observatory. Each location contains many sites.
  • dataQualityComments: In some cases, there are particular quality-related issues that are mentioned here. This is distinct from QAQC information contained in the data structure.
  • MobilePositionSensor.name: A cell array of sensor names for mobile position sensors. If not a mobile device, this will be an empty cell string.
  • MobilePositionSensor.sensorID: An array of unique identifiers of sensors that provide position data for mobile devices - this data may be used in this data product.
  • MobilePositionSensor.deviceID: An array of unique identifiers of sensors that provide position data for mobile devices - this data may be used in this data product.
  • MobilePositionSensor.dateFrom: An array of datenums denoting the range of applicability of each mobile position sensor - this data may be used in this data product.
  • MobilePositionSensor.dateTo: An array of datenums denoting the range of applicability of each mobile position sensor - this data may be used in this data product.
  • MobilePositionSensor.typeName: A cell array of sensor names for mobile position sensors. If not a mobile device, this will be an empty cell string. One of: Latitude, Longitude, Depth, COMPASS_SENSOR, Pitch, Roll.
  • MobilePositionSensor.offset: An array of offsets between the mobile position sensors' values and the position of the device (for instance, if cabled profiler has a depth sensor that is 1.2 m above the device, the offset will be -1.2m).
  • MobilePositionSensor.sensorTypeID: An array of unique identifiers for the sensor type.
  • MobilePositionSensor.correctedSensorID: An array of unique identifiers of sensors that provide corrected mobile positioning data. This is generally used for profiling deployments where the latency is corrected for: CTD casts primarily.
  • deploymentDateFrom: The date of the deployment on which the data was acquired.
  • deploymentDateTo: The date of the end of the deployment on which the data was acquired (may be omitted if still deployed).
  • samplingPeriod: Sampling rate of the instrument in seconds (maybe omitted on some devices that have no scalar sensors).
  • samplingPeriodDateFrom: matlab datenum of the start of the corresponding sample period (maybe omitted on some devices that have no scalar sensors).
  • samplingPeriodDateTo: matlab datenum of the end of the corresponding sample period (maybe omitted on some devices that have no scalar sensors).
  • searchID: unique number tracking this search request (not normally included).
  • Attribution: A structure array with Attribution information, ordered by importance and date. For internal users, go to the Network Console to configure the attributions. If an organization has more than one role it will be collated. If there are gaps in the date ranges, they are filled in with the default Ocean Networks Canada citation. If the "Attribution Required?" field is set to "No" on the Network Console then the citation will not appear. For data products with a attribution (except MAT files) and for users making products from a MAT file, if the special attribution is blank/null, then the company default attribution will be used and if it is also blank/null, then the final attribution will consist of the organization name and role: "Ocean Networks Canada (Owner, Collaborator)". Here are the fields:
    • acknowledgement: the acknowledgement text, note that if the special acknowledgement blank/null, the default acknowledgement is used.
    • startDate: datenum format
    • endDate: datenum format
    • organizationName
    • organizationRole

Data: a structure with the following fields:

  • frameIndex – frame number in file
  • frameTime -  PC time stamp when recorded; microseconds since epoch (Jan 1st 1970). Units in mircoseconds
  • sonarTimeStamp - on-sonar microseconds since epoch (Jan 1st 1970)
  • ts_Day -  not documented
  • ts_Hour - not documented
  • ts_Minute - not documented
  • ts_Second - not documented
  • ts_Hsecond - not documented
  • humidity - relative humidity
  • velocity - platform velocity from AUV integration
  • depth - platform depth from AUV integration
  • pitch - platform pitch from AUV integration
  • pitchRate - platform pitch rate from AUV integration
  • roll - platform roll from AUV integration
  • rollRate - platform roll rate from AUV integration
  • heading - platform heading from AUV integration
  • headingRate - platform heading rate from AUV integration
  • compassHeading - sonar compass heading output
  • compassPitch - sonar compass pitch output
  • compassRoll - sonar compass roll output
  • beamTilt - not documented
  • targetRange - not documented
  • targetBearing - not documented
  • targetPresent - not documented
  • flags – Bad Data points in the acustic data
  • WaterTemp - water temperature from housing temperature sensor
  • timerPeriod - not documented
  • sonarX - sonar X location for 3D processing
  • sonarY - sonar Y location for 3D processing
  • sonarZ - sonar Z location for 3D processing
  • sonarPan – X2 pan output
  • sonarTilt – X2 Tilt output
  • sonar Roll– X2 Roll output
  • panPNNL - not documented
  • tiltPNNL - not documented
  • rollPNNL - not documented
  • vehicleTime - special for Bluefin HAUV or other AUV integration
  • SonarPanOffset - sonar mount location pan offset for 3D processing; meters
  • SonartiltOffset - sonar mount location tilt offset for 3D processing; meters
  • SonarRollOffset - sonar mount location roll offset for 3D processing; meters
  • SonarXOffset - sonar mount location X offset for 3D processing; meters
  • SonarYOffset - sonar mount location Y offset for 3D processing; meters
  • SonarZOffset - sonar mount location Z offset for 3D processing; meters
  • tmatrix - 3D processing transformation 4x4 matrix
  • accellX - X-axis sonar acceleration
  • accellY - Yaxis sonar acceleration
  • accellZ- Zaxis sonar acceleration
  • arisErrorFlagsUint - error flag code bits
  • missedPackets - missed packet count for Ethernet statistics reporting
  • salinity - water salinity code:  0 = fresh, 15 = brackish, 35 = salt
  • pressure - depth sensor output, units in psi
  • batteryVoltage - battery input voltage before power steering, unts in mV
  • mainVoltage - main cable input voltage before power steering, units in mV
  • switchVoltage - input voltage after power steering; filtered voltage, units in mV
  • focusMotorMoving - for AutomaticRecording
  • voltageChanging - 00 = not changing, 01 = turning on, 10 = turning off
  • focusTimeoutFault - not documented
  • focusOverCurrentFault - not documented
  • focusNotFoundFault - not documented
  • focusStalledFault - not documented
  • fPGATimeoutFault - not documented
  • fPGABusyFault - not documented
  • fPGAStuckFault - not documented
  • cPUTempFault - not documented
  • pSUTempFault - not documented
  • waterTempFault - not documented
  • humidityFault - not documented
  • pressureFault - not documented
  • voltageReadFault - not documented
  • voltageWriteFault - not documented
  • focusCurrentPosition - focus shaft current position, in motor units 0..1000
  • targetPan - commanded pan position
  • targetTilt - commanded tilt position
  • targetRoll - commanded roll position
  • panMotorErrorCode - not documented
  • toltMotorErrorCode - not documented
  • rollMotorErrorCode - not documented
  • panAbsPosition - low-resolution magnetic encoder absolute pan position
  • tiltAbsPosition - low-resolution magnetic encoder absolute tilt position
  • rollAbsPosition - low-resolution magnetic encoder absolute roll position
  • panAccelX - accelerometer outputs from AR2 CPU board sensor, units of G
  • panAccelY - accelerometer outputs from AR2 CPU board sensor, units of G
  • panAccelZ - accelerometer outputs from AR2 CPU board sensor, units of G
  • tiltAccelX - accelerometer outputs from AR2 CPU board sensor, units of G
  • tiltAccelY - accelerometer outputs from AR2 CPU board sensor, units of G
  • tiltAccelZ - accelerometer outputs from AR2 CPU board sensor, units of G
  • rollAccelX - accelerometer outputs from AR2 CPU board sensor, units of G
  • rollAccelY - accelerometer outputs from AR2 CPU board sensor, units of G
  • rollAccelZ - accelerometer outputs from AR2 CPU board sensor, units of G
  • invalidSettings - cookie indices for command acknowlege in frame header
  • upTime - total time the sonar has been running over its lifetime, units in seconds
  • goTime -sonar time when frame cycle is initiated in hardware
  • panVelocity - AR2 tilt velocity, units in degrees/second
  • tiltVelocity - AR2 tilt velocity, units in degrees/second
  • rollVelocity - AR2 tilt velocity, units in degrees/second
  • acousticData – sound pressure aplitude of return

Config: a structure with the following fields:

  • version - ARIS file format version
  • status - not documented
  • sampleRate - calculated as 1e6/SamplePeriod
  • pingMode - ARIS ping mode, 1..12
  • frequencyHiLow - 1 = HF, 0 = LF 4..100 microseconds
  • pulseWidth - width of transmit pulse,
  • cyclePeriod - ping cycle time, 1802..65535 microseconds
  • samplePeriod - downrange sample rate, 4..100 microseconds
  • transmitEnable - 1 = transmit ON, 0 = transmit OFF
  • frameRate – frames per second
  • soundSpeed - sound velocity in water calculated from water temperature depth and salinity setting, units of m/s
  • samplesPerBeam - number of downrange samples in each beam
  • enable150V - 1 = 150V on (max power), 0 = 150V off (min power, 12V)
  • sampleStartDelay - delay from transmit until start of sampling (window start) in usec, [930..65535]
  • largeLens - 1 = telephoto lens (large lens, big lens, hi-res lens) present
  • theSystemType - 1 = ARIS 3000, 0 = ARIS 1800, 2 = ARIS 1200
  • sonarSerialNumber - sonar serial number as labeled on housing
  • arisAppVersion - version number of ArisApp sending frame data
  • appliedSettings - cookie indices for command acknowlege in frame header
  • constrainedSettings - cookie indices for command acknowlege in frame header
  • enableInterpacketDelay - if true delay is added between sending out image data packets
  • interpacketDelayPeriod - packet delay factor in us (does not include function overhead time)
  • arisAppVersionMajor - major version number
  • arisAppVersionMinor - minor version number
  • focus - focus units 0-1000
  • degC2 - power supply temperature, units in Celsius
  • degC1 - CPU temperature, units in Celsius
  • receiverGain - 0-24 dB
  • intensity -the upper intensity cut off
  • threshold – the lower intensity cut off
  • windowLength - window length in meters
  • windowStart – window start in meters
  • latitude - from auxiliary GPS sensor
  • longitude - from auxiliary GPS sensor
  • sonarPosition - special for PNNL
  • configFlags - not documented
  • highResolution - non-zero if HF, zero if LF
  • numRawBeams - ARIS 3000 = 128/64, ARIS 1800 = 96/48, ARIS 1200 = 48
  • samplesPerChannel - Number of range samples in each beam
  • reverse - non-zero = lens down (DIDSON) or lens up (ARIS), zero = opposite
  • sN - sonar serial number
  • strDate - date that file was recorded
  • strHeaderID - user input to identify file in 256 characters
  • userID1 - user-defined integer quantity
  • userID2 - user-defined integer quantity
  • userID3 - user-defined integer quantity
  • userID4 - user-defined integer quantity
  • startFrame - first frame number from source file (for DIDSON snippet files)
  • endFrame - last frame number from source file (for DIDSON snippet files)
  • timeLapse - non-zero indicates time lapse recording
  • recordInterval - number of frames/seconds between recorded frames
  • radioSeconds - frames or seconds interval
  • frameInterval - record every Nth frame
  • auxFlags - see DDF_04 file format document
  • sspd - sound velocity in water
  • flags3D - see DDF_04 file format document %%%fix this
  • softwareVersion - DIDSON software version that recorded the file
  • thumbnailFI - frame index of frame used for thumbnail image of file
  • reorderedSamples - 1 = frame data already ordered into [beam,sample] array, 0 = needs reordering

For those interested in making their own plots from the MAT file, the along beam range per sample may be calculated like this:

rangeToBinStart = linspace(Config.windowStart(2),Config.windowLength(2)+Config.windowStart(2),size(Data.acousticData,2));

While the angle between beams is a linear spacing with the 28 degree overall "fan-width":

theta = ANGLEAMP*linspace(-14*(2*pi)/360,14*2*pi/360,size(Data.acousticData,1));

The ANGLEAMP is just 2 – it stretches the angles so that it looks better in the MP4 video.

MP4

As described above, the MP4 format is a video of the sonar images / frames, very similar to what a user would see in the ARIScope software. We aim to make these videos searchable in http://dmas.uvic.ca/SeaTube (expected ~August 2017) as well as being available via the usual portals: Data Search, webservices, etc.

  • No labels