Guides

Channel mapping

Your instruments call it Targ Bsp. We call it target_boat_speed. Somebody has to say those are the same thing — and they should only have to say it once.

1 Three kinds of name

Every number the platform stores is filed under a channel name. There are three sorts of name, they behave differently, and almost every question about mapping is really a question about which sort you are looking at.

KindLooks likeWho it belongs to
Standard channelboat_speed, wind_direction_trueThe platform’s. One list, identical for every customer, and it only ever grows — a name is never renamed and never removed, because saved views, calibrations and stored samples all key on it. You will find the whole list under Channels → Standard registry.
Your channelcustom:runner_load_portYours. Created by you, visible only inside your organisation, and invisible to every other one. The custom: prefix is part of the name, not decoration.
Your file’s own wordBsp, User 3, Targ BspYour instrument system’s. Nothing is stored under these — they are what gets mapped onto one of the two names above, and this page is about that step.
The registry is deliberately not editable. A channel name is an address that a season of stored samples points at, so it is add-only and frozen. When you need a name that does not exist, you do not rename one — you add one of your own, which is what the custom: namespace is for.

2 Reading the preview

Upload a file and the preview lists every column it found, with the channel each one will become. At the end of each row is a small chip saying where that mapping came from:

ChipWhat it means
autoThe file format’s own dictionary recognised this column. This is platform knowledge and it is the same for everybody.
your mappingSomebody in your organisation mapped this column before and the platform applied their decision. Not a guess — your own past answer, handed back.
unmappedNothing recognised it. The column is skipped unless you pick a channel for it, and it is added to your unmapped ledger so it does not vanish quietly.
will be rememberedYou have just changed this row. Committing saves that decision for your organisation.

A worked row. Your Expedition log has a column called User 3, which is where your boat writes the port runner load. On the first import it reads unmapped: no format dictionary in the world knows what one boat put in User 3. You press the chip, pick your own custom:runner_load_port, and the row now says will be remembered. You commit. On the next Expedition file — next week, next regatta, uploaded by somebody else in the crew — that same column arrives already mapped, chipped your mapping, and nobody has to think about it again.

3 Teach it once

That is the whole feature, and it is worth being precise about its edges.

  • It is learned at commit, not at preview. Change your mind, press Reset, close the tab — nothing is remembered until you commit. The mapping the file is actually imported with is the mapping that gets saved.
  • It is per file format. A decision made on an Expedition log applies to your Expedition logs. It never leaks onto your Vakaros or B&G files, because the same word means different things in different formats.
  • It is organisation-wide. One person maps a column and the whole crew gets it. That is the point: the alternative is every navigator re-making the same correction forever.
  • It is NEVER visible to another organisation. What you call your columns, what channels you have created, what your files carry — none of it is shared with anybody outside your organisation, and there is no setting that would make it so.
  • It is on by default and there is no switch. A fix that has to be turned on is a fix most people never get. If a mapping turns out to be wrong, you change it or forget it — see below.

One thing this does not do: it never changes data already imported. Mapping memory only decides what the next preview arrives with. Repairing an import that went in wrong is a different job — delete it and import it again.

4 The Mappings tab, and the ledger

Everything remembered is listed under Channels → Mappings, and everything listed there can be changed or forgotten. The page has two halves.

Unmapped columns — the to-do list

At the top sits the ledger: columns your files have carried that resolved to nothing, so their values were not stored. This is the half that pays for the page. Before it existed, an unrecognised column produced a perfectly successful import and no signal at all — a crew could lose a season of rig loads and find out from the absence of a chart.

Each row is a decision waiting to be made, and there are two answers:

  • Map it to a channel — standard or one of yours — and it leaves the list.
  • Never map it, which records that the column holds nothing worth storing. It leaves the list and stops coming back. This is a real decision rather than a dismissal, which is why there is no separate “hide” button: hiding it would leave the platform asking about the column forever.

When there is nothing outstanding the panel says so — every column your files have sent is mapped.

What you have taught it

Below the ledger, one section per file format you have taught, each row showing the column as it appears in your export, the channel it resolves to, and when it was learned. A row you excluded reads — skipped —, because “we decided this holds nothing” and “this row lost its channel” are not the same thing and should not look the same.

  • Retarget by pressing the channel chip and choosing another. Saving is automatic; a small Saved appears when it lands, and a failure says so and offers Retry rather than losing what you picked.
  • Forget removes the memory entirely. Nothing already imported changes — the next import of that format simply goes back to asking about the column.

A row whose target is an archived channel is chipped as such. Imports already using it keep working, but an archived channel is refused as a new target, so retarget or forget that row before editing others of the same format.

5 Your channels

When a column has no home in the standard registry — a load cell, a trim reading, a sensor somebody bolted on last winter — you add a channel of your own under Channels → Your channels, or straight from an import preview in front of the column that needs it.

You give it three things:

  • A name, in snake_case. The custom: prefix is fixed and added for you, so runner_load_port becomes custom:runner_load_port.
  • A unitkg, deg, mm, or nothing at all for a dimensionless quantity.
  • Whether it is an angle in degrees. Tick this and averages use the circular mean, so 359° and 1° average to 0° rather than to 180°. Leave it clear for anything that is not a compass reading.
The name and the unit are forever. They are frozen for exactly the reason the standard registry’s are: every stored sample and every saved mapping keys on the name, and the unit is the meaning of every number recorded under it. There is no rename and no delete.

What there is is Archive. Archiving a channel:

  • takes it out of pickers and refuses it as a new mapping target;
  • leaves every number already recorded against it readable — charts, exports, the debrief, all unchanged;
  • keeps the name reserved, because the stored samples are still addressed by it;
  • is reversible — unarchive it and it comes back.

Archived channels live in their own collapsed group on the same page, so a name that seems to have disappeared is always findable.

6 Where your channels show up — and where they do not yet

A custom channel is a real channel. Once a column is mapped to one, it behaves like any other:

  • imports store samples against it;
  • it appears in the debrief player’s Explorer, under a Your channels group, and charts exactly like a standard one;
  • it can carry a calibration correction, which reads its angularity from the channel itself.

Two places it deliberately does not appear yet. HUD overlay presets take standard channel names only — a preset is a saved list belonging to one person, and letting it name one organisation’s private vocabulary raises questions we would rather answer properly than quickly. The Race Control tablet also speaks standard names only. Both are limits we know about, not oversights.

7 Race Control needs none of this

Nothing streamed by the Race Control app is mapped here. The tablet sends standard channel names itself, so there is no dictionary between it and the platform and nothing for you to teach. This whole page is about the files you upload.

8 Who can do what

RoleCan
ViewerRead everything — the mappings, the ledger, your channels, the standard registry. Change nothing.
Member, admin, ownerAll of the above, plus: map and forget columns, decide a column is never worth mapping, and create and archive your organisation’s own channels.

Mapping is a member’s job on purpose. The need turns up mid-import, in front of a column nobody recognises, and whoever is allowed to commit that import is already deciding what the platform stores. None of this is behind the paywall either: it is your organisation’s vocabulary, and it stays readable and editable whatever your coverage says.

9 Where to go next