浏览 SEG-Y 地震数据的轻量工具,网页版与桌面版功能对等、算法一致(自动化对拍验证)。
网页版 web/index.html |
桌面版 seisview/(Python) |
|
|---|---|---|
| 使用场景 | 零安装,任何浏览器打开即用;在线地址 | Windows 日常使用,大文件更快 |
| 查看模式 | 炮集 / 共道号 / CDP 道集(按偏移距排序)/ 剖面(道序、CDP 序)/ 单道 | 同左 |
| 屏幕布局 | 每屏道数可调(0=自适应,各模式分别记忆),小炮集不再强制拉伸满屏;◀▶ 道分页 | 同左 |
| 显示方式 | 变密度 / 密度+波形 / 波形(WT)/ 波形+充填(VA),削波百分位、时间网格线、双图对照(左原始右处理后,视口联动) | 同左 |
| 分析 | 单道谱、平均谱(线性/dB)、FK 谱(参考速度线可调)、F-X 谱、自相关面板、道头曲线 QC 条带 | 同左 |
| 处理链 | 增益、反极性、t^n 球面扩散补偿、道归一、AGC、梯形带通、陷波(工频消除) | 同左 |
| 卷头/道头 | 文本卷头查看(EBCDIC/ASCII 自动检测)、单道道头面板、道头表(排序 + CSV 导出)、道头统计(surange 式全字段 min/max/唯一数) | 同左 |
| 其他 | 参数模板(JSON,两版通用)、PNG 导出、框选放大、键盘快捷键 | 同左(快捷键仅分页) |
| 大文件 | GB 级按需读取(File.slice);道头索引存 IndexedDB,同一文件二次打开秒开 | memmap 收割 + .svidx.npz 缓存,二次打开 <0.1 s |
| 加速 | Web Worker 后台计算 | scipy.fft 全核并行;装 CuPy 后 FK/带通自动走 GPU |
数据全程本地处理,不上传。
- 装 Python 3.10+(勾选 Add python.exe to PATH)
- 双击
install.bat(询问是否装 GPU 加速——有 NVIDIA 显卡选 Y) - 双击
start.bat启动;也可把.sgy文件直接拖到start.bat上打开
界面操作:工具栏选模式(炮集/共道号/CDP 道集/剖面)→ 下拉框或 ◀▶ 翻炮;
每屏道数控制横向比例(0=自适应铺满;小炮集只占部分屏宽),◀ 上页 / 下页 ▶ 或
PgUp/PgDn 道分页;滚轮缩放、拖拽平移;点击任意道弹出道头 + 底部单道波形/频谱;
FK 谱 按钮打开 FK 窗口(道间距自动估计,可改;参考速度线可调)。
pip install -r requirements.txt
python -m seisview [文件.sgy]- 线上:https://csc.edu.kg/tools/seismic-viewer/
- 离线:把
web/index.html拷到任何电脑双击打开即可(自包含单文件,无外部依赖) - 发布到博客:push 到 main 后由 GitHub Action 自动同步到博客仓库并部署
(
.github/workflows/publish-web.yml,需配置 secretBLOG_PUSH_TOKEN); 手动方式:cp web/index.html ../blog/static/tools/seismic-viewer/index.html后提交博客仓库
操作速查:
| 操作 | 方式 |
|---|---|
| 横向比例 | 每屏道数输入框(0/留空=自适应;按模式分别记忆,存 localStorage) |
| 道分页 | ◀ 上页 / 下页 ▶ 按钮,或 PgUp / PgDn |
| 翻炮/道/CDP | 下拉框、◀▶ 按钮,或 ← / → 方向键 |
| 缩放 | 滚轮=双轴;Shift+滚轮=仅时间轴;Ctrl+滚轮=仅道轴 |
| 框选放大 | Shift + 拖拽画出矩形 |
| 平移 | 直接拖拽 |
| 复位 | 双击画布、复位缩放 按钮或 Home 键 |
| 道头曲线 | 工具栏道头曲线选偏移距/CDP/FFID/道号,绘于剖面上方并随视口联动 |
| 双图对照 | 勾选对照:左原始、右处理后并排,缩放/平移/选道联动,削波各自独立 |
| 文本卷头 | 卷头 按钮,EBCDIC/ASCII 自动检测 |
| 道头表 | 道头表 按钮:当前道集道序/FFID/道号/CDP/偏移距,点列头排序、点行选道、导出 CSV |
- SEG-Y rev0/1,定长道;大端/小端自动检测
- 数据格式码:1(IBM 浮点)、2/3/8(整型)、5(IEEE 浮点)等
- 道头使用字段:FFID(9-12)、道号(13-16)、CDP(21-24)、偏移距(37-40)、坐标(73-88)+比例因子(71-72)
- AGC:滑动 RMS(默认窗长 200 ms),边界收缩窗,死道置零,输出道内归一
- 带通:梯形 f1-f2-f3-f4,sin² Hann 斜坡,零相位频域实现,f4 自动钳到 Nyquist
- 陷波:逐道最小二乘拟合 f0 正弦并相减(工频消除标准做法);对稳定单频干扰 可完全消除(>60 dB),且不损伤其它频率成分
- t^n 增益:球面扩散补偿,样点乘 (i·dt)^n(t 单位 s),n=0 关闭
- F-X 谱:逐道振幅谱拼图(频率×道),全局或逐道归一,dB 显示;用于识别坏道、 单频干扰与频带横向变化(对标 SU suspecfx)
- 自相关:逐道 FFT 自相关(补零到 nextpow2(2·ns) 防循环卷绕),零延迟归一; 周期性同相轴提示多次波(对标 SU suacor)
- 道头统计:31 个常用字段全量扫描 min/max/唯一数(对标 SU surange)
- 处理链顺序:t^n → 带通 → 陷波 → 增益/反极性 → AGC 或道归一 → 削波百分位
- 平均谱:逐道归一化振幅谱的算术平均
- FK:时间轴 rFFT + 空间轴 FFT,k 轴 fftshift(单位 cycles/m);道数超上限取中央连续窗 (禁止跳道抽稀以防波数混叠);双向 10% Hann 镶边可选;附 1500 m/s 参考线
- dx 估计:偏移距差分中位数优先,其次检波点坐标(含 scalco 换算),失败则手动输入
python3 tests/test_desktop.py # 数据层 + DSP 对拍(segyio 真值)
QT_QPA_PLATFORM=offscreen python3 smoke_test.py # GUI 离屏冒烟,截图存 tests/shots/
# 网页版(需 playwright + chromium):
python3 tests/test_web.py # 浏览器端到端 + numpy 对拍
python3 tests/test_web_big.py # GB 级大文件性能seisview/
├── web/index.html # 网页版(自包含单文件)
├── seisview/
│ ├── io/segy_index.py # SEG-Y 索引(memmap 快路径 + svidx 缓存)
│ ├── dsp/ # backend(CPU/GPU) / gain / filters / spectra / fk
│ └── gui/ # pyqtgraph 界面
├── smoke_test.py # GUI 离屏冒烟
├── tests/ # 自动化验证(对拍 segyio/numpy)
├── install.bat / start.bat # Windows 一键安装/启动
└── requirements*.txt
- 变长道(各道 ns 不同)的 SEG-Y 暂不支持
- 网页版 FK 上限 1024 道 × 4096 样点;桌面版 2048 × 8192
- 波形(WT/VA)绘制限可见 ≤400 道(网页)/ ≤500 道(桌面),超出自动回退变密度
- CDP 数超过 2 万时下拉列表按步长抽样(◀▶ 仍可逐项翻页)
- 道头曲线 QC 条带暂只有网页版