如何全面解析YAML流水线格式?
摘要:layout: default title: "第四章:YAML 流水线格式完全解析" 第四章:YAML 流水线格式完全解析 GeoPipeAgent 使用 YAML 文件描述分析流水线。
第四章:YAML 流水线格式完全解析
GeoPipeAgent 使用 YAML 文件描述分析流水线。本章完整解析 YAML 格式的每一个字段,帮助你深刻理解流水线的结构规则。
4.1 顶层结构
所有 GeoPipeAgent 流水线 YAML 文件必须有一个顶层 pipeline: 键,所有流水线字段均嵌套在其下:
pipeline:
name: "流水线名称" # 必填
description: "流水线描述" # 可选
crs: "EPSG:4326" # 可选,全局默认 CRS
variables: # 可选,变量字典
var_name: value
steps: # 必填,步骤列表
- id: step_id
use: category.action
params:
key: value
on_error: fail
when: "条件表达式"
backend: native_python
outputs: # 可选,输出声明
result: "$step_id"
常见错误:忘记顶层 pipeline: 键。这会导致 PipelineParseError: Missing 'pipeline' key at the top level。
4.2 pipeline.name(必填)
流水线名称,字符串类型,出现在 JSON 执行报告的 pipeline 字段中。
pipeline:
name: "建筑物数据质检流水线"
规范建议:使用描述性名称,体现分析目的和数据类型。
4.3 pipeline.description(可选)
流水线的详细描述,字符串类型,用于说明分析目的、数据来源、输出格式等。
pipeline:
name: "NDVI 计算"
description: "读取多光谱影像,使用波段4(近红外)和波段3(红)计算 NDVI,输出为 GeoTIFF"
4.4 pipeline.crs(可选)
全局默认坐标参考系,EPSG 代码字符串(如 "EPSG:4326")。当步骤没有指定 CRS 时,可参考该值。
pipeline:
name: "全国城市分析"
crs: "EPSG:4326"
注意:crs 字段目前是元数据性质,不会自动对步骤进行投影转换。需要转换坐标系时,仍需显式使用 vector.reproject 或 raster.reproject 步骤。
4.5 pipeline.variables(可选)
变量字典,定义可在步骤参数中复用的值。支持字符串、数字、布尔值等类型。
pipeline:
variables:
input_path: "data/buildings.shp"
buffer_dist: 100
output_format: "GeoJSON"
simplify_tolerance: 0.001
enable_qc: true
变量通过 ${变量名} 语法引用(详见第五章)。--var 命令行参数可在运行时覆盖变量值。
变量值的类型规则:
当整个参数值是单一 ${var} 引用时,值的类型等于变量的原始类型(数字仍是数字)
当变量嵌入字符串中(如 "path/${var}.geojson")时,变量被转为字符串拼接
4.6 pipeline.steps(必填)
步骤列表,是流水线的核心,定义分析工作流。步骤按列表顺序依次执行。
pipeline:
steps:
- id: step-1
use: io.read_vector
params: { path: "data/input.shp" }
- id: step-2
use: vector.buffer
params: { input: "$step-1", distance: 100 }
4.6.1 步骤字段详解
每个步骤都是一个包含以下字段的 YAML 映射:
id(必填)
步骤的唯一标识符。
