地理空間決策支援,顯示休斯頓各體育場館中活動人潮、極端高溫、易受影響區域、缺乏遮蔭與冷卻設施不足的重疊情況——以及應對措施。
AI 翻譯
Geospatial decision support that shows where event crowds, extreme heat, vulnerability, missing shade and poor cooling access overlap at Houston's stadiums and arenas — and what to do about it.
資料TypeScript · JavaScriptGitHub @salman-khan03上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Track 3 — Public Health & the Built Environment · Rice University Urban Sustainability Hackathon
HeatShield 26 is a geospatial decision-support platform covering Houston inside Loop 610. It finds where event crowds, extreme heat, social and health vulnerability, missing shade and poor cooling access overlap at any of 6 real Houston venues — NRG Stadium, Daikin Park, Toyota Center, Shell Energy Stadium, TDECU Stadium and Rice Stadium. Then it tells planners where cooling hubs, shade, water stations and shuttle changes do the most good before the next mega-event.檢視完整 README ↗Track 3 — Public Health & the Built Environment · Rice University Urban Sustainability Hackathon
HeatShield 26 is a geospatial decision-support platform covering Houston inside Loop 610. It finds where event crowds, extreme heat, social and health vulnerability, missing shade and poor cooling access overlap at any of 6 real Houston venues — NRG Stadium, Daikin Park, Toyota Center, Shell Energy Stadium, TDECU Stadium and Rice Stadium. Then it tells planners where cooling hubs, shade, water stations and shuttle changes do the most good before the next mega-event.
Where should Houston invest $1M to protect visitors and residents from extreme heat during its next mega-event?
Live: https://heatshield26.vercel.app · Planner: https://heatshield26.vercel.app/planner
Heat Event Risk = 0.40 × Heat exposure
+ 0.25 × Event crowd exposure
+ 0.20 × Health & social vulnerability
+ 0.10 × Shade deficit
+ 0.05 × Cooling access deficit
× (1 − protective factor from water/misting stations)
It is a decision-support composite, not a medical prediction. Every component is normalized to 0–100, and the weights can be adjusted in the app. Full formulas, heat-model fit statistics, crowd assumptions and limitations are on /methodology.
| Component | Source |
|---|---|
| Heat exposure | H3AT modeled heat index, morning/afternoon/evening (HARC / ForUsTree HTX). 2020 is primary; 2024 fills cells 2020 misses. The two campaigns disagree where they overlap (afternoon r = −0.19), so they are not blended. Gaps are filled by interpolation only where it beats a median fill under spatial cross-validation. |
| Surface temperature, impervious cover | Urban Heat Vulnerability in Texas (Houston tracts): evidence and a tested gap-fill predictor |
| Shade | USFS NLCD Tree Canopy Cover (30 m, latest year) for every cell; ForUsTree 2024 LiDAR canopy shown as evidence where it exists |
| Vulnerability | CDC/ATSDR SVI 2022; CDC PLACES 2025 release (CHD, COPD, diabetes, CKD) |
| Cooling access | City of Houston Cool Centers |
| Crowd routing | METRO light rail stations and lines (H-GAC); 6 venue footprints and their nearby parking lots/garages, by OSM capacity tag or area estimate (© OpenStreetMap contributors) |
| Zone names | City of Houston Super Neighborhoods |
| Venue capacities | NRG Stadium via FIFA; Daikin Park, Toyota Center, Shell Energy Stadium, TDECU Stadium and Rice Stadium via each venue's own published figures |
Costs and intervention effect sizes are scenario assumptions, labeled as such everywhere they appear.
npm install
npm run dev # http://localhost:3000
The processed data ships in public/data/. To rebuild it from the live sources, run the command below. It takes about 20–30 minutes, mostly raster sampling, and caches downloads in data/raw/:
npm run build:data # add -- --refresh to re-download
Optional: copy .env.example to .env.local and set GEMINI_API_KEY to enable Gemini explanations (defaults to gemini-flash-latest, with fallbacks on overload; override with GEMINI_MODEL). Optionally also set GROQ_API_KEY: when Gemini is unavailable, explanations come from Groq (openai/gpt-oss-120b, override with GROQ_MODEL). With neither key, the app serves a template explanation.
scripts/build-data.mjs Node pipeline: ArcGIS REST + ImageServer sampling, CDC CSV/Socrata, Overpass
│ → H3 grid joins, heat calibration + gap model, crowd routing
▼
public/data/cells.json per-cell attributes; per-venue crowd layers & modeled routes (6 venues)
public/data/layers.json per-venue stadium footprint/lots/rideshare zones/routes + city-wide stations, rail lines, cool centers
│
src/lib/model.ts scoring, intervention modifiers, summary metrics (pure TS)
src/lib/optimizer.ts greedy budget allocation + priority ranking
src/components/planner/ MapLibre map, scenario/zone/simulate/optimize/priorities panels
src/app/api/explain Gemini rationale → Groq fallback → deterministic template
No database: the static JSON totals ~1 MB and every computation runs client-side. One evaluation of all cells takes ~3 ms and a $1M optimizer run ~100 ms, so sliders, placed interventions and optimizer runs update instantly.
npx tsx scripts/check-model.ts # headless sanity check: distributions, top cells, optimizer consistency
node scripts/screenshots.mjs # captures docs/screenshots/*.png from a running dev server (local Chrome)
MapLibre GL 6 loads its web worker relative to its own module URL, which doesn't survive bundling. scripts/copy-maplibre-worker.mjs runs before dev and build to serve the worker from public/maplibre/.
docs/screenshots/ has the landing page, the baseline risk map, zone detail, the 3D view, the optimized $1M plan, and the crowd layer with modeled routes.