About the data
What this is
FloodWatch TH watches public cameras across Thailand, snapshots them every 10โ15 minutes, and asks a vision model one question: is the road in this frame passable, wet, or impassable? Verdicts are published with their evidence โ every row links to a "why?" page showing the frame, the model's raw answer, brightness, and hash. Humans confirm or correct in a review queue; corrections are the training data for tomorrow's model.
Guards we run on every source
- Stale-feed detection: identical frame hash across captures โ cam flagged
suspect. - Night gate: frames darker than luma 40 are labelled
nightand never feed verdicts. - Daylight-at-night audit: bright frames frozen for 2h+ between 00:00โ05:00 ICT โ
suspect(caught the frozen Pattaya mirrors). - SSRF guard: suggested URLs may never point at private/loopback hosts.
- Human review queue: machine verdicts stay machine verdicts until confirmed.
Known failure modes of sources
- Thai government cam hosts geo-block cloud IPs โ several are unreachable from our worker by design of their firewall.
- Some "live" portals serve cached daylight frames at night (Pattaya city mirrors, 2026-09-26). Those cams stay off until proven fresh.
- Night glare: dry asphalt shines under streetlights; the prompt demands real water evidence before "wet".
- PTZ cams pan โ reference-image comparison is disabled for them.
Satellite layer (GISTDA)
Province shading and the "Satellite overview" panel come from GISTDA's Disaster
Platform public service (disaster.gistda.or.th/app-api/services/flood/*),
the same endpoint their own web map uses โ MODIS/SAR-derived flood extent aggregated
per tambon for 1/3/7/30-day windows, synced daily at 07:30 ICT. It answers
"how much area is flooded?"; cameras answer "is this road passable right now?".
ยฉ GISTDA.
Coverage approach
- Public webcam catalog (opencctv/windy/DOH/ITIC) โ โฅ1 cam per province, then density in flood-prone zones. Currently 6 provinces.
- River/rain gauge overlay (thaiwater) โ planned.
- Satellite flood extent (GISTDA) during major events โ planned.
- Crowd: your suggestions fill the gaps.
Privacy
No accounts. Suggestions store IP + user-agent purely for spam defense; email is optional and only used for follow-up. Snapshots belong to their public operators; we show thumbnails for situational awareness with attribution.
Exports: RSS verdicts ยท cameras CSV ยท geojson ยท provinces geojson. Basemap: self-hosted province vectors (apisit/thailand.json, ยฉ OpenStreetMap contributors).