Skip to content

Repository files navigation

SeisView —— 小型地震数据查看软件

浏览 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

数据全程本地处理,不上传。

桌面版:Windows 安装与使用

  1. Python 3.10+(勾选 Add python.exe to PATH
  2. 双击 install.bat(询问是否装 GPU 加速——有 NVIDIA 显卡选 Y)
  3. 双击 start.bat 启动;也可把 .sgy 文件直接拖到 start.bat 上打开

界面操作:工具栏选模式(炮集/共道号/CDP 道集/剖面)→ 下拉框或 ◀▶ 翻炮; 每屏道数控制横向比例(0=自适应铺满;小炮集只占部分屏宽),◀ 上页 / 下页 ▶ 或 PgUp/PgDn 道分页;滚轮缩放、拖拽平移;点击任意道弹出道头 + 底部单道波形/频谱; FK 谱 按钮打开 FK 窗口(道间距自动估计,可改;参考速度线可调)。

Linux / macOS

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,需配置 secret BLOG_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 条带暂只有网页版

About

小型地震数据查看软件:SEG-Y 炮集/道集/剖面/频谱/FK 浏览(网页版+桌面版)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages