如何快速搭建第一个基于的流水线?
摘要:layout: default title: "第三章:快速上手第一个流水线" 第三章:快速上手第一个流水线 本章通过一个完整的实战示例,带你从零到运行第一个 GeoPipeAgent 流
第三章:快速上手第一个流水线
本章通过一个完整的实战示例,带你从零到运行第一个 GeoPipeAgent 流水线,体验 AI 生成 → 框架执行的完整闭环。
3.1 准备测试数据
首先创建工作目录和测试数据:
mkdir -p my-gis-project/data
mkdir -p my-gis-project/output
cd my-gis-project
创建一个简单的测试 GeoJSON 文件 data/roads.geojson:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {"name": "主干道", "type": "primary"},
"geometry": {
"type": "LineString",
"coordinates": [[116.3, 39.9], [116.4, 39.9], [116.5, 39.95]]
}
},
{
"type": "Feature",
"properties": {"name": "次干道", "type": "secondary"},
"geometry": {
"type": "LineString",
"coordinates": [[116.35, 39.85], [116.35, 39.95], [116.45, 39.95]]
}
}
]
}
3.2 编写第一个 YAML 流水线
在 my-gis-project/ 目录下创建流水线文件 buffer-pipeline.yaml:
pipeline:
name: "道路缓冲区分析"
description: "对道路数据做投影转换后进行缓冲区分析,将结果保存为 GeoJSON"
variables:
input_path: "data/roads.geojson"
buffer_dist: 0.01
output_path: "output/road_buffer.geojson"
steps:
- id: load-roads
use: io.read_vector
params:
path: "${input_path}"
- id: buffer-roads
use: vector.buffer
params:
input: "$load-roads"
distance: "${buffer_dist}"
cap_style: "round"
- id: save-result
use: io.write_vector
params:
input: "$buffer-roads"
path: "${output_path}"
format: "GeoJSON"
outputs:
result: "$save-result"
feature_count: "$buffer-roads.feature_count"
流水线解读
字段
说明
pipeline.name
流水线名称,出现在报告中
pipeline.variables
可复用的变量,通过 ${变量名} 引用
pipeline.steps
步骤列表,按顺序执行
id: load-roads
步骤唯一 ID,后续步骤通过 $load-roads 引用其输出
use: io.read_vector
步骤类型,格式为 类别.动作
params
步骤参数,可使用变量替换和步骤引用
$load-roads
引用 load-roads 步骤的输出(output 字段)
$buffer-roads.feature_count
引用 buffer-roads 步骤 stats 中的 feature_count 值
outputs
声明流水线的最终输出,出现在 JSON 报告的 outputs 节
关于坐标系:roads.geojson 使用 WGS84(EPSG:4326,单位为度),缓冲区距离 0.01 表示约 1 公里(纬度方向)。
