คู่มือ step-by-step ปิดโหมด demo และเปิดใช้งานข้อมูล probe จริง — ทำตามเป็นขั้นๆ ครับ เริ่มจากเลือก vendor → ตั้ง backend → calibrate → connect
| Vendor | ราคา (เริ่มต้น) | ข้อดี | ข้อจำกัด | เหมาะกับ |
|---|---|---|---|---|
| TomTom Move เอกสาร → |
~$1,500/mo + enterprise tier |
• Coverage ดีในไทย • แยก passenger/truck • REST API stable |
• ต้องเซ็น contract • minimum 3 months |
Production · TIA reports |
| HERE Probe เอกสาร → |
~$800/mo + usage |
• Free tier เริ่มต้นได้ • fleet vs consumer flag • Hourly aggregation |
• Coverage บางพื้นที่ต่ำ • Truck data limited |
Pilot · academic study |
| Mapbox Movement เอกสาร → |
~$500/mo | • ราคาดี • Activity index (proxy ที่ดี) • Aggregated 15-min |
• ไม่แยก vehicle class • OD ระดับ tile (≥250m) |
Planning ทั่วไป · early-stage study |
| AIS Insights (โทรไปสอบถาม) |
฿฿฿ Custom quote |
• ครอบคลุมไทยจริง 100% • คนใช้ AIS เยอะ → coverage ดี • OD person-trip จริง |
• Privacy concerns • ต้อง MOU + นาน |
Government · large-scale OD |
กรมทางหลวงเปิดข้อมูล AADT ของทุกสถานีนับรถทั่วประเทศ ฟรี
เปิด bhs.doh.go.th → หรือ data.go.th →
เลือกจังหวัด → ปี → ดาวน์โหลด CSV/PDF
ไฟล์ที่ต้องการ: aadt_2024.csv มี column: station_id, route, km, aadt, by_class (car/truck/bus/moto)
เปิด Request Builder → วาด pin บนจุดสนใจ
→ กด 🔍 Preview Layout เพื่อหาถนนใน OSM → จากนั้นใช้ ref tag
(เช่น "ทล.1" = ทางหลวง 1) ไปจับคู่กับ route ใน DOH CSV
เกณฑ์: ระยะห่างไม่เกิน 5 km และอยู่ในประเภทถนนเดียวกัน (primary/secondary/motorway)
| Option | ราคา | Setup time | คำสั่งหลัก |
|---|---|---|---|
| Fly.io (recommended) | ~$10-30/mo | ~30 นาที | flyctl launch |
| Google Cloud Run | $0-50/mo (pay per req) | ~1 ชม. | gcloud run deploy |
| Railway | $5-20/mo | ~20 นาที | railway up |
| Hetzner VPS | €4/mo (cheapest) | ~2 ชม. | docker compose up -d |
# Clone — code อยู่ที่ TTVE repo (private — ติดต่อ admin) git clone <ttve-repo> ttve-backend cd ttve-backend # ตั้งค่า vendor credentials cp env.example .env # แก้ .env ใส่: # TTVE_PROBE_VENDOR=tomtom # หรือ here / mapbox / ais # TTVE_TOMTOM_API_KEY=<your_key> # TTVE_DOH_AADT_PATH=/data/aadt_2024.csv # TTVE_DB_URL=postgresql://... # TimescaleDB + PostGIS # Run locally first to test docker compose up -d curl http://localhost:8080/health
# Fly.io example flyctl auth login flyctl launch --no-deploy # creates fly.toml flyctl secrets set TTVE_TOMTOM_API_KEY=xxx TTVE_DB_URL=postgresql://... flyctl deploy # Get URL flyctl status # → https://ttve-prod.fly.dev
# เข้า backend แล้วรัน
docker exec -it ttve-api bash
python -m src.api.calibration.run_all \
--aadt-csv /data/aadt_2024.csv \
--vendor tomtom \
--area "Bangkok" \
--year 2024 \
--output /data/calibration_model.pkl
# ผลที่ได้:
# ✓ Trained XGBoost penetration model · MAE=0.18
# ✓ Validated on 124 DOH stations · 91% pass GEH<5
# ✓ Saved: /data/calibration_model.pkl
แก้ไฟล์ /trafficdata/_config.js บน Cloudflare Pages:
// _config.js window.TTVE_BACKEND_URL = "https://ttve-prod.fly.dev"; // ← URL จาก Step 3 window.TTVE_DEPLOY_BANNER = false; // ปิด demo pill
deploy ใหม่ → frontend จะคุยกับ backend จริง
ใส่ backend URL ของคุณ (เพื่อทดสอบในหน้านี้):
ต้องได้ {"status":"healthy","vendor":"tomtom","db":"connected"}
provenance.geh_vs_doh เป็น float_config.js ชี้ TTVE_BACKEND_URL ไปที่ backend จริงดูเอกสารเพิ่มเติม: