0xElCapitan/tremor
GitHub: 0xElCapitan/tremor
基于Node.js的地震情报构造,摄取USGS/EMSC实时地震数据并运行预测市场以生成RLMF训练证书。
Stars: 0 | Forks: 1
# TREMOR
**阈值解析与地动预言**
一个用于 [Echelon](https://github.com/AITOBIAS04/Echelon) 预测市场框架的地质情报构造,基于 [Soju](https://github.com/0xHoneyJar/loa) 的构造构建。由 [Loa](https://github.com/0xHoneyJar/loa) 使用。
## 功能说明
TREMOR 摄入来自 USGS 和 EMSC 的实时地震数据(IRIS 集成计划在 v0.2 中实现),将其转换为结构化的证据束,在地震结果上运行预测市场(剧场),并为 RLMF 管道导出经过 Brier 评分处理的训练数据。
预测市场是工厂。经过校准的训练数据是产品。
## 为什么选择地震
地震是 AI 预测市场特别好的训练数据:
- **清晰的解析** — USGS 审核目录。机器可读,无需人工解释。
- **二元结构** — 阈值是否被跨越?清晰的 Brier 目标。
- **快速周期** — 数小时到数天,而非数周。全球每月约 55 次 M5.0+ 事件。
- **外生的** — 无反身性。预测不会影响地震。
- **免费数据** — 所有来源都是公开的、全天候可用的、机器可读的 GeoJSON。
## 快速开始
```
# 克隆
git clone https://github.com/0xElCapitan/tremor.git
cd tremor
# 无需 npm install — 零外部依赖
# 需要 Node.js 20+
# 运行测试
node --test test/tremor.test.js
# 轮询 USGS 数据源(独立运行)
node src/oracles/usgs.js m4.5_day
# 作为库使用
```
```
import { TremorConstruct } from './src/index.js';
const tremor = new TremorConstruct({
feedType: 'm4.5_hour',
pollIntervalMs: 60_000,
});
// Open a prediction market
tremor.openMagnitudeGate({
region_name: 'Cascadia',
region_bbox: [-130, 40, -120, 50],
magnitude_threshold: 5.0,
window_hours: 24,
base_rate: 0.12,
});
// Start polling
tremor.start();
// Later: check state
console.log(tremor.getState());
// Get exported RLMF certificates
const certs = tremor.getCertificates();
```
## v0.1.1:校准与安全版本
此版本添加了经验校准并包含全面的安全修复和治理:
- **5 个关键安全修复**:竞态条件防护、NaN 保护、原子导出、输入验证、轮询韧性
- **全面测试套件**:22 个套件中的 70 个测试(48 个基线 + 22 个回归测试证明修复有效)
- **所有测试通过**:70/70 ✓
- **治理结构**:安全策略、贡献指南、GitHub Actions CI
- **零外部依赖**:仅 Node.js 20+
详细更改请参阅 [CHANGELOG.md](CHANGELOG.md),安全策略请参阅 [SECURITY.md](SECURITY.md),贡献指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 验证
- **70/70 测试通过**(48 个基线 + 22 个回归)
- **GitHub Actions CI** 在推送和 PR 时运行
- **零外部依赖**
- **AGPL-3.0 许可**
- **校准进行中** — 参见下方状态表
## 架构
```
tremor/
├── src/
│ ├── index.js # Construct entrypoint + main loop
│ ├── skills/
│ │ └── seismic.md # Specialization profile
│ ├── oracles/
│ │ ├── usgs.js # USGS GeoJSON poller
│ │ └── emsc.js # EMSC cross-validation
│ ├── theatres/
│ │ ├── mag-gate.js # Magnitude Gate (binary threshold)
│ │ ├── aftershock.js # Aftershock Cascade (multi-class Omori)
│ │ ├── swarm.js # Swarm Watch (b-value escalation)
│ │ ├── depth.js # Depth Regime (subduction zone)
│ │ └── paradox.js # Oracle Divergence (Paradox Engine)
│ ├── processor/
│ │ ├── bundles.js # Evidence bundle construction
│ │ ├── quality.js # Quality scoring + density normalization
│ │ ├── magnitude.js # Magnitude uncertainty + doubt pricing
│ │ ├── settlement.js # 3-tier settlement logic
│ │ └── regions.js # Regional network profiles
│ └── rlmf/
│ └── certificates.js # RLMF training data export
├── spec/
│ └── construct.json # Machine-readable construct spec
├── test/
│ ├── tremor.test.js # Baseline test suite (48 tests)
│ └── post-audit.test.js # Sprint-1 regression suite (22 tests)
├── BUTTERFREEZONE.md # Agent-facing project interface
├── .env.example
├── package.json
└── README.md
```
## 校准状态
| 组件 | 状态 | 证据 |
|-----------|--------|----------|
| 区域配置文件 | 从目录测量 | USGS FDSN 目录,M4.5+,2021–2026 |
| Omori K(俯冲) | 回测派生 | 运行 5 次,3 个序列,平均误差 6.9% |
| Omori K(转换) | 回测派生 | 运行 5 次,2 个序列,平均误差 16.9% |
| Omori K(板内) | 回测派生(临时) | 运行 5 次,2 个序列,边缘 — 生产使用前需审查 |
| Omori K(火山/默认) | 待校准 | — |
| Omori c、p、bath_delta | 待校准 | — |
| 怀疑价格 CI | 数据访问受阻 | 公开 API 中未保留自动阶段记录 |
| 结算折扣 | 数据访问受阻 | 同上 |
| 质量权重 | 数据访问受阻 | 同上 |
## 三项校准优化
### 1. 状态翻转延迟
USGS "审核" 状态可能需要数小时到数周。TREMOR 使用三层结算:
| 层级 | 条件 | Brier 折扣 |
|------|-----------|----------------|
| 预言机 | `status=reviewed` | 0% |
| 临时成熟 | 自动,超过 2 小时,稳定,交叉验证,质量>0.5 | 10% |
| 市场冻结 | 剧场即将到期,数据不足 | 20% |
未经审核的事件 7 天硬过期(25% 折扣)。
### 2. 台站密度偏差
地震网络在富裕地区更密集。TREMOR 针对 8 个区域配置文件对质量指标进行标准化,这样日本的 40° 方位角间隙(密集)不会与南太平洋的 40°(稀疏)得分相同。
### 3. 震级不确定性
"怀疑价格"(0-1)告诉构造在阈值决策中应折扣多少震级读数。根据震级类型( Mw vs Ml)、台站数量、网络密度和审核状态计算。
## 剧场模板
| 模板 | 问题 | 解析 | 时间范围 |
|----------|----------|------------|-----------|
| 震级门限 | 区域 Y 在 Z 小时内会发生 M≥X 吗? | 二元 | 4h–72h |
| 余震序列 | 72 小时内有多少次 M≥X 余震? | 5 个区间 | 72h |
| 群震监测 | 群震在 7 天内会产生 M≥X 吗? | 二元 | 7 天 |
| 深度 regime | 浅源还是深源? | 二元 | 最长 14 天 |
| 预言机分歧 | 审核震级与自动震级会相差≥0.3 吗? | 二元 | 1h–48h |
## 依赖项
无。仅 Node.js 20+(使用内置的 `fetch` 和 `node:test`)。
## 许可
AGPL-3.0
标签:AI训练数据, Apex, Brier评分, Echelon框架, EMSC, GeoJSON, GNU通用公共许可证, Loa, MITM代理, Node.js, Oracle预言机, RLMF, Soju, USGS, 二分类预测, 地震情报, 地震数据, 地震监测, 地震预测, 外生事件预测, 实时数据处理, 数据可视化, 数据管道, 机器学习, 结构化数据, 软件工程, 金融市场预测, 预测市场