The Sensor Data Almanac — batch vs streaming
Edge device on a tractor: LiDAR + 2× RGB + GNSS/IMU. Slide the assumptions; the math has no opinions.
Data reduction at the edge
{{ fmtN(Math.round(ratio)) }} : 1
{{ fmtB(totalA) }} stored-everything vs {{ fmtB(totalB) }} processed — over {{ fmtN(Math.round(ha)) }} ha, {{ fmtN(Math.round(trees)) }} trees
A — store all, upload after
{{ fmtB(totalA) }} /shift
per hectare{{ fmtB(totalA / ha) }}
LiDAR (compressed){{ fmtB(lidarComp) }}
RGB jpeg{{ fmtB(rgbJpeg) }}
upload @ hangar{{ fmtH(upAhangar) }}
upload @ field link{{ fmtH(upAfield) }}
disk write rate{{ (rateA/1e6).toFixed(1) }} MB/s ×{{ shift }}h
SSD dead in{{ fmtN(Math.round(ssdDaysA)) }} days
1 TB drive full in{{ fullDays.toFixed(1) }} days
B — process at edge, stream
{{ fmtB(totalB) }} /shift
per hectare{{ fmtB(totalB / ha) }}
tree records{{ fmtB(det) }}
tree crops{{ fmtB(crops) }}
upload @ field link{{ fmtH(upBfield) }}
disk write rate{{ (rateB/1e6).toFixed(2) }} MB/s
SSD dead in{{ fmtN(Math.round(ssdDaysB)) }} days
1 TB drive full in{{ fmtN(Math.round(1e12/ (totalB))) }} days
Jetson duty cycle
frames / shift{{ fmtN(frames) }}
inference work{{ fmtH(inferH) }}
streaming GPU duty{{ (duty*100).toFixed(1) }}%
if batched: post-shift crunch{{ fmtH(inferH) }} on battery
GPU idle during shift100%
Daily writes (2× write amp)
Scenario A{{ fmtB(totalA*2) }}/day
Scenario B{{ fmtB(totalB*2) }}/day
endurance gap{{ fmtN(Math.round(ssdDaysB/ssdDaysA)) }}× drive life
Single average per component: one generic LiDAR (points/s × bytes/point), 2K = 2048×1536×3 B raw, GNSS+IMU @1 Hz (200 B) — included but negligible. Scenario A already assumes jpeg’d RGB and compressed point clouds (favourable to A). No vendors, no conclusions — adjust and read.