如何全面解析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(必填) 步骤的唯一标识符。
阅读全文