F1ReplayTiming
Visualisation of real-time track data and telemetry synced to F1 replays.
Recent earthquakes in Iran and worldwide: USGS and EMSC reports merged every 30 minutes, with a map, fault-zone tags and CSV, GeoJSON and Parquet downloads.
DataVue · PythonGitHub @FEZtool-teamOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
FEZfm v1 is an earthquake monitor. Every 30 minutes it collects reports from three agencies, merges them, stores them in DuckDB, and publishes a feed, a map and downloadable data to GitHub Pages. It needs no server.
Taken from the repository README
Loading the full README.
Read the full README ↗Fault and geohazard monitoring, part of FEZtool. Live at fezfm.feztool.com; overview at feztool.com/fezfm.
FEZfm v1 is an earthquake monitor. Every 30 minutes it collects reports from USGS and EMSC, merges them, stores them in DuckDB, and publishes a feed, a map and downloadable data to GitHub Pages. It needs no server.
| Source | Coverage | How |
|---|---|---|
| USGS | Worldwide | FDSN event service |
| EMSC | Worldwide; also relays Iranian agencies | FDSN event service at seismicportal.eu |
| IRSC, Iranian Seismological Center (University of Tehran) | Iran and adjacent areas, M2.5+ | Off by default, see below |
All events in Iran and adjacent areas are kept; elsewhere M2.5 and above. Each event is tagged with its country (or the nearest one within about 150 km offshore) for the site's country filter.
Monitor workflow, GitHub Actions (every 30 min)
├─ download fezfm.duckdb from the "data-latest" release
├─ fezfm collect fetch the last 2 days from USGS and EMSC (one failing source never stops the other)
│ merge reports of the same quake (45 s, 80 km, 1 magnitude unit)
│ tag fault zones, significant events, active sequences
├─ upload fezfm.duckdb back to the release
├─ fezfm export web/public/data: latest.json, feed.xml, CSV / GeoJSON / Parquet downloads,
│ monthly archive (archive/YYYY-MM.json and .csv)
└─ nuxt generate → GitHub Pages
The zone traces in collector/fezfm/data/fault_zones.geojson are approximate until Faultiuo's KML files are added (see below).
collector/ Python 3.12 package "fezfm" (DuckDB, httpx), tests in collector/tests
web/ Nuxt 3 static site, FEZhome design tokens, Leaflet map with a self-hosted basemap
.github/ monitor.yml (schedule + Pages), backfill.yml (manual), ci.yml (tests + build)
Collector (needs uv):
cd collector
uv run pytest -q
uv run fezfm backfill --days 7 # creates fezfm.duckdb
uv run fezfm collect # what the schedule runs
uv run fezfm export # writes ../web/public/data
Site:
cd web
npm install
npm run dev # http://localhost:3036
main on GitHub. The repository must be public for free, unlimited Actions minutes.data-latest release and deploys the site. It is served at the custom domain set under Settings → Pages, https://fezfm.feztool.com/, which is also the --site-url the workflow gives fezfm export for the Atom feed.After that the schedule runs every 30 minutes. GitHub pauses schedules in repositories with no activity for 60 days; the workflow re-enables itself on each run to prevent that.
IRSC is not collected by default. irsc.ut.ac.ir cannot be reached from outside Iran, so GitHub's runners time out on it. Iranian events come from EMSC, which relays Iranian agencies, and USGS. They carry fewer small events than IRSC: in one week of October 2026, IRSC listed 44 events in the Iran region and EMSC and USGS 11.
IRSC events collected earlier stay in the database. The IRSC source (collector/fezfm/sources/irsc.py) still works from a machine inside Iran:
uv run fezfm --db irsc.duckdb collect --source irsc
fezfm collect --snapshot irsc.duckdb merges such a snapshot into the main database.
Faultiuo reads each zone from ~/GMTdata/KML/Time_Section/<Name>.kml. With those files:
cd collector
uv run fezfm import-kml ~/GMTdata/KML/Time_Section
This replaces the approximate traces and clears the "approximate" note on the site.
collector/scripts/gebco_tiles.py.FEZfm is a research tool, not an official earthquake warning service.
Code under Apache-2.0 (see LICENSE). Documentation under CC BY 4.0.