Overview
The new kmall-format has several advantages to the .all-format:
- All calculations from raw range and beam angle to latitude, longitude, depth and height are applied in the
#MRZ-datagram. This means that the final resulting point-cloud (latitude, longitude, depth, height) is
ready-to-use straight from the kmall-files.
- Documentation is always up-to-date as it is extracted from the source code of the kmall-format.
The documentation is available in html-format, and there is also a search-engine available so it is easy
to find the document you need.
- The depths are always referred to the ship's reference point. The distance from the reference point
to the watersurface and the distance from the reference point to the ellipsoid (WGS 84) are also part
of the #MRZ-datagram.
This makes it easy to refer the depths both to the vertical datum using tide corrections and to refer the
depths to the ellipsoid, makeing it possible to use geoid models to determine the desired vertical reference level.
- The kmall-format is also delivered with C++ source code showing how to read the files. This includes
source code demonstrating how to read the data straight from the EM Processing Unit (PU).
- Python-scripts are also delivered showing how to read kmall-files and make various products in an easy way.
This overview describes some of the Python-scripts available.
It should be noted that these scripts are provided as a help to develop tailor-made solution for users, and to
demonstrate how this can be done. The scripts are not intended for production purposes, but more for educational
and demonstrational use.
doItAll.py
doItAll.py is the main script for handling kmall-files.
Here is shown how to read a kmall-file one datagram at the time, and then how to decode the binary datagrams.
Because the kmall-format will change over time, it is important to know what version of each datagram is in the
file. This is demonstrated by showing how to read three different versions of the #MRZ-datagram.
A little processing is also demonstrated by showing how to generate a bounding-box for all files.
The output format is ascii and the contents is the most needed parameters to generate a point cloud.
Using a compression program like zip will compress the file size considerably.
extractWatercolumn.py
extractWatercolumn.py demonstrates how to extract watecolumn data.
Watercolumn data can be stored inside the .kmall-file or in a separate file.
extractWatercolumn.py extracts the watercolumn and the corresponding depths in two separate files which must be combined into a 3D-model by Watercolumn2CSV.py.
Watercolumn2CSV.py
Watercolumn2CSV.py is used to create csv-format points from the files created by
extractWatercolumn.py. It should be noted that for the watercolumn to align with the depths,
the depths should not be corrected for tide in doItAll.py.