npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

open_quake_sim

v6.3.1

Published

Earthquake Simulator Pro — real-time seismic wave propagation & EEW simulation for Japan

Readme

Earthquake Simulator Pro(地震模拟器 Pro)

License: MIT Node.js ≥18 CI Release npm 官网 PRs Welcome

中文 | English

面向日本的网页版地震模拟与实时地震监测系统。零依赖 Node.js 静态服务器 + Leaflet 前端,打开浏览器即可进行地震波传播、海啸、紧急地震速报(EEW)全流程模拟,并接入真实地震数据源进行 7×24 实时监测。

免责声明:本项目为科研/教育用途的模拟软件,所有震度、海啸、EEW 结果均为模型估算,不可用于防灾决策。真实地震信息请以日本气象厅(JMA)等官方发布为准。

主要功能

地震模拟

  • P/S 波传播、GMPE 震度预测(Zhao 2006 / Kanno 2006 / Si-Midorikawa,按震源类型自动路由 + 实测标定表)
  • 有限断层模型(内置 2011 东北、2016 熊本、2024 能登等 USGS 观测模型与南海海槽 M9.0 假想模型)、Okada 地表位移
  • 非线性浅水方程(NLSWE)海啸求解器(Web Worker,支持区域嵌套加密网格)、沿岸高度预报与市域淹没可视化
  • 真实检测模式(不预知震中:台站触发 → 网格搜索定位 → 震级反演 → 逐报更新,类 JQuake/PLUM)
  • 多事件连锁剧本(含"日本沉没"假想剧本)、余震序列(Omori-Utsu + ETAS,可手动编辑)、建筑损害与人口暴露估算
  • 直播/录制模式、3D 断层可视化、TTS 语音播报(日/英/中)、运行中暂停/步进(P 键、⏸ 按钮、+5 秒步进)

实时地震监测

  • JMA 紧急地震速报(Wolfx 中转):P/S 波圈实时扩张、烈度预测、预警区域着色、S 波倒计时
  • NIED 強震モニタ约 1700 台站实时烈度(方点显示、连锁摇动检测、最强台站排行)
  • P2P 地震情报(震度速报/震源信息/各地震度/长周期地震动)与海啸情报(海岸段着色 + 到达倒计时表)
  • 地震历史(USGS/EMSC 等)、服务器端 SSE 录制与时间轴回放、专属 EEW 页面、检测到事件可一键转入模拟

截图

| 模拟:首都直下 M7.3(细分区域震度预报) | 实时监测:EEW 演示 | 设置页面 | |---|---|---| | 首都直下 M7.3 模拟 | 实时监测 EEW 演示 | 设置页面 |

快速开始

npm 包方式(最简单):

npx open_quake_sim
# 或全局安装:npm install -g open_quake_sim && quake-sim
# 打开 http://localhost:3000

源码方式:

git clone https://github.com/Dongwu259/open_quake_sim.git
cd open_quake_sim
npm install
node server.js
# 打开 http://localhost:3000

要求 Node.js ≥ 18。前端依赖(Leaflet / turf)已随仓库本地提供,无需 CDN。

设置页面

侧栏底部「⚙ 设置」打开设置页面。目前提供 TTS 语音引擎选择:

  • 浏览器本地(默认):使用操作系统自带的 Web Speech API 语音,零配置、无需网络和服务器,开箱即有语音播报;可选语音与语速。
  • 服务器代理:通过本站服务器转发到自建或云端 TTS 上游,音质更好。上游地址可在本机访问时直接在设置页修改并持久化(远端访问只读,防 SSRF),也可用 TTS_UPSTREAM_URL 环境变量锁定。调用云 TTS 时可填 API Key:key 只保存在本机 settings.json,绝不回传给任何访问者;传递方式支持 ?key= 查询参数、Authorization: Bearer 与 X-API-Key 请求头三种。

后续更多设置项会加入同一页面。

可选环境变量

| 变量 | 默认 | 说明 | |------|------|------| | PORT | 3000 | 监听端口 | | TTS_UPSTREAM_URL | http://127.0.0.1:7896/tts | TTS 语音合成上游。也可在网页「设置」页面配置(本机访问时);env 变量优先级最高。无上游时语音播报自动静默降级,其余功能不受影响 | | LIVE_API_BASE | http://127.0.0.1:7891 | 多源地震收集器上游(/api/live-quakes 与目录合并)。无上游时相关列表显示"暂无数据" | | CORS_ORIGINS | 关闭 | 允许跨域的来源(逗号分隔) | | RATELIMIT_PERSIST | true | 是否持久化限流计数 | | PYTHON_BIN | python/python3 | /api/waveform 等研究接口调用的 Python 解释器 |

区域地形数据(可选)

高分辨率 GSI 区域 DEM(public/geojson/gsi/*.json)体积较大,未纳入 git。需要近岸精细地形/爬高时自行生成:

node tools/fetch-gsi-dem.js     # 下载 GSI 瓦片到 tools/data/gsi-tiles/
node tools/blend-gsi-gebco.js   # 融合生成 public/geojson/gsi/*.json

没有这些文件时系统自动回退到 GEBCO 全球网格。

同理,public/geojson/vs30.json(python tools/build_vs30.py 生成)与 K-NET/KiK-net 波形包(tools/fetch-kyoshin-waveforms.js,需 NIED 账号)也不纳入 git,缺失时对应功能自动降级或隐藏。

开发

npm test                          # 单元 + 集成测试
node tools/validate-release.js    # 发布校验(版本资源、PWA、i18n、数据目录)
node tools/bump-versions.js       # 修改 public/ 资产后刷新 ?v= 缓存指纹(提交前必跑)
npm run install-hooks             # 安装 pre-push 版本门禁钩子

静态资源采用内容哈希缓存指纹:HTML no-cache,JS/CSS 一年 immutable——修改 public/ 任何文件后必须运行 tools/bump-versions.js,否则浏览器可能长时间使用旧缓存。

文档

Docker

docker-compose up -d

数据来源与致谢

本项目为科研化改进所使用的观测数据、基准算例与地理数据来自以下机构与项目(随仓库分发的均为对原始数据的派生量——网格化/统计汇总/记分卡;原始数据获取工具见 tools/,需要账号的数据如 NIED 波形包、PS 测井原文不入库):

  • NIED 防災科学技術研究所:Hi-net / F-net 台网(1,289 站——模拟台站分布);K-NET / KiK-net 强震动观测峰值(6 事件 2,626 站,经 USGS ShakeMap 载体——GMPE 标定与记分卡);KiK-net 地表/井下谱比派生量(197 站,DOI 10.17598/NIED.0004——1D 场地反应 f0 经验先验);強震モニタ(约 1,700 台站实时烈度,服务器代理);J-SHIS 表層 AVS30(Vs30 场地网格);JIVSM V4 深部构造(工程基岩深度 / 走时 / 长周期盆地项)
  • 気象庁(JMA):地震情報細分区域官方 GIS(194 区)、EEW 区域名(188 区)、津波预报区海岸段、历史事件观测震度、長周期地震動階級官方阈值(5/15/50/100 cm/s)
  • USGS NEIC:有限断层滑移模型(Hayes 2014/2017/2018、Goldberg 2022/2024,公有领域)、地震目录、ShakeMap
  • GEBCO:GEBCO 2025 全球海深(含 Seabed 2030 贡献)——海啸求解器地形
  • Natural Earth:1:50m 海岸线(公有领域)
  • 国土地理院(GSI):区域高分辨率 DEM(可选,tools/fetch-gsi-dem.js 自行生成)——近岸海啸爬高
  • 国土交通省 国土数値情報:土地利用细分区画栅格 L03-b-14(CC BY 4.0)——海啸逐格 Manning 粗度(tools/build-landuse-manning.js 建包,0.025° 优势类降采样)
  • 内閣府 / 地震調査研究推進本部:南海海槽巨大地震假想(2012 框架)——M9.0 情景预设
  • SCEC:TPV5 动力学破裂基准官方参数(strike.scec.org/cvws)——动力学破裂求解器验证
  • NISEE(UC Berkeley EERC)/ EERA(Univ. of Memphis,Bardet 等):SHAKE-91/EERA 手册十层非线性算例与 DIAM.ACC 记录(1989 Loma Prieta, Diamond Heights 台站)——1D 场地反应外部基准
  • 实时数据流:Wolfx API、P2P 地震情報、USGS / EMSC 历史目录(Yahoo Japan 作为強震モニタ镜像回退)

地图库:Leaflet、Turf.js。GMPE / 场地反应 / 动力学破裂等模型文献的逐条引用见 docs/PHYSICS_BENCHMARKS.md 与 docs/METHODS.md。

English

The full English README lives at README_EN.md.

License

MIT © 2026 Dongwu259