API 개요
이 섹션은 MipMapEngine SDK의 완전한 API 참조 문서를 제공하며, 사용 가능한 모든 인터페이스, 매개변수 설명 및 사용 예제를 포함합니다.
MipMapEngine SDK는 다양한 사용 시나리오를 만족하기 위한 여러 인터페이스를 제공합니다:
🏗️ SDK 아키텍처
MipMapEngine SDK 아키텍처 레이어
애플리케이션 레이어
- 당신의 애플리케이션 | Python/C++/CLI | 웹 서비스
API 인터페이스 레이어
- ReconstructFull (전체 프로세스) | ReconstructAT (항공삼각측량) | Reconstruct3D (3D 재구성)
코어 엔진
- 사진측량 알고리즘 | GPU 가속 | 병렬 처리
시스템 레이어
- NVIDIA CUDA | 파일 시스템 | 라이선스 관리
📚 인터페이스 카테고리
1. 배치 처리 인터페이스
대용량 데이터의 오프라인 처리에 적합:
| 인터페이스 | 기능 | 사용 사례 |
|---|---|---|
| ReconstructFull | 전체 프로세스 재구성 | 빠른 시작, 자동 처리 |
| ReconstructAT | 항공삼각측량 | 세밀한 제어, 전문 사용자 |
| Reconstruct3D | 3D 재구성 | AT 결과에서 모델 생성 |
| OptimizeAT | AT 최적화 | 제어점을 사용하여 정확도 향상 |
| DivideTiles | 타일 처리 | 대규모 데이터 블록 재구성 |
2. 보조 도구
| 도구 | 기능 |
|---|---|
| License Engine | 라이선스 관리 |
| Progress Monitor | 진행률 모니터링 |
🔄 일반적인 워크플로
옵션 1: 빠른 전체 프로세스 (초보자 권장)
빠른 전체 프로세스
ReconstructFull → 출력 결과
원스텝 솔루션, 모든 프로세스를 자동으로 처리
옵션 2: 단계별 처리 (전문 사용자)
단계별 처리 플로우
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 = {
"license_id": 9200,
"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 | 블록 병렬 처리 지원 |
| 중간 결과가 필요 | 단계별 처리 | 중간 결과 확인 및 조정 가능 |
📖 공통 개념
JSON 설정 파일
모든 인터페이스는 JSON 형식 설정 파일을 사용, 기본 구조:
{
"license_id": 9200, // 필수: 라이선스 ID
"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: 성공음수: 다양한 오류 조건
자세한 내용은 오류 코드 참조를 확인하세요.
🚀 다음 단계
- 📚 ReconstructFull 인터페이스에 대해 더 알아보기 (초보자 권장)
- 🔧 ReconstructAT 인터페이스 연구 (고급 기능)
- 💡 실용적인 사용을 위한 완전한 예제 확인
팁: 대부분의 사용자 요구사항은 ReconstructFull로 충족할 수 있습니다. 세밀한 제어가 필요할 때만 다른 인터페이스를 사용하세요.