You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python遍历目录文件,批量执行RasterVision栅格图像预测命令

批量调用RasterVision预测栅格图像的Python实现

以下是实现批量遍历目标目录、调用rastervision predict命令生成同名JSON和TIFF结果的Python代码:

import os
import subprocess
from glob import glob

def batch_raster_predict(input_dir, output_dir, model_bundle_path):
    # 确保输出目录存在,不存在则创建
    os.makedirs(output_dir, exist_ok=True)
    
    # 遍历输入目录下的所有.tif栅格文件(可根据需要修改后缀规则)
    raster_files = glob(os.path.join(input_dir, "*.tif"))
    
    for raster_path in raster_files:
        # 提取输入文件的纯文件名(不含路径和后缀)
        filename = os.path.splitext(os.path.basename(raster_path))[0]
        
        # 构建对应输出JSON和TIFF的路径
        output_json = os.path.join(output_dir, f"{filename}.json")
        output_tif = os.path.join(output_dir, f"{filename}.tif")
        
        # 组装完整的rastervision命令
        cmd = [
            "rastervision", "predict",
            "--vector-label-uri", output_json,
            model_bundle_path,
            raster_path,
            output_tif
        ]
        
        try:
            # 执行命令并捕获输出
            subprocess.run(cmd, check=True, capture_output=True, text=True)
            print(f"处理完成: {raster_path}")
            print(f"生成结果: {output_json} | {output_tif}\n")
        except subprocess.CalledProcessError as e:
            print(f"处理失败: {raster_path}")
            print(f"错误详情: {e.stderr}\n")

# 配置核心路径参数(请替换为你的实际路径)
INPUT_DIR = "/path/to/your/input/raster"
OUTPUT_DIR = "/path/to/your/output/results"
FIXED_MODEL_BUNDLE = "/path/to/your/model-bundle.zip"

# 启动批量预测
batch_raster_predict(INPUT_DIR, OUTPUT_DIR, FIXED_MODEL_BUNDLE)

关键逻辑说明:

  • 文件遍历:用glob快速匹配目标目录下的所有.tif文件,若需支持.tiff等其他后缀,可修改匹配规则为*.tif*或添加多后缀匹配。
  • 路径处理:通过os.path模块解析文件名、拼接输出路径,保证输出文件与输入文件严格同名。
  • 命令执行:使用subprocess.run调用系统命令,check=True会在命令执行失败时抛出异常,方便定位问题;capture_output=True可记录命令的输出和错误日志。
  • 目录预创建:os.makedirs(..., exist_ok=True)确保输出目录存在,避免因目录缺失导致的写入失败。

额外提示:

  1. 确保本地环境已正确配置RasterVision,rastervision命令可在终端正常执行。
  2. 若输入目录存在非栅格的.tif文件,可添加文件头校验等逻辑过滤无效文件。
  3. 处理大量文件时,可引入tqdm库添加进度条,提升可视化体验。

内容的提问来源于stack exchange,提问作者Tobias Rydlinge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:10:35