跳到主要内容

API 概览

本章节提供 MipMapEngine SDK 的完整 API 参考文档,包括所有可用接口、参数说明和使用示例。

开始之前

如果您还未安装 SDK,请先查看安装指南。初次使用建议从快速开始开始。

MipMapEngine SDK 提供了多种接口来满足不同的使用场景:

🏗️ SDK 架构

MipMapEngine SDK 架构层次

应用层

  • 您的应用程序 | Python/C++/CLI | Web 服务

API 接口层

  • ReconstructFull(全流程)| ReconstructAT(空三)| Reconstruct3D(三维重建)

核心引擎

  • 摄影测量算法 | GPU 加速 | 并行处理

系统层

  • NVIDIA CUDA | 文件系统 | 许可证管理

📚 接口分类

1. 批处理接口

适用于离线处理大量数据的场景:

接口功能适用场景
ReconstructFull全流程重建快速启动,自动处理
ReconstructAT空中三角测量精细控制,专业用户
Reconstruct3D三维重建从空三结果生成模型
OptimizeAT优化空三使用控制点提高精度
DivideTiles分块处理大规模数据分块重建

2. 辅助工具

工具功能
License Engine许可证管理

🔄 典型工作流程

方案一:快速全流程(推荐新手)

快速全流程

ReconstructFull成果输出

一步到位,自动处理所有流程

方案二:分步处理(专业用户)

分步处理流程

ReconstructATOptimizeAT(可选)→ Reconstruct3D成果输出

精细控制每个步骤,支持中间结果检查和优化

📝 接口调用方式

1. 命令行调用

SDK 支持直接通过命令行调用各个引擎:

# 通用格式
<engine_name> [options] -task_json <config_file>

# 示例:调用 ReconstructFull
reconstruct_full_engine -reconstruct_type 0 -task_json config.json
安装验证

初次安装后,请参考安装指南进行验证测试。

2. 程序集成

通过进程调用集成到您的应用中:

import subprocess
import json

# 准备配置
config = {
"working_dir": "./output",
"gdal_folder": "./data",
# ... 其他参数
}

# 保存配置文件
with open("task.json", "w") as f:
json.dump(config, f)

# 调用 SDK
result = subprocess.run([
"reconstruct_full_engine.exe",
"-reconstruct_type", "0",
"-task_json", "task.json"
], capture_output=True, text=True)

print(result.stdout)

🎯 选择合适的接口

接口选择建议
如果您...推荐使用原因
初次使用 SDKReconstructFull自动处理所有细节,最简单
需要使用控制点ReconstructAT + OptimizeAT支持控制点优化
处理规则分块处理超大数据DivideTiles + Reconstruct3D支持自定义分块并行处理
更灵活/高阶的模块支持,如激光雷达重建ReconstructAT + Reconstruct3D支持输入更精准的初值参数,提高重建成功率

📖 通用概念

JSON 配置文件

所有接口都使用 JSON 格式的配置文件,基本结构:

{
"working_dir": "string", // 必需:工作目录
"gdal_folder": "string", // 必需:GDAL 数据目录
// ... 其他参数根据接口而定
}

坐标系统定义

{
"coordinate_system": {
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF
"epsg_code": 4326, // EPSG 代码(可选)
"wkt": "string", // WKT 字符串(可选)
"origin_point": [lon, lat, alt] // LocalENU 原点(仅 type=0 时需要)
}
}

错误处理

所有接口返回整数错误码:

  • 0: 成功
  • 非0: 各种错误情况

详见错误码参考。

🚀 下一步

  • 📚 深入了解 ReconstructFull 接口(推荐新手)
  • 🔧 学习 ReconstructAT 接口(高级功能)
  • 💡 查看完整示例了解实际用法

提示:大多数用户使用 ReconstructFull 就能满足需求。只有在需要精细控制时才使用其他接口。