4. 在QGIS中创建与编辑剖面线矢量图层

剖面线是矿区地质剖面数据提取的“骨架”。在QGIS中,剖面线并不是随手画的一条装饰线,而是一个带有明确属性结构、方向约定和拓扑约束的线矢量图层。它的质量直接决定后续沿线采样、高程提取、地层交切统计能否得到可信结果。本节围绕“新建线图层—绘制剖面线—设置属性字段—拓扑检查与修正”这一条主线展开,重点讲清楚每一步的实际操作对象、参数取值和判断依据。

一、先明确剖面线的数据约定

在动手建图层之前,必须先固定三件事,否则后续编辑会反复返工。

  • 坐标系:矿区剖面线通常使用与地质图一致的投影坐标系(例如 CGCS2000 3度带高斯-克吕格投影),而不是地理坐标系。这样“长度”字段的单位才是米,方位角计算也才有工程意义。若底图是经纬度,应在建图层时直接指定目标投影坐标系,或先重投影底图。
  • 方向约定:剖面线是有向的。约定“起点为剖面小号端、终点为大号端”,方位角按“从正北顺时针量取”的测量学约定计算,取值范围 0°~360°。全文与图示统一采用这一约定。
  • 几何类型:选择“线(LineString)”,不要用多线(MultiLineString)。单条剖面应是一条连续折线,避免出现多段分离几何导致长度统计重复或采样断裂。

二、新建剖面线矢量图层

在QGIS中通过“图层 → 新建图层 → 新建Shapefile图层”(或新建GeoPackage图层,推荐后者,便于统一管理与字段约束)创建。关键设置如下:几何类型选“线”,坐标系选矿区投影坐标系,编码选 UTF-8。图层命名建议采用“矿区代号_剖面线”的形式,例如 KY01_profile_lines,避免中文名在跨平台交换时出现乱码。

字段设计是本节的核心。剖面线至少需要三个业务字段,建议再补充两个辅助字段,形成如下结构(示例参数,可按项目实际调整):

字段名类型长度/精度含义与取值示例
line_no文本20线号,如 P01、P02
azimuth小数6,2方位角,0~360,如 135.00
length_m小数12,2剖面长度(米),如 1250.00
start_pt文本30起点说明,如“P01-起”
remark文本100备注,如“穿切F3断层”

其中 azimuth 与 length_m 不建议手工逐条填写,而应由几何自动计算后回填,减少人为误差。QGIS字段计算器中可用 length($geometry) 得到长度(投影坐标系下单位为米),方位角可用 degrees(azimuth(start_point($geometry), end_point($geometry))) 计算,但需注意该函数返回的是从正北顺时针的角度,若结果为负需加 360 归一化,例如:

-- 长度字段(投影坐标系,单位:米)
length($geometry)

-- 方位角字段(正北顺时针,0~360)
if(
  degrees(azimuth(start_point($geometry), end_point($geometry))) < 0,
  degrees(azimuth(start_point($geometry), end_point($geometry))) + 360,
  degrees(azimuth(start_point($geometry), end_point($geometry)))
)

三、绘制剖面线

进入编辑模式后,使用“添加线要素”工具沿设计剖面位置逐点点击。实操中有几个要点:

  1. 开启捕捉:在“项目 → 捕捉选项”中启用对剖面端点、已知控制点图层的捕捉,容差设为 5~10 像素,保证剖面端点与设计桩点严格重合。
  2. 控制节点数量:剖面线应尽量贴合设计方位,直线段只需起终点两个节点;仅在剖面需要拐折避让或沿实际勘探线布置时才增加节点。节点过多会让方位角字段失去“整条剖面方向”的意义。
  3. 绘制顺序即方向:先点的端点成为起点,直接决定方位角。若方向画反,方位角会相差 180°,必须在属性中修正或使用“反转线方向”工具处理。
  4. 逐条填写线号:绘制完成后在属性表中按顺序填入 line_no,再统一执行字段计算回填长度与方位角。
建议先绘制一条“标准剖面”作为样板,确认方向、长度、方位角计算无误后,再批量绘制其余剖面,可显著降低系统性错误。

四、拓扑检查与修正

剖面线图层常见的拓扑问题有四类:端点悬空(未与设计桩点重合)、线段自相交、重复线(两条剖面几乎重合)、以及方向错误导致的方位角异常。QGIS可通过“矢量 → 几何工具 → 检查几何有效性”先做几何有效性检查,再借助拓扑检查器或表达式筛选定位问题。

一个实用的批量筛查思路是用表达式选择器逐项排查:用 length($geometry) < 50 找出过短的误画线;用 azimuth 与设计方位偏差超过 2° 的记录筛选方向异常;用“按位置选择”找出端点 1 米范围内无桩点的悬空线。发现重复线时,可用“删除重复几何”工具处理。修正后务必重新执行一次字段计算,刷新长度与方位角,避免属性与几何不一致。

剖面线矢量图层:建层 → 绘制 → 属性回填 → 拓扑修正 ① 新建线图层 几何类型:LineString 坐标系:矿区投影坐标系 字段:line_no / azimuth    length_m / start_pt 编码:UTF-8 ② 绘制剖面线 开启捕捉(5~10 px) 起点→终点即方向 直线段仅需两个节点 逐条填写 line_no 端点对齐设计桩点 ③ 字段计算回填 length($geometry) azimuth(start,end) 负值 +360 归一化 单位:米 / 度 属性与几何保持一致 ④ 拓扑检查与修正(四类常见问题) 端点悬空 端点未与桩点重合 按位置选择定位 1 m 内无桩点即异常 修正:捕捉重绘端点 线段自相交 折线拐折处交叉 检查几何有效性 节点顺序错乱 修正:重排节点 重复线 两条剖面几乎重合 删除重复几何工具 保留有效线号 修正:删除冗余要素 方向错误 方位角偏差约 180° 与设计方位比对 偏差 > 2° 即复核 修正:反转线方向 修正后重新计算字段

五、结果判断与交付检查

完成上述步骤后,剖面线图层应满足以下可核验条件:所有要素几何有效、无自相交;每条线的 line_no 唯一且连续;length_m 与 length($geometry) 一致;azimuth 落在 0~360 且与设计方位偏差在允许范围内(示例取 2°);端点与设计桩点重合。建议在属性表中按 line_no 排序后逐条核对,并用“缩放到要素”快速目视检查方向箭头是否与设计一致。

常见误区:先画线后改坐标系。若在经纬度图层上绘制再重投影,长度字段会因单位变化而失真,方位角也可能因投影变形产生偏差。正确顺序是先定投影坐标系,再绘制与计算。

至此,剖面线图层已具备“可定位、可量算、可追溯”的基础属性,为后续沿线高程采样、地层交切统计和剖面图生成提供了可靠的数据入口。图层字段结构、方向约定与拓扑状态一旦固定,后续所有提取结果才有统一的口径。