From field capture to client handover
Every step between driving a road and handing a deliverable to a client. Steps marked Manual need a person; the others run automatically.
Capture
1GnssMonitor records GPS + NMEA. Video stream data captures footage with embedded GPMF telemetry. SurveyApp tracks routes on mobile. Auto-sync every 2 minutes.
Upload
2Fast parallel upload supporting all survey file types.
| field | type |
|---|---|
| ROAD_ID | text(12) — sender road identifier |
| LANE_CODE | text(4) — direction + lane |
| START_KM | decimal(6,3) — start chainage |
| AVG_IRI_L/R | decimal(3,1) — avg IRI per wheelpath |
| field | type |
|---|---|
| latitude, longitude | float — WGS84 from GPMF |
| speed2d | float — ground speed (km/h) |
| ACCL, GYRO | vec3 — motion sensors |
| dop, fix | uint16 — GPS quality (GPS9) |
| field | type |
|---|---|
| ProductSN | string — equipment serial |
| lIRI, rIRI | float — left/right IRI (mm/m) |
| lMPD, cMPD, rMPD | float — mean profile depth |
| lRD, rRD, maxRD | float — rut depth (mm) |
| field | type |
|---|---|
| station | decimal(6,3) — chainage (km) |
| d1…d11 | int — deflection sensors (µm) |
| force | float — peak load (kN) |
| surfaceTemp | float — surface temp (°C) |
| field | type |
|---|---|
| .shp | file — geometry (polyline / point) |
| .dbf | file — attribute table |
| .shx | file — spatial index |
| .prj | file — coordinate system (WGS84) |
| field | type |
|---|---|
| Placemark | element — named waypoint |
| coordinates | string — lon,lat,alt tuples |
| lat, lon, alt | float — parsed position |
| totalPoints | int — GPS points extracted |
| field | type |
|---|---|
| lat, lon | float — from DDMM.MMMMM |
| fixQuality | int — 0=inv … 4=RTK |
| satellites | int — satellites in use |
| speed_kmh | float — ground speed |
| field | type |
|---|---|
| ERDFILE | string — version e.g. V2.00 |
| SHORTNAM | string — channel names |
| interval | float — sampling interval (m) |
| leftVal, rightVal | float — L/R channel data |
| field | type |
|---|---|
| ROAD_ID | text — road identifier |
| DEF_0…DEF_2100 | int(4) — 13 deflection sensors |
| BLI, MLI, LLI | int(4) — layer indices |
| PEAK_LOAD | decimal(4,2) — load (kN) |
| field | type |
|---|---|
| Name | string — project name |
| Operator | string — surveyor name |
| DriveIds[] | array — drive identifiers |
| gpsPoints[] | array — telemetry positions |
| field | type |
|---|---|
| Sheet / Tab | string — instrument channel name |
| Chainage | decimal(6,3) — station (km) |
| IRI_L, IRI_R | float — left/right IRI (mm/m) |
| MPD, SMTD, Rut | float — texture & profile metrics |
| field | type |
|---|---|
| Station | decimal(6,3) — chainage (km) |
| Lat, Lon | float — WGS84 position |
| IRI, MPD | float — instrument readings |
| Speed | float — survey speed (km/h) |
| field | type |
|---|---|
| frames/ | dir — chainage-named .jpg images |
| *.cid | file — TMH18 instrument data |
| *.xlsx | file — direction workbook |
| *.geojson | file — route geometry |
Process
3GPMF telemetry extraction. FFmpeg frames at ~5m GPS spacing. GPS fusion, chapter consolidation, and instrument file parsing.
Review
4GPS track on map. Telemetry charts synced to chainage. IRI heatmap with explicit interpretation context. FWD benchmarks. MPD, SMTD, and rut analysis. Frame viewer with GPS outlier detection. Video group management.
Assess
5TMH9 visual assessment with 30+ distress types, degree and extent ratings per COTO standards. Flexible and unpaved road forms. Draft → Submitted → Approved lifecycle.
Export
6Structured deliverables packaged per road link. Approve and publish directly to client portal.
Standards, explained in depth
Read source scope, interpretation limits and worked educational examples for road assessment methods.
TMH 13 — IRI roughness
Longitudinal profile, the IRI reference model and measurement context.
TMH 18 — Combined Instrument Data
Combined instrument data exchange; confirm the receiving authority’s version.
TRH 12 — rehabilitation
Investigation evidence and the rehabilitation design process.
SAPEM — texture & skid
Keep the test method, units and conditions with each texture or skid result.
Horak 2008 — FWD deflection
Deflection bowl parameters D0, BLI, MLI, LLI.
Ready to see it on your data?
RoadSense is invitation-only. Tell us about your survey operations and we'll set up your organisation.
| field | type |
|---|---|
| ROAD_ID | text(12) — sender road identifier |
| LANE_CODE | text(4) — direction + lane e.g. P1, N2 |
| START_KM | decimal(6,3) — start chainage (km) |
| END_KM | decimal(6,3) — end chainage (km) |
| MEASURE_DATE | datetime — YYYYMMDD HH24:MI:SS |
| AVG_IRI_L | decimal(3,1) — avg IRI left wheelpath (m/km) |
| AVG_IRI_R | decimal(3,1) — avg IRI right wheelpath (m/km) |
| IRI_L_STDV | decimal(3,1) — IRI left std deviation |
| IRI_R_STDV | decimal(3,1) — IRI right std deviation |
| AVG_HRI | decimal(3,1) — average half-car roughness |
| HRI_STDV | decimal(3,1) — HRI std deviation |
| AVG_RUT_L | decimal(4,1) — avg rut left (mm) |
| AVG_RUT_R | decimal(4,1) — avg rut right (mm) |
| RUT_L_STDV | decimal(4,1) — rut left std deviation |
| RUT_R_STDV | decimal(4,1) — rut right std deviation |
| AVG_MPD_L | decimal(3,2) — avg MPD left wheelpath |
| AVG_MPD_C | decimal(3,2) — avg MPD centre |
| AVG_MPD_R | decimal(3,2) — avg MPD right wheelpath |
| MPD_STDV_L | decimal(3,2) — MPD std deviation left |
| MPD_STDV_C | decimal(3,2) — MPD std deviation centre |
| MPD_STDV_R | decimal(3,2) — MPD std deviation right |
| START_LONGITUDE | decimal(12,9) — WGS84 longitude |
| START_LATITUDE | decimal(12,9) — WGS84 latitude |
| field | type |
|---|---|
| latitude | float — WGS84 decimal degrees (GPS5/GPS9) |
| longitude | float — WGS84 decimal degrees |
| altitude | float — metres above sea level |
| speed2d | float — 2D ground speed (m/s → km/h) |
| speed3d | float — 3D speed incl. vertical (m/s) |
| timestamp | ISO string — from GPS9 daysSince2000 + seconds |
| dop | uint16 — dilution of precision (GPS9) |
| fix | uint16 — fix type (GPS9) |
| ACCL | vec3 — accelerometer x, y, z (m/s²) |
| GYRO | vec3 — gyroscope x, y, z (rad/s) |
| CORI | quaternion — camera orientation |
| GRAV | vec3 — gravity vector |
| field | type |
|---|---|
| Header metadata | |
| ProductSN | string — equipment serial number |
| StartStation | float — start chainage (km) |
| Direction | enum — + or − |
| Interval | float — sampling interval (m) |
| TestDate | date — date of survey |
| Lane | string — lane code |
| Section | string — road section identifier |
| IRI sub-type | |
| start, end | float — chainage range (m) |
| speed | float — survey speed (km/h) |
| lIRI, rIRI | float — left/right IRI (mm/m) |
| lat, lon | float — WGS84 position |
| MPD sub-type | |
| start, end | float — chainage range (m) |
| lMPD, cMPD, rMPD | float — L/C/R mean profile depth (mm) |
| lat, lon | float — WGS84 position |
| Rut depth sub-type | |
| start, end | float — chainage range (m) |
| lRD, rRD | float — left/right rut depth (mm) |
| maxRD | float — maximum rut depth (mm) |
| lat, lon | float — WGS84 position |
| SMTD sub-type | |
| lSMTD, cSMTD, rSMTD | float — L/C/R surface macrotexture |
| GNSS sub-type | |
| station, lat, lon | float — chainage + position |
| Binary profile sub-type | |
| station | float — from StartStation + DMIInterval |
| leftElev, rightElev | float32 — left/right elevation |
| field | type |
|---|---|
| 5 header lines: format, serial, sensor config, offsets | |
| time | ISO datetime — test timestamp |
| location | string — location description |
| section | string — road section identifier |
| lane | string — lane code |
| station | decimal(6,3) — chainage (km) |
| direction | string — up / down |
| lat, lon | float — WGS84 decimal degrees |
| dropId | int — drop sequence number |
| surfaceTemp | float — surface temperature (°C) |
| ambientTemp | float — air temperature (°C) |
| asphaltTemp | float — asphalt temperature (°C) |
| force | float — peak load (kN) |
| pressure | float — contact pressure |
| d1…d11 | int — deflection sensors 1–11 (µm) |
| eMpa | float — back-calculated modulus (MPa) |
| pulseTime | float — pulse duration (ms) |
| field | type |
|---|---|
| Required files (client upload) | |
| .shp | file — geometry (PolyLine / Point) |
| .dbf | file — dBASE attribute table |
| .shx | file — spatial index (byte offsets) |
| .prj | file — coordinate system definition (WGS84 / Hartebeesthoek94) |
| Attribute table fields (.dbf) | |
| ROAD_ID | text(20) — client road identifier |
| ROAD_NAME | text(80) — road name / description |
| SECTION_ID | text(20) — section or segment code |
| START_KM | decimal(8,3) — start chainage (km) |
| END_KM | decimal(8,3) — end chainage (km) |
| LENGTH_KM | decimal(8,3) — segment length (km) |
| SURF_TYPE | text(20) — surface type (asphalt / gravel / concrete) |
| LANES | int — number of lanes |
| CLASS | text(10) — road class (N / R / MR / DR) |
| AUTHORITY | text(40) — road authority / municipality |
| field | type |
|---|---|
| Placemark | element — named waypoint or route |
| coordinates | string — lon,lat,alt tuples |
| LineString | element — GPS track geometry |
| lat | float — decimal degrees (parsed) |
| lon | float — decimal degrees (parsed) |
| alt | float — altitude in metres (0 if absent) |
| coordinateBlocks | int — number of coordinate groups |
| totalPoints | int — total GPS points extracted |
| field | type |
|---|---|
| Tab-separated: PC_timestamp → NMEA sentence | |
| $GPGGA fields | |
| lat, lon | float — converted from DDMM.MMMMM |
| alt | float — MSL altitude (m) |
| satellites | int — satellites in use |
| hdop | float — horizontal dilution of precision |
| fixQuality | int — 0=inv, 1=GPS, 2=DGPS, 4=RTK |
| $GPRMC / $GNRMC fields | |
| gnss_datetime_utc | ISO string — full date + time |
| speed_kmh | float — ground speed (km/h) |
| course_deg | float — course over ground (deg) |
| $PTNL,GGK (Trimble) | |
| ellipsoid_height_m | float — ellipsoidal height (m) |
| $GPVTG | |
| course_deg | float — true track (degrees) |
| speed_kmh | float — ground speed (km/h) |
| field | type |
|---|---|
| Header block (terminated by END) | |
| ERDFILE | string — version e.g. V2.00 |
| numPoints | int — total data points |
| interval | float — sampling interval (m), default 0.025 |
| SHORTNAM | string — channel names e.g. LIRI RIRI |
| UNITSNAM | string — measurement units |
| XLABEL | string — x-axis label |
| XUNITS | string — x-axis units |
| Data rows (two floats per line) | |
| start | float — station (m) auto-incremented |
| leftVal | float — left channel (IRI/MPD/SMTD/RD) |
| rightVal | float — right channel |
| maxRD | float — max rut depth (profile sub-type only) |
| field | type |
|---|---|
| ROAD_ID | text — road identifier |
| LANE_CODE | text — direction + lane |
| SURVEY_KM | decimal(6,3) — test point (km) |
| DATE | datetime — YYYYMMDD HH24:MI:SS |
| TEMP_AIR | decimal(3,2) — air temp (°C) |
| TEMP_SURFACE | decimal(3,2) — surface temp (°C) |
| PEAK_LOAD | decimal(4,2) — applied load (kN) |
| DROP_NUM | int(2) — drop sequence number |
| DEF_0 | int(4) — deflection at plate centre (µm) |
| DEF_200…DEF_2100 | int(4) — 12 sensor offsets (µm) |
| PULSE_DURATION | decimal(4,2) — pulse time (ms) |
| BLI | int(4) — base layer index D0−D300 |
| MLI | int(4) — middle layer index D300−D600 |
| LLI | int(4) — lower layer index D600−D900 |
| START_LONGITUDE | decimal(12,9) — WGS84 longitude |
| START_LATITUDE | decimal(12,9) — WGS84 latitude |
| field | type |
|---|---|
| RSP project.json | |
| Name | string — project name |
| Description | string — project description |
| ProjectFolder | string — local folder path |
| CreatedDate | ISO datetime — UTC creation time |
| SiteLocation | string — site location text |
| Operator | string — surveyor/operator name |
| AllocationId | string — fleet route allocation ID |
| DriveIds[] | array — associated drive identifiers |
| KmlRouteFiles[] | array — KML filenames in project |
| telemetry.json (processed video) | |
| gpsPoints[] | array — lat, lon, alt, speed, accuracy |
| gpmfMetadata | object — duration, distance, pointCount |
| telemetrySummary | object — accel/gyro statistics |
| field | type |
|---|---|
| Raw data package | |
| {camera}-{dir}.zip | archive — per camera-direction frame JPEGs |
| cid-{dir}-lane{N}.xlsx | workbook — CID per direction + lane |
| all.zip | archive — everything combined |
| Client download package | |
| frames/ | dir — chainage-named .jpg images |
| *.cid | file — TMH18 combined instrument data |
| *.csv | file — GPS track + summary exports |
| *.geojson | file — route geometry |
| *.xlsx | file — direction workbook |
| Frame naming convention | |
| {cam}_{dir}_{ch7}_{route}.jpg | string — chainage-named frame |