# 脚本开发指南 ## 脚本执行环境 所有脚本在 **用户本地的 Docker 容器** 中执行。 ### 容器内目录结构 ``` /tmp/ ├── scripts/ ← 套件脚本包(只读) │ ├── run.py │ └── ...其他脚本文件 ├── output/ ← 工作目录(读写,步骤间共享) │ ├── 点状工程.shp ← 用户提供的输入文件 │ └── computed_data.json ├── params.json ← 参数文件(只读) └── step_output/ ← 当前步骤输出目录 ``` ### 基础镜像 - **镜像**:`gis-base:latest`(执行 `agc run` 时自动从 Gitea Packages 下载) - **内置**:Python 3.11, GDAL, Shapely, GeoPandas, numpy, openpyxl, xlrd, fiona - **参数文件**:`/tmp/params.json` - **输出目录**:`/tmp/output/` ### 脚本入口 脚本通过命令行参数接收参数: ```python import sys, json if __name__ == "__main__": params = json.loads(sys.argv[1]) if len(sys.argv) > 1 else {} # params = {"input_path": "/tmp/output/data.shp", ...} result = run(params) print(json.dumps(result, ensure_ascii=False)) ``` ### 依赖管理 脚本中缺失的依赖通过运行时 pip 安装: ```python import subprocess, sys try: import openpyxl except ImportError: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'openpyxl']) ``` ## 输出规范 脚本执行完成后,向 stdout 输出 JSON: ```json {"status": "completed", "output_path": "/tmp/output/result.shp"} ```