MBES soundings¶
Mbes.soundings — the per-beam multibeam table the
Acoustic Query Builder selects from and plots.
- Format: Apache Parquet (read with
pandas.read_parquet, orcudf.read_parquetwhenProcessing.gpu_avaibilityis on). - One row per beam per ping. These files are large — the reference dataset has 14 526 619 rows.
- Reference file:
mbes_2015_multilevel.parquet— 14.5 M rows, 18 columns.
Geometry¶
The query builder reads its coordinate columns by name from editable text fields, so you can point it at differently named columns without changing any code. The defaults match the table below.
| Column | Query-builder field | dtype | Units | Meaning |
|---|---|---|---|---|
Easting |
Easting (xutm) |
float64 | m | Projected easting of the sounding. Used for point-in-polygon selection against the sampling shape and as the X axis of the 3-D surface. |
Northing |
Northing (yutm) |
float64 | m | Projected northing. |
Longitude |
Longitude | float64 | ° WGS-84 | Geographic position. |
Latitude |
Latitude | float64 | ° WGS-84 | Geographic position. |
Depth |
(fixed name) | float64 | m, positive down | Sounding depth. The 3-D viewer plots it negated (Z = −Depth) so the seabed renders the right way up. |
All four coordinate fields must exist
On load, the query builder checks that the four named columns are present.
If any is missing it logs validate_fields: missing columns […] to the
GroundTruther message-log tab and the spatial tools stay disabled. The
UTM zone field beside them (default 19) is used when building the
projection for the query — it is free text and falls back to 19 if blanked.
Backscatter¶
GroundTruther supports two soundings schemas, and detects which one you have
from the column names alone
(gt/mbes_fields.py · detect_backscatter_fields).
Multi-level schema (the reference file) — the successive stages of the BSWG-2015 Ch. 6 backscatter-processing chain, each in decibels:
| Column | Stage |
|---|---|
BS_raw_dB |
The raw recorded backscatter level, before any compensation. |
BS_RL_dB |
Received level. |
BS_TL_dB |
Transmission-loss compensated. |
BS_area_dB |
Ensonified-area normalised. |
BS_AVG_dB |
Angular-response corrected (mbbackangle, referenced to 30°). The most processed level, and the default selection. |
Legacy schema (mbes_2015.parquet) — a single processed pair:
| Column | Stage |
|---|---|
Backscatter Value |
Uncorrected. |
Corrected Backscatter Value |
Angular-response corrected — the legacy equivalent of BS_AVG_dB. |
The authoritative definitions of the chain stages are in the dataset's own README; GroundTruther only needs the names.
How the default is chosen¶
The backscatter field combo box is filled by scanning your columns against this preference list and keeping the ones that are present, in this order:
Corrected Backscatter Value → BS_AVG_dB → BS_area_dB → BS_TL_dB
→ BS_RL_dB → BS_raw_dB → Backscatter Value
The first match becomes the default selection — i.e. the most corrected
level available. Any other column whose name starts with BS_ or contains
"backscatter" (case-insensitive) is appended after the known ones, so a schema
GroundTruther has never seen still offers its backscatter columns rather than
none. If nothing matches, a warning naming your actual columns is written to the
message log and the combo stays empty.
Your current selection is preserved across data reloads when the column still exists.
Beam geometry¶
| Column | dtype | Units | Meaning |
|---|---|---|---|
True Angle |
float64 | ° | Beam incidence angle at the seabed, signed: negative = port, positive = starboard. This is the X axis of the angular-response plot and the column the port/starboard filter acts on. Range in the reference file ≈ ±85°. |
Nominal Angle |
float64 | ° | The nominal (uncorrected) beam angle. Narrower range than True Angle (≈ ±60° in the reference file). Not read by the plugin. |
Beam Number |
int32 | — | Beam index within the ping, 0…511 in the reference file. Not read by the plugin. |
Beam Flag |
int16 | — | Per-sounding quality/rejection flag from the processing software. All zero throughout the reference file, so its value encoding cannot be read off the data. Not read by the plugin — GroundTruther does not filter on it, so pre-filter rejected soundings yourself if your file flags any. |
The beam filter¶
The query builder's four mutually exclusive radio buttons work purely on
True Angle:
| Button | Effect |
|---|---|
| Raw (default) | All beams, unchanged. |
| L | Port only — keeps True Angle < 0. |
| R | Starboard only — keeps True Angle > 0. |
| Fold | Replaces True Angle with its absolute value, overlaying both sides on one angular axis. |
Ping identity and time¶
| Column | dtype | Units | Meaning |
|---|---|---|---|
Ping Time |
float64 | s | Ping timestamp as Unix epoch seconds — verified identical to datetime. |
datetime |
datetime64[us] | — | The same instant as a timestamp. |
Ping Number |
int64 | — | Sequential ping counter. |
line |
string | — | Survey line identifier. Read by the plugin: the two grouped density plots (Group Norm and Group Scaled) colour and fill by this column, so each survey line gets its own curve. Values in the reference file look like 170_001_1942 — day-of-year, line number, start time (day 170 and 171 of 2015 are indeed 19 and 20 June) — but the encoding is the survey's own and nothing in GroundTruther parses it. |
Bringing your own soundings¶
| You must provide | Notes |
|---|---|
| Easting / Northing / Longitude / Latitude | Under any names — set them in the query builder's four coordinate fields. |
Depth |
Name is fixed. Positive down. |
True Angle |
Name is fixed. Signed, port negative. |
| At least one backscatter column | Either a known name from the list above, or any BS_* / *backscatter* name. |
line |
Only needed for the two grouped density plots. |
Everything else is optional. Keep the file in Parquet — the point-in-polygon
selection is numba-compiled over the raw column arrays, and a CSV of this size
would not be workable.