3. 海洋声学环境建模数据准备
水声传播建模的精度,很大程度上不取决于传播模型本身有多复杂,而取决于输入的环境数据是否真实、完整、时空匹配。一个再精细的抛物方程或射线追踪求解器,如果拿到的是错误的海深或粗糙的声速剖面,输出的传播损失曲线同样不可信。本节围绕四类基础环境数据——地形(水深)、底质、声速剖面、海面统计——说明它们的来源、常见格式,并演示如何把它们组织成一个可查询、可校验的小型海域环境数据库。
四类环境数据的来源与格式
地形数据描述海底高程,是确定海深、海底坡度与反射几何的基础。常用来源包括全球性的 GEBCO 网格(约 15 弧秒分辨率)、SRTM15+,以及区域性的多波束测深成果。格式上,GEBCO 以 NetCDF 或 Esri ASCII Grid 分发,后者是纯文本,头部含 ncols、nrows、xllcorner、yllcorner、cellsize、NODATA_value 六个关键字,随后按行存储高程值,非常适合教学与小区域处理。建模时通常需要把经纬度网格重采样到模型的计算网格上,并注意高程正负号约定:GEBCO 中海洋为负值,而多数声学模型要求“水深”为正值,转换时必须显式取反。
底质数据提供海底沉积物类型及其声学参数。来源可以是区域沉积物类型图、公开的沉积物数据库,或由取样与浅地层剖面反演得到的参数。声学建模真正需要的是密度、声速、衰减系数,有时还包括层厚与分层结构。常见做法是建立“沉积物类型—声学参数”映射表,例如把“细砂”映射为密度约 1.9 g/cm³、声速约 1700 m/s、衰减约 0.5 dB/λ 的示例取值(此处为教学假设值,实际应引用实测或文献数据)。格式上多为矢量多边形(Shapefile/GeoJSON)或栅格分类图,需要与地形网格做空间叠加。
声速剖面数据是传播建模中最敏感的参数。来源包括 CTD 实测、XBT 抛弃式温深仪、Argo 浮标,以及 WOA、HYCOM 等气候态或再分析产品。格式常见为文本列式(深度、温度、盐度、声速)或 NetCDF。声速可由温度、盐度、深度经经验公式(如 Mackenzie 九项式)计算得到。建模时需要把离散剖面插值到模型层深,并注意剖面具有明显的季节与区域差异,不能用一个剖面代表全年全海域。
海面统计数据主要包括风速、有效波高与海况等级,用于估计海面粗糙度对反射与散射的影响。来源为气象再分析(如 ERA5)、浮标观测或船舶报。格式多为时间序列或时空网格。建模中常把风速换算为海面均方根波高,作为海面边界条件输入。
构建一个简单海域环境数据库
下面以一个教学假设的小海域为例:范围 118°E–122°E、20°N–24°N,计算网格 0.01°,水深 20–3000 m。数据库不必一开始就上大型 GIS 系统,用 SQLite 加若干表即可满足查询与追溯需求。核心表设计如下:
-- 地形表:每个网格点一行
CREATE TABLE bathy (
lon REAL, lat REAL,
depth_m REAL, -- 已转为正值水深
src TEXT, -- 数据来源标识
PRIMARY KEY (lon, lat)
);
-- 底质参数表:类型到声学参数的映射
CREATE TABLE sediment (
sed_type TEXT PRIMARY KEY,
rho_gcm3 REAL, c_mps REAL, atten_dblambda REAL
);
-- 声速剖面表:按站位与季节存储
CREATE TABLE ssp (
station_id TEXT, season TEXT,
depth_m REAL, c_mps REAL
);
-- 海面统计表
CREATE TABLE seastate (
lon REAL, lat REAL, month INTEGER,
wind_ms REAL, hs_m REAL
);
数据入库前先做统一化:把 GEBCO 的负高程取反为正值水深,把底质多边形按网格中心点做空间叠加赋类型,把声速剖面按站位插值到标准层深(如 0、10、20、50、100、200 m……),把海面统计按月聚合。这样四类数据都落在同一套经纬度网格与同一套深度基准上,后续模型读取时只需按坐标查询。
数据质量控制的关键检查
质量控制不是入库后的可选项,而是入库流程的一部分。对地形,检查是否存在异常尖峰(相邻网格水深差超过阈值,如 500 m 即需复核)、是否存在 NODATA 空洞,以及陆地与海洋边界是否合理。对声速剖面,重点检查声速随深度的变化是否出现非物理跳变,以及浅层是否满足预期的温度层结;若某站位声速在 10 m 内跳变超过 20 m/s,应回查原始 CTD 记录。对底质,检查类型映射是否覆盖全部网格,避免出现“未分类”区域导致模型取默认值。对海面统计,检查风速是否超出合理范围、时间序列是否有长时间缺测。
完成上述步骤后,建议为每条记录保留来源字段与入库时间,形成可追溯链条。当模型输出出现异常时,能够快速定位是哪一个环节的数据引入了偏差。环境数据库的价值不仅在于“有数据”,更在于数据之间坐标一致、单位一致、时空匹配,并且每一处修改都有据可查。