WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
Fire & Road Conditions Drive Board: a worst-first, one-glance CLEAR / CAUTION / AVOID verdict for driving from Pendleton to nearby towns, from live fire perimeters, satellite hotspots, and real ODOT r
라이프스타일JavaScript · CSSGitHub @lperezmo온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Keyless wildfire situational awareness for the western US: live fire perimeters, terrain, fuel, and wind, with a client-side spread-risk and escape line-of-sight analysis.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Wildfire situational awareness and driving decisions for eastern Oregon. The app opens to a Drive Board centered on Pendleton: a map plus a worst-first list of nearby destination towns, each with a one-glance CLEAR / CAUTION / AVOID verdict for driving there, based on active fire near the route and real ODOT road incidents. From any corridor you can drop into the original Inspect this ground tool: draw a box on the map and the app pulls real elevation, satellite imagery, and a vegetation fuel layer for that ground, overlays live interagency fire perimeters and recent satellite hotspots, reads the current wind, and runs a client-side analysis (a spread-risk model over the area and a line-of-sight pass that ranks safe staging spots, fire-watch lookouts, or the highest-risk cells, each explained in plain English, with a 3D view of the terrain).
On load you see, leaving Pendleton:
How a verdict is decided (each route is sampled along its baked driving polyline):
Honesty rules: verdicts are phrased as "fire near route" and show the actual incident text; the app never claims a road is open. If live data fails to load a route shows CAUTION, never a false CLEAR. A permanent caveat reads: incidents are ODOT-reported on Oregon state highways, confirm on TripCheck, and Washington roads are not included yet. The Walla Walla leg crosses into Washington and uses Oregon-side ODOT plus fire proximity only, with an inline note.
Data sources for the Drive Board (all keyless): NIFC/WFIGS fire perimeters and
VIIRS hotspots through the /api/fires proxy on a wide regional bbox; ODOT
Traffic Incidents fetched directly in the browser (CORS-open); NWS active alerts
for a Red Flag Warning or Fire Weather Watch banner; Open-Meteo wind. Driving
routes are baked from the OSRM demo server once at build time and committed, so
there is no runtime dependency on that server (a missing route falls back to a
straight line).
The regional path runs entirely on the main thread with plain GeoJSON and arithmetic; the heavy terrain and viewshed pipeline only spins up when you inspect a specific area.
No API keys. Everything runs on free, keyless public data:
You draw the ground. Search to a location, then drag a rectangle over the area you want to assess (soft cap about 60 sq km).
The app builds the parcel. A Web Worker fetches elevation and imagery tiles, decodes a metric heightmap, and classifies a vegetation fuel density mask (slope-suppressed so bare cliffs do not read as fuel).
It pulls live fire data. Current interagency perimeters and recent VIIRS hotspots in and around the area come through the serverless proxy; the nearest active fire distance is computed for the area.
It reads the wind. Current wind speed and direction at the area center come from Open-Meteo and feed both the display and the spread model.
It models spread risk. For every cell the app blends three transparent factors:
| Factor | What raises risk |
|---|---|
| Fuel | Denser canopy/vegetation carries fire faster |
| Slope | Fire spreads faster uphill, so upslope cells are riskier |
| Wind | Cells downwind of higher fuel and of active fire are riskier |
Cells on or next to an active perimeter or hotspot are treated as maximum risk, and the risk decays with distance from active fire.
It ranks spots. Depending on your goal it casts line-of-sight from a grid of candidate positions (eye at ground plus your chosen height, terrain plus tall fuel as the occluder) and blends the factors below:
Each result gets a 55 to 99 rating, a plain-English reason, the visible fire-prone acreage, and the distance to the nearest active fire.
You explore. Toggle the spread-risk heatmap and the fire overlay, open any spot in a 3D terrain view with the risk tint, its line-of-sight footprint, and a wind arrow, and export the ranked spots as GPX or KML.
Deep links: the Drive Board accepts ?city=pendleton (the default hub) and
?to=<town id> to preselect a corridor (for example ?to=lagrande). Any inspect
area works through the shareable box link, for example
?bbox=-118.6,45.2,-118.0,45.6, which opens straight into the terrain analysis as
before.
A small toggle at the top-right of the map switches the basemap between
Satellite (Esri World Imagery, the default) and Street (Esri World
Topographic, which carries street and topo detail you can zoom into). Both are
keyless Esri raster tiles. On the satellite basemap a keyless Esri reference
overlay adds place and road labels so it is not label-less. The choice is saved
to localStorage. Switching only swaps the basemap source tiles, so the fire,
route, town, and draw-box overlays are untouched and the draw-a-box analysis
keeps working on either basemap.
Each destination town and the Pendleton hub carry a name label beside their marker, with a dark halo so they stay readable on the bright satellite imagery. The verdict color stays on the dot; the label text is neutral so the two never clash.
The Walla Walla leg crosses into Washington, where ODOT data does not apply.
When a free WSDOT access code is configured (see the env var below) the app pulls
WSDOT HighwayAlerts for the Walla Walla / US-12 corridor through the
/api/wa-alerts serverless proxy and folds them into that leg's verdict exactly
like ODOT incidents: a closure or wildfire forces AVOID, any other alert is
CAUTION. The proxy is env-gated and graceful: with no key set it returns
{ "configured": false, "alerts": [] } (HTTP 200, never 500) and the app keeps
its honest "Washington roads are not included yet" note; if WSDOT is down it
degrades to the same note rather than crashing. The access code never reaches the
browser; it is read server-side from the env var.
| Variable | Required | Purpose |
|---|---|---|
WSDOT_ACCESS_CODE | No | Free WSDOT Traveler Information API access code. When set, the /api/wa-alerts proxy pulls Washington HighwayAlerts for the Walla Walla corridor and the Walla Walla leg reflects WSDOT closures. When unset, the app degrades gracefully to the honest "Washington roads not included yet" note. Set it in the Vercel project environment (and in a local .env, copied from .env.example, for dev). Request a free code at https://wsdot.wa.gov/traffic/api/ |
bun install
bun run dev # http://localhost:5173, serverless proxies mirrored as dev middleware
bun run build # production build into dist/
bun run preview # serve the production build
bun run check # bun fmt --check, bun lint and the build
Bun 1.4 or newer. Vite is still the dev server and bundler; the scripts run it on
the Bun runtime, which also loads .env into process.env for the dev proxies.
bun fmt ships in Bun 1.4.4, but bun lint only exists on Bun canary for now
(bun upgrade --canary), so CI runs both on canary and keeps the build job on the
pinned Bun release. The /api/tiles, /api/fires, and /api/wa-alerts routes run
as Vercel serverless functions in production and as Vite dev middleware locally,
so the app behaves identically in both. To exercise the Washington alerts path in
dev, copy .env.example to .env and set WSDOT_ACCESS_CODE; without it the WA
leg shows the honest "not included yet" note.
Fire perimeters and hotspots reflect the public NIFC feeds and can lag real conditions; perimeters are mapped periodically and hotspots are satellite passes, not a continuous watch. The spread model is a transparent terrain, fuel, and wind heuristic for situational awareness, not a calibrated fire-behavior forecast. Fuel is inferred from imagery, not a ground survey.
This tool is for awareness and planning only. It is not a fire forecast, an evacuation order, or a substitute for official guidance. In a real fire, follow InciWeb, local authorities, and emergency services.