API 概览
本章节提供 MipMapEngine SDK 的完整 API 参考文档,包括所有可用接口、参数说明和使用示例。
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 → 成果输出
一步到位,自动处理所有流程
方案二:分步处理(专业用户)
分步处理流程
ReconstructAT → OptimizeAT(可选)→ 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)
🎯 选择合适的接口
接口选择建议
| 如果您... | 推荐使用 | 原因 |
|---|---|---|
| 初次使用 SDK | ReconstructFull | 自动处理所有细节,最简单 |
| 需要使用控制点 | 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 就能满足需求。只有在需要精细控制时才使用其他接口。