个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 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.