Position fields and unitsΒΆ
The field names in the feed do not say what unit they use and the vendor documents nothing.
These were verified against a live account and recorded drives (see the AGENTS.md gotchas
and the design spec it names). Read this before doing arithmetic on an export.
Field |
Unit |
Notes |
|---|---|---|
|
epoch seconds, UTC |
Normalised on parse: the sync CSV carries an integer that is seconds or milliseconds (anything above 10,000,000,000 is read as milliseconds), the trackers endpoint an ISO 8601 string. A zone-less ISO value is read as UTC. A value outside the representable range makes the row skipped and counted. |
|
integer offset |
Not a zone name. Its interpretation is unconfirmed; nothing depends on it, because every timestamp is handled and exported in UTC. |
|
decimal degrees |
Non-finite values make the row skipped and counted. |
|
km/h |
Reported speed is 3.6 times the speed derived from consecutive positions. InfluxDB field |
|
metres |
InfluxDB field |
|
degrees clockwise from true north |
Matches the bearing between fixes. GPS course over ground, so unreliable at low speed. InfluxDB field |
|
centimetres |
A per-fix delta reported by the device from its own consecutive readings, not an odometer. It can disagree slightly with the distance computed from two stored coordinates when a fix was dropped or GPS jittered. Do not correct it. |
|
centivolts |
|
|
integer |
Server position id. The sync offset is the highest id seen. |
|
integer |
Device id. |
|
as sent |
Stored as received. |
The local positions table has the columns of trackiwi.COLUMNS, in that order, which is
also the column order of the csv export. The InfluxDB point format (measurement
trackiwi_position, units in the field names) is built by trackiwi/lineprotocol.py; see
REQ_LINEPROTOCOL_UNITS in the requirements.