简介面向地震勘探与工程物探人员这份压缩包集成了面波处理与剖面连接所需的核心工具与配套文档。资源包含CCSWSWIN面波处理软件与CCSWSMAP速度分层软件前者完成去噪、相位解缠、频率域与时频分析及面波成像后者实现速度模型构建、层析成像、剖面连接与可视化二者衔接可形成从数据预处理到地下速度模型输出的完整工作流。包内共91个文件以exe可执行程序、doc使用说明、gif/htm帮助页面以及sys/dll驱动文件为主压缩包仅1.8MB便于携带和快速部署。配套的软件使用说明、仪器连接和加密狗驱动等内容能帮助用户解决环境配置与数据导入中的常见问题提升上手效率。目前已有917人学习下载适合需要系统掌握面波法数据处理与剖面拼接技术的地球物理研究者、工程勘察人员及相关专业学生。1. 面波处理及剖面连接软件到底在解决什么问题外业回来一条测线上几十炮多道面波记录真正让人熬夜的往往不是采集而是怎么稳定地提取频散曲线、再把相邻排列连成一张能写进报告的速度剖面。面波处理及剖面连接软件做的正是这条流水线把多道记录变换到频散谱沿能量峰拾取相速度-频率曲线逐点反演横波速度最终按桩号拼成二维剖面。它面向的是工程勘察、地灾调查、场地波速测试这些要出地层速度模型的场景。一个反直觉的事实是剖面连不上绝大多数不是反演算法的问题而是前级频散提取和处理参数没做到全测线统一。2. 从单炮记录到频散谱面波处理的核心逻辑2.1 频散特性为什么能反演地层结构瑞雷面波在层状介质里传播不同频率对应不同波长敏感深度不一样。高频短波长的能量集中在浅层反映表层速度低频长波长穿透更深带着深部信息。这就形成相速度随频率变化的频散现象。把实测频散曲线和理论正演曲线反复比对不断调整一维速度模型去拟合就能反演出深度-速度结构。工程上常用探测深度约为波长的一半到三分之一这一条决定了排列长度和道间距设计也是后面所有处理参数选择的地基。处理软件弹出的频散谱界面纵轴通常是相速度横轴是频率能量团最亮的位置对应面波能量集中处。成层性好的场地谱上只有一条连续亮带地下速度横向变化剧烈时亮带会分叉、变宽。分叉不仅反映地层也反映观测系统同样的场地道间距和排列长度不同频散谱分辨能力完全不同。所以拿到数据先别急着让软件自动跑花五分钟确认采集参数和处理参数匹配比事后反复调谱省心得多。基阶模态能量最强处理时优先拾取它。高阶模态在速度差异明显的层状介质、且频率较高时会出现一旦混进拾取点反演出的速度会被系统性拉高。软件自动拾取往往能抓出一串峰但哪些峰该要、哪些该丢还是得人来判断。这部分做不好后面剖面连接的时候就会出现一条测线两种颜色断带。频散谱处理在刚上手时有点玄学本质上是人对能量团走向的判断经验在起作用。2.2 主动源与被动源两种路径的衔接工程勘察里最常见的面波数据是主动源激发得到的多道面波分析用线性检波排列接收锤击或落重作震源。主动源方法信噪比高、频带宽浅层分辨率好适合0到30米深度范围。震源能量决定了低频成分是否足够排列长度又决定能有效接收多低的频率。常见浅层配置是24道或48道道间距2到5米首偏移距取道间距的1到2倍这样既有浅层分辨率又不至于让近场效应污染面波。被动源面波利用天然微动用台阵或长线性排列接收通过SPAC、ESPAC或F-K方法提取频散谱。它的优势在低频端能探测到百米级但浅层几米以内的速度通常约束不住。实际项目经常把主动源和被动源配合用一条测线上表层用主动源深部用被动源。问题出在交接口主动源低频常常下不到5Hz被动源高频到8Hz以上信噪比就不行了两套数据在频带上留缺口。处理软件里主动源和被动源的界面通常分开到剖面模块才合到一起。我不会强行把两套频散曲线合并成一条去反演正确做法是先各自反演再在重合深度范围内检查速度一致性。剖面连接时两套结果的差别超过10%就要警惕多半是其中一套的频带太窄反演结果失真。这个衔接环节是剖面从单点走向二维时最容易被忽略的坑。2.3 进软件前的记录质量判别处理流程第一步不是提取频散而是对原始道集做质量检查。面波在记录上应呈近似线性的同相轴斜率对应相速度。若是同相轴断断续续、不同道间相位跳动明显先查检波器耦合和道距这类记录进软件后频散谱往往一团模糊后面做再多补救都费劲。滤波和增益设置也要在这个阶段定下来。带通滤波宁宽勿窄面波有效频带通常在几赫兹到几十赫兹切太狠会把频散谱边缘的有效能量切掉。自动增益AGC时窗不要一刀切时窗过短会把面波振幅压平频散谱能量团变钝时窗过长早到的强振幅又会影响后面弱信号。常见做法是用覆盖整个记录长度的时窗先做带通滤波再做一次振幅均衡最后再看道间振幅差异是否在可控范围。我处理一条测线前会先抽三炮做全流程试算确认频散谱形态稳定再批量跑剩余数据。批量跑完也不是直接信每十条抽一条检查谱面因为自动批量处理时总有几炮受野外地表条件影响出现异常。这个习惯能省掉后面剖面连接时一大半麻烦。3. 跑通一条测线从原始记录到可连接的频散曲线3.1 数据组织先建一份桩号台账外业数据文件名常常不带完整位置信息一条测线上每个测点记录需要知道排列中心桩号、道间距、偏移距、采样率。常见做法是采集时记施工台账处理前用脚本把文件名和台账核对一遍避免把不同线的炮混进同一条剖面。import os import re import csv # 假设文件名形如 line01_shot024.sgy台账在 survey_log.csv # survey_log.csv 每行: shot_no, station_km, offset_first, geophone_spacing, sample_dt shots [] for name in os.listdir(raw): m re.search(rline(\d)_shot(\d)\.sgy$, name) if not m: continue line, shot int(m.group(1)), int(m.group(2)) shots.append((name, line, shot)) with open(survey_log.csv, newline, encodingutf-8) as f: reader csv.DictReader(f) log {row[shot_no]: row for row in reader} # 检查台账与文件是否对得上对不上就报警 missing [s for s in shots if str(s[2]) not in log] if missing: for name, line, shot in missing: print(fWARN: {name} 在台账里找不到 shot_no{shot}) else: print(fok: {len(shots)} 炮全部有台账记录)这段脚本做的事很简单扫描原始目录用正则从文件名里提取线号和炮号再和台账CSV对比。实际项目里最怕的不是文件名乱而是乱到没有规律。头段里的炮检距如果缺失或写错剖面连接后会出现假的构造扭曲后期排查极耗时间。参数上有三个注意点一是正则模式必须和现场命名规则一致命名不规范的先批量改名再进处理二是台账里station_km用公里桩号而不用炮序号因为剖面横坐标是桩号三是sample_dt单位要统一到秒不同采集系统可能给微秒或毫秒混用会让频散谱频率轴整体错位。3.2 相移法频散谱计算核心代码与四个调参点多道面波频散谱提取最常用的是相移法。它先把每道做傅里叶变换再对每个候选相速度施加对应的相位延迟叠加后的能量极大值对应真实频散曲线的位置。import numpy as np def compute_dispersion_spectrum(data, dt, offsets, cmin, cmax, nc, fmin, fmax): data: 二维数组 (n_channel, n_sample)按偏移距从小到大排列 dt: 采样间隔秒 offsets: 各道的偏移距米 cmin, cmax: 相速度扫描范围米/秒 nc: 相速度扫描道数 fmin, fmax: 频散谱计算频率范围赫兹 返回 freq, c_axis, spec n_channel, n_sample data.shape # 振幅均衡每道按RMS归一避免近道远道振幅差把谱淹没 data data / (np.sqrt(np.mean(data**2, axis1, keepdimsTrue)) 1e-12) spec_fft np.fft.rfft(data, axis1) freq_axis np.fft.rfftfreq(n_sample, ddt) f_index np.where((freq_axis fmin) (freq_axis fmax))[0] if len(f_index) 3: raise ValueError(有效频点数不足请检查滤波和采样率) freq freq_axis[f_index] U spec_fft[:, f_index] # (n_channel, n_freq) c_axis np.linspace(cmin, cmax, nc) spec np.zeros((len(freq), nc), dtypenp.float64) for j, c in enumerate(c_axis): # 相位校正矩阵每道按相对偏移距 exp(i*2*pi*f*x/c) phase np.exp(1j * 2 * np.pi * np.outer(freq, offsets) / c) stack np.sum(U * phase.T, axis0) # (n_freq,) spec[:, j] np.abs(stack) / n_channel return freq, c_axis, spec这段代码最关键的是offsets参数。它不是道间距而是每道到震源的真实偏移距。很多人自己编脚本时直接用道序号乘道间距首偏移距不为零时频散谱低频端看着对但速度值整体偏移。把真实偏移距代入谱峰位置才代表正确的相速度。四个参数对结果影响最大fmin/fmax按有效频带定浅层勘探常见5到60Hz深部探测往低频收cmin/cmax要覆盖目标相速度范围浅层通常100到1200米每秒别只盯着横波速度高频端相速度可以比横波速度高出不少nc不必过密300到600个点够用再多只增加计算量振幅均衡用RMS归一比时域AGC更稳能避免单道强噪声抬高整条谱。from obspy import read # 读取单炮记录0道为偏移距最近的道 st read(line01_shot024.sgy) data np.array([tr.data for tr in st]).T freq, c_axis, spec compute_dispersion_spectrum( data, dt0.001, offsetsnp.arange(st.count()) * 3.0 6.0, cmin100, cmax1200, nc400, fmin5, fmax60)提示这段示例里的偏移距是示意实际必须从SEG-Y头段读取道距和首偏移距不要按道序号直接乘道间距。频散谱出来以后先看能量团是否连续成带如果断断续续优先检查原始道集而不是调扫描参数。3.3 频散曲线拾取能量峰判定与质量门槛谱面上的能量峰不都是基阶模态自动拾取之前要先人工确定基阶走向。常见做法是先用软件自动搜索局部极大值再逐点确认低于背景噪声1.2倍的能量峰直接剔除。质量检查项合格标准不合格处理有效频带宽度覆盖频带至少10Hz以上检查排列长度是否足够相邻频率速度跳变相邻点相对变化小于15%检查是否串入高阶模态峰值清晰度峰值能量大于背景2倍增加叠加次数、重做滤波频带两端收敛高频端趋向浅层真实速度正常现象不要强行拾取最容易误操作的是最后一条。频散曲线在频带边界能量弱光标一晃就点歪相邻排列的曲线就会在高频端分叉。我的原则是只保留能量峰清晰、信噪比够的频段不为了曲线好看去补点。补出来的点在反演阶段会变成剖面上一小块孤立的异常体到时候解释起来比重新拾取还麻烦。3.4 剖面连接相邻排列一致性检查与重叠区处理单点频散曲线提取完成后做剖面连接前先跑一遍相邻排列一致性检查。这一步很快能省掉大量后期修补。def check_adjacent_consistency(curves, stations, threshold0.15): curves: dict, keys为测点序号values为(freq_array, phase_vel_array) stations: 按桩号升序排列的测点序号列表 threshold: 相邻测点重叠频段平均速度差异阈值 for a, b in zip(stations[:-1], stations[1:]): fa, va curves[a] fb, vb curves[b] lo max(fa[0], fb[0]) hi min(fa[-1], fb[-1]) if hi - lo 5.0: print(f{a}-{b}: 重叠频带不足5Hz, 检查频率范围) continue m (fa lo) (fa hi) n (fb lo) (fb hi) diff np.mean(np.abs(va[m] - vb[n]) / np.maximum(va[m], vb[n])) flag OK if diff threshold else CHECK print(f{a}-{b}: 平均差异{diff:.1%}, {flag})脚本判断的是相邻测点在共同频带内速度差异频率轴必须先统一重采样再跑。差异超过15%时别急着手工改曲线这一步背后的常见原因是两炮增益时窗、滤波频带或道编辑不一致回到原始记录重处理而不是在频散域硬掰。硬掰后的曲线反演出来剖面在排列边界处会出现假断层。剖面连接本身有两条路线。第一种是先把相邻测点频散曲线做横向插值再统一反演好处是结果横向平滑缺点是地层横向变化剧烈时会抹掉真实界面。第二种是逐点一维反演再把速度模型插值成二维剖面目前更多项目用这条因为每个测点保留独立纵向分辨率。我一般先逐点反演看到剖面上的异常再决定哪几个点要重处理。插值参数在下一章展开。4. 从多组频散曲线到二维速度剖面反演参数与成像设置4.1 逐点一维反演初始模型与目标函数怎么定反演本质上是个黑匣子初始模型给得不一样结果能差出一整套地层。反演前要把频散曲线按对数频率间隔重采样因为原始拾取点低频端通常更密不重采样会让拟合时低频权重过高。目标函数一般用实测与理论频散曲线的归一化残差软件界面里都有拟合误差输出误差大于10%时要先改初始模型重跑而不是反复加大迭代次数。初始层参数常见取值说明层数5到8层层太少拟合不到位层太多引入假层层厚递增1.1到1.3倍深层分辨率低但模型稳定横波速度范围150到1000 m/s按场地土质和基岩深度调整泊松比0.30到0.45松散填土取高值完整基岩取低密度1.8到2.4 g/cm³可用纵波速度经验公式换算场地内如果有钻孔岩性资料初始模型的速度分层参考钻孔深度反演收敛快得多。没有钻孔的用多次随机初始模型跑取拟合误差最小且剖面横向连续的结果。地质体横向连续反演结果也应该横向连续这是判断结果是否可信的重要线索。4.2 二维网格与插值测点距、搜索半径与空值速度剖面成像的网格决定空间分辨率。水平网格取测点距的二分之一到一倍垂直方向取0.5到1米一格。网格太密会看到横向锯齿太稀会把低速夹层抹平。常见软件支持克里金、径向基函数RBF和反距离加权测点分布均匀时RBF表现最好测点少或间距不匀时反距离加权更稳。插值搜索半径要覆盖至少三个测点不然单个测点反演异常会被放大成一片假异常。剖面两端无测点覆盖的区域软件会外插或留空我一般选择留空不为凑图幅强行外推。色标必须设固定范围依据场地已知最高和最低速度来定不能自动拉伸。自动拉伸会把微弱低速夹层吃进色阶里这是剖面解释阶段最常见的坑。4.3 剖面成像后的质量检查拟合误差与地层连续性剖面拼完不等于可以出图成像后还要做一轮定量检查。逐点反演误差反映单点拟合情况剖面横向连续性则反映整体可靠性。检查项合格标准处理动作单点反演拟合误差小于10%超差的调整初始模型重新反演相邻测点速度突变小于20%超过则检查原始频散曲线低速夹层连续性至少在2到3个测点可见只在单个点出现多属拾取误差界面深度与钻孔差异小于2米差异大时检查低频端约束真正的地质异常在相邻多个测点都有反映孤立的突变点多半是拾取或反演问题。剖面检查时把速度等值线和色标一起打开只看颜色容易骗自己等值线密度能暴露速度变化梯度。低速夹层在剖面上应该有一定横向延伸如果只在一个测点上出现回去看那个测点的频散谱是否在对应频段有清晰能量峰没有就重拾取。5. 剖面连接最常踩的五个坑现象、原因与处理下面几条是我实际处理过的剖面里翻车最多的场景每条都按现象、原因、解决的顺序说清楚。新手照着排查能少走弯路熟手遇到类似异常也能快速定位问题层。5.1 高频端频散谱折曲空间假频被误认成高速层现象频散谱高频端出现第二条斜向能量带拾取曲线在40Hz附近突然上翘反演后浅层出现一个异常高速薄层。原因道间距过大面波高频成分发生空间混叠。最小波长小于两倍道间距时采样不满足空间奈奎斯特条件。解决先算道间距上限道间距要小于最小相速度的两倍与最高频率的商。比如最小相速度150米每秒、最高频率50Hz道间距应不超过1.5米。现场如果道间距已经是3米就放弃高频端只取没有折曲的频率段反演不要硬把折曲段当真实高速层。5.2 偏移距太小低频段被近场效应污染现象频散谱低频段能量团宽散拾取速度忽高忽低同一条测线多炮反演出来的深层结构差别很大。原因首偏移距离震源太近记录段里体波和近场面波占比高低频段频散能量被污染。解决浅层高分辨率观测首偏移距取道间距的1到2倍深层探测还要更大。处理端不要试图用频散域滤波去压近场干扰那是观测系统问题直接野外重采或换炮比硬处理靠谱。5.3 相邻排列频散曲线台阶增益时窗不一致现象每一炮单独处理看着都没问题相邻测点一致性检查差异超过20%剖面在排列边界出现明显台阶。原因两炮处理时AGC时窗长度、滤波频带不一致拾取峰值位置系统性偏移。这个台阶是处理参数造成的不是地层变化。解决整条测线统一增益时窗和滤波频带增益时窗从面波到达前0.5秒开始覆盖整个记录段。跑相邻一致性检查脚本定位问题炮回到原始记录重处理不要在频散域手工平移曲线找齐。5.4 主动源与被动源频带缺口先各自反演再拼接现象主动源频散曲线能到6Hz被动源高频到10Hz中间重叠带只有两个频点。直接合并成一条曲线反演剖面上几十米深度出现假高速透镜体。原因两套数据灵敏度不同合并后曲线在缺口处没有约束反演跳向局部极小值。解决拆成两条输入分别反演在重合深度范围检查速度一致性不一致时调整被动源的初始模型重新反演最后拼接成剖面时标注两种数据覆盖范围别让读者以为全剖面是同一种观测方式得到的。5.5 剖面颜色看着对、速度值却整体偏高色标拉伸的陷阱现象剖面图整段颜色非常漂亮低速夹层区域内显示为高速色专家审查时对照钻孔发现速度系统性偏高15%。原因色标自动拉伸按全剖面最大最小值归一化浅层高速体把色标上限顶到很高深层低速层被压进相近色阶区分不出来。解决设置固定色标范围根据场地已知地层速度定上限。剖面出图时叠加速度等值线再放钻孔柱状图对照。速度解释以数值为准不要以颜色为准。6. 验证剖面靠不靠谱一个值得养成的收尾习惯剖面处理完成不等于可以定稿我最后总要做两件事。第一件是用理论模型合成记录跑一遍全流程确认这套处理参数在这个场地速度跨度下能恢复出正确层状结构第二件是找测线上或附近的钻孔把地层柱状图叠到剖面上核对深度。这两件事不花太久却能拦住大部分返工。合成数据自检不复杂许多处理软件自带正演模块没有的话写个两层土加基岩模型算理论频散曲线加随机噪声后走提取-反演流程。反演结果和理论模型速度相对误差控制在10%以内说明参数基本可信。参数稳定性检查成本更低拿一炮真实记录改变相速度扫描范围和振幅均衡方式重新算看看主要界面是否保持不变。界面稳定结果就不是参数凑出来的巧合。验证项操作通过标准合成数据自检构造两到三层正演模型生成面波记录走同一流程反演速度与模型速度相对误差小于10%参数稳定性同一炮改变扫描速度范围、均衡方式重算剖面主要界面不变钻孔对比将钻孔地层界线按深度叠到剖面上速度界面与地层界线偏差小于2米测线交叉点检查对比两条测线交点处的速度值差异小于10%可接受我自己在这个习惯上吃过亏有一年交出的剖面低速层不见了翻处理记录才想起初版结果里见过那层低速层当时色标自动拉伸把它显示丢了定稿前又没叠钻孔就这样带着假剖面出了报告。从那以后剖面未定稿前我强制把速度等值线和钻孔柱状图放在同一幅图里核对这一眼不省。希望帮到你。本文还有配套的精品资源点击获取