Introduction
The .kmall format is the successor of the .all format, and uses the file extension *.kmall. Water column data can be logged in a separate file with extension *.kmwcd. The format is a generic format with high resolution data and the structure of the datagrams is designed to make updates easier.
Kongsberg multibeam echosounder systems, MBES, also referred to as the EM series echosounders are controlled and configured using the K-Controller and can acquire and log data using Kongsberg’s Seabed Information System (SIS) or other third party acquisition software. K-Controller runs on Windows and Linux. Data from the MBES is received via an Ethernet connection as UDP or TCP packets of variable length. The packages containing output datagrams are usually logged to disk on a hydrographic work station (HWS). The output datagrams may also be forwarded by SIS 5 on the HWS to user provided programs or an external Ethernet network.
Detailed specifications
.kmall files are named according to nnnn_YYYYMMDD_HHMMSS, where nnnn is the line number, followed by date and time. The timestamp in the first datagram in the file is decoded and used in the filename. (Note that the clock in the PC is not used). The ship's name may be appended at the end of the file name by the operator if wanted: nnnn_YYYYMMDD_HHMMSS_ShipName.
The majority of the output datagrams are in binary format. The datagrams have 4 bytes alignment. Little endian and C++11 data types are used. All datagrams starts with the general header, EMdgmHeader_def, and ends with a 32 bit unsigned value containing the size of the datagram, in number of bytes. The length field at the start and end of the datagram are included in the length count. Thus to read the file, first read four bytes, then read that number of bytes from the file which is then one datagram.
The name of the datagram is found in the general header. It starts with #, then a three letter code follows. Tables of output datagrams are given below.
The datagrams from the echosounder are received in one stream. The timestamp of the data may not be strictly sequential. For example, motion sensor data is grouped together and sent from the echosounder to SIS/K-Controller in one datagram containing up to 100 motion sensor measurements with individual timestamps. Therefore they may arrive one second later than the position datagram. This makes it necessary to read several motion sensor datagrams to find the correct one to be used when applying motion to the depth data. The individual datagram types must be handled separately and the interpolation to other datagram types must be done based on the timestamps.
The external sensor (S) datagrams contain information from sensors other than the echosounder. The datagrams may contain both corrected data and data as received from the sensor. The corrected data are data as used during the raytracing and depth calculations by the processing unit (PU) in real-time. Corrected data are only provided for active sensors. For post processing purposes the raw data are provided, also for inactive sensors. Generally, raw data has the same format as the external sensors provide. E.g. raw position data from GGA are presented as a text string according to the NMEA standard: $INGGA,094354.04,5925.695652,N,01027.921711,E,4,07,1.3,-1.55,M,40.51,M,1.0,0000*7D
Lists of output datagrams from processing unit (PU):
Installation and runtime datagrams:
Datagram type code | Datagram struct name | Description |
#IIP | EMdgmIIP_def | Installation parameters and sensor setup. |
#IOP | EMdgmIOP_def | Runtime parameters as chosen by operator. |
#IBE | EMdgmIB_def | Built in test (BIST) error report. |
#IBR | EMdgmIB_def | Built in test (BIST) reply. |
#IBS | EMdgmIB_def | Built in test (BIST) short reply. |
Multibeam datagrams:
Datagram type code | Datagram struct name | Description |
#MRZ | EMdgmMRZ_def | Multibeam (M) raw range (R) and depth (Z) datagram |
#MWC | EMdgmMWC_def | Multibeam (M) water (W) column (C) datagram |
External sensor output datagrams:
Datagram type code | Datagram struct name | Description |
#SPO | EMdgmSPO_def | Sensor (S) data for position (PO) |
#SPE | EMdgmSPE_def | Sensor (S) data for position error statistics (PO) |
#SPD | EMdgmSPD_def | Sensor (S) data for position datum reference (PD) |
#SKM | EMdgmSKM_def | Sensor (S) KM binary sensor format |
#SVP | EMdgmSVP_def | Sensor (S) data from sound velocity (V) profile (P) or CTD |
#SVT | EMdgmSVT_def | Sensor (S) data for sound velocity (V) at transducer (T) |
#SCL | EMdgmSCL_def | Sensor (S) data from clock (CL) |
#SDE | EMdgmSDE_def | Sensor (S) data from depth (DE) sensor |
#SHI | EMdgmSHI_def | Sensor (S) data for height (HI) |
Compatibility datagrams:
Datagram type code | Datagram struct name | Description |
#CPO | EMdgmCPO_def | Compatibility (C) data for position (PO) |
#CHE | EMdgmCHE_def | Compatibility (C) data for heave (HE) |
File datagrams:
Datagram type code | Datagram struct name | Description |
#FCF | EMdgmFCF_def | Backscatter calibration (C) file (F) datagram |