EM datagrams on *.kmall format  Reg. nr. 410224 rev J
Overview of EM datagrams on *.kmall format


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