API : Python SDK

Chloros Python SDK 는 Chloros 이미지 처리 엔진에 대한 프로그래밍 방식의 접근을 제공하여, 자동화, 사용자 지정 워크플로우, 그리고 귀하의 Python 애플리케이션 및 연구 파이프라인과의 원활한 통합을 가능하게 합니다.

주요 기능

  • 🐍 네이티브 Python - 이미지 처리를 위한 깔끔하고 파이썬 스타일의 API

  • 🔧 API에 대한 완전한 액세스 - Chloros 처리에 대한 완벽한 제어

  • 🚀 자동화 - 맞춤형 일괄 처리 워크플로우 구축

  • 🔗 통합 - 기존 애플리케이션에 Chloros 임베딩

  • 📊 연구용 - 과학적 분석 파이프라인에 최적화

  • 병렬 처리 - CPU 코어 수에 따라 확장 가능 (Chloros+)

요구 사항

요구 사항
세부 정보

Chloros 설치됨

Windows: 데스크톱 설치 프로그램; Linux: .deb 패키지

라이선스

운영 체제

Windows 10/11 (64비트), Linux x86_64 (amd64), Linux arm64 (NVIDIA Jetson JetPack 6)

Python

Python 3.7 이상

메모리

최소 8GB RAM (16GB 권장)

인터넷

라이선스 활성화에 필요

circle-exclamation

빠른 시작

설치

pip를 통해 설치:

circle-info

초기 설정: SDK를 사용하기 전에, Chloros+ 라이선스를 활성화하려면 Chloros, Chloros (브라우저) 또는 Chloros CLI를 열고 자격 증명으로 로그인하여 Chloros+ 라이선스를 활성화하십시오. 이 작업은 한 번만 수행하면 됩니다. Linux(GUI 없음)에서는 다음을 사용하십시오: chloros-cli login user@example.com 'password'

기본 사용법

몇 줄의 명령어로 폴더를 처리합니다:

circle-info

크로스 플랫폼 경로: 이 페이지의 코드 예제는 Windows 형식의 경로(예: C:\\DroneImages\\Flight001)를 사용합니다. Linux에서는 대신 Linux 형식의 경로를 사용하십시오(예: /home/user/drone_images/flight001 또는 ~/drone_images/flight001). SDK는 두 플랫폼에서 동일하게 작동합니다.

전체 제어

고급 워크플로우용:


설치 가이드

필수 조건

SDK를 설치하기 전에 다음이 설치되어 있는지 확인하십시오:

  1. Chloros 설치 — Windows: 데스크톱 설치 프로그램 (다운로드); Linux: .deb 패키지 (Linux 설치)

  2. Python 3.7+ 설치됨 (python.orgarrow-up-right)

  3. 유효한 Chloros+ 라이선스 (업그레이드arrow-up-right)

pip를 통한 설치

표준 설치:

진행 상황 모니터링 지원 포함:

개발용 설치:

설치 확인

SDK가 올바르게 설치되었는지 테스트합니다:


초기 설정

라이선스 활성화

SDK는 Chloros, Chloros(브라우저), Chloros 및 CLI와 동일한 라이선스를 사용합니다. GUI 또는 CLI를 통해 한 번 활성화하십시오:Windows: **Chloros 또는 Chloros (브라우저)**를 열고 사용자 탭에서 로그인하거나 CLI를 사용하십시오.Linux: CLI를 사용하십시오(GUI 사용 불가):

라이선스는 로컬에 캐시되며 재부팅 후에도 유지됩니다.

circle-check
circle-info

로그아웃: SDK 사용자는 logout() 메서드를 사용하여 프로그래밍 방식으로 캐시된 자격 증명을 지울 수 있습니다. API 참조 문서의 logout() 메서드를 참조하십시오.

연결 테스트

SDK가 Chloros에 연결할 수 있는지 확인합니다:


API 참조

ChlorosLocal 클래스

로컬 Chloros 이미지 처리를 위한 메인 클래스입니다.

생성자

매개변수:

매개변수
유형
기본값
설명

api_url

str

"http://localhost:5000"

로컬 Chloros 백엔드의 URL

auto_start_backend

bool

True

필요한 경우 백엔드를 자동으로 시작

backend_exe

str

None (자동 감지)

백엔드 실행 파일 경로

timeout

int

30

요청 타임아웃 (초)

backend_startup_timeout

int

60

백엔드 시작 타임아웃 (초)

예시:

circle-info

크로스 플랫폼 자동 감지: SDK는 사용자의 플랫폼에 맞는 올바른 백엔드 경로를 자동으로 시도합니다:

  • Windows: C:\Program Files\MAPIR\Chloros\resources\backend\chloros-backend.exe

  • Linux (.deb): /usr/lib/chloros/chloros-backend

  • Linux (수동): /opt/mapir/chloros/backend/chloros-backend


메서드

create_project(project_name, camera=None)

새로운 Chloros 프로젝트를 생성합니다.

매개변수:

매개변수
유형
필수
설명

project_name

str

프로젝트 이름

camera

str

아니요

카메라 템플릿 (예: "Survey3N_RGN", "Survey3W_OCN")

반환값: dict - 프로젝트 생성 응답예시:


import_images(folder_path, recursive=False)

폴더에서 이미지 가져오기.

매개변수:

매개변수
유형
필수
설명

folder_path

str/Path

이미지가 있는 폴더 경로

recursive

bool

아니요

하위 폴더 검색 (기본값: False)

반환값: dict - 파일 수와 함께 가져오기 결과예시:


configure(**settings)

처리 설정을 구성합니다.

매개변수:

매개변수
유형
기본값
설명

debayer

str

"표준 (빠름, 중간 품질)"

디베이어 방법

vignette_correction

bool

True

비네팅 보정 활성화

reflectance_calibration

bool

True

반사율 보정 활성화

indices

list

None

계산할 식생 지수

export_format

str

"TIFF (16-bit)"

출력 형식

ppk

bool

False

PPK 보정 활성화

custom_settings

dict

None

고급 사용자 지정 설정

내보내기 형식:

  • "TIFF (16-bit)" - GIS/사진측량에 권장

  • "TIFF (32-bit, Percent)" - 과학적 분석

  • "PNG (8-bit)" - 육안 검사

  • "JPG (8-bit)" - 압축 출력

**사용 가능한 인덱스:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2 등.예시:


process(mode="parallel", wait=True, progress_callback=None)

프로젝트 이미지를 처리합니다.

매개변수:

매개변수
유형
기본값
설명

mode

str

"parallel"

처리 모드: "parallel" 또는 "serial"

wait

bool

True

완료 대기

progress_callback

호출 가능

None

진행 상황 콜백 함수(progress, msg)

poll_interval

float

2.0

진행 상황 폴링 간격 (초)

반환값: dict - 처리 결과

circle-exclamation

예시:


get_config()

현재 프로젝트 구성을 가져옵니다.

반환값: dict - 현재 프로젝트 구성예시:


get_status()

스레드별 처리 진행 상황을 포함한 백엔드 상태 정보를 가져옵니다.

반환값: dict - 다음 구조를 가진 백엔드 상태:

예시:


shutdown_backend()

백엔드를 종료합니다(SDK로 시작된 경우).

예시:


logout()

로컬 시스템에서 캐시된 자격 증명을 지웁니다.

설명:

캐시된 인증 자격 증명을 제거하여 프로그래밍 방식으로 로그아웃합니다. 이는 다음 용도로 유용합니다:

  • 서로 다른 Chloros+ 계정 간 전환

  • 자동화 환경에서 자격 증명 지우기

  • 보안 목적 (예: 제거하기 전에 자격 증명 제거)

반환값: dict - 로그아웃 작업 결과예시:

circle-info

재인증 필요: logout() 호출 후에는 Chloros, Chloros (브라우저), 또는 Chloros CLI를 통해 다시 로그인해야 합니다.


편의 함수

process_folder(folder_path, **options)

폴더를 처리하는 한 줄짜리 편의 함수입니다.

매개변수:

매개변수
유형
기본값
설명

folder_path

str/Path

필수

이미지가 포함된 폴더 경로

project_name

str

자동 생성

프로젝트 이름

camera

str

None

카메라 템플릿

indices

list

["NDVI"]

계산할 인덱스

vignette_correction

bool

True

비네팅 보정 활성화

reflectance_calibration

bool

True

반사율 보정 활성화

export_format

str

"TIFF (16-bit)"

출력 형식

mode

문자열

"parallel"

처리 모드

progress_callback

호출 가능

None

진행 상황 콜백

반환값: dict - 처리 결과예시:


컨텍스트 매니저 지원

SDK는 자동 정리를 위한 컨텍스트 매니저를 지원합니다:


전체 예제

circle-info

Linux 사용자: 아래의 모든 예제는 Windows 경로를 사용합니다. C:\\... 경로를 사용자의 Linux 경로(예: /home/user/... 또는 ~/...)로 대체하십시오. 모든 SDK 기능은 플랫폼 간에 동일합니다.

예제 1: 기본 처리

기본 설정으로 폴더 처리:


예제 2: 사용자 지정 워크플로

처리 파이프라인에 대한 완전한 제어:


예제 3: 여러 폴더 일괄 처리

여러 비행 데이터셋 처리:


예제 4: 연구 파이프라인 통합

Chloros를 데이터 분석과 통합:


예제 5: 사용자 지정 진행 상황 모니터링

로깅을 통한 고급 진행 상황 추적:


예제 6: 오류 처리

실전 환경을 위한 강력한 오류 처리:


예제 7: 계정 관리 및 로그아웃

프로그래밍 방식으로 자격 증명 관리:


예제 8: 명령줄 도구

SDK를 사용하여 사용자 지정 CLI 도구 구축:

사용법:


예외 처리

SDK는 다양한 오류 유형에 대한 특정 예외 클래스를 제공합니다:

예외 계층 구조

예외 예시


고급 주제

사용자 정의 백엔드 구성

사용자 정의 백엔드 위치 또는 구성을 사용하려면:

비차단 처리

처리를 시작하고 다른 작업을 계속하려면:

메모리 관리

대용량 데이터 세트의 경우, 일괄 처리:


문제 해결

백엔드 시작 실패

문제: SDK에서 백엔드 시작 실패해결 방법:

  1. Chloros가 설치되어 있는지 확인:

  1. 방화벽(Windows) 또는 포트 사용 가능 여부(Linux: lsof -i :5000)를 확인하십시오.

  2. 수동 백엔드 경로를 시도해 보십시오:


라이선스 미검출문제: SDK에서 라이선스 누락에 대한 경고가 표시됨해결 방법:

  1. Chloros, Chloros (브라우저) 또는 Chloros, CLI를 열고 로그인하십시오.

  2. 라이선스가 캐시에 저장되어 있는지 확인하십시오:

  1. 인증 정보 문제가 발생하는 경우, 캐시된 인증 정보를 삭제하고 다시 로그인하십시오:

  1. 지원팀에 문의하십시오: info@mapir.camera


가져오기 오류문제: ModuleNotFoundError: No module named 'chloros_sdk'해결 방법:


처리 시간 초과문제: 처리 시간 초과해결 방법:

  1. 시간 초과 값을 늘리십시오:

  1. 더 작은 배치로 처리하십시오

  2. 사용 가능한 디스크 공간을 확인하십시오

  3. 시스템 리소스를 모니터링하십시오


포트가 이미 사용 중문제: 백엔드 포트 5000이 점유됨해결 방법:

또는 충돌하는 프로세스를 찾아 종료하십시오:


성능 팁

처리 속도 최적화

  1. 병렬 모드 사용 (Chloros+ 필요)

  1. 출력 해상도 낮추기 (허용 가능한 경우)

  1. 불필요한 인덱스 비활성화

  1. SSD에서 처리 (HDD가 아님)***

메모리 최적화

대용량 데이터 세트의 경우:


백그라운드 처리

다른 작업을 위해 Python를 확보하세요:


통합 예시

Django 통합

Flask API

Jupyter Notebook


FAQ

Q: SDK를 사용하려면 인터넷 연결이 필요한가요?

A: 초기 라이선스 활성화 시에만 필요합니다. Chloros, Chloros(브라우저) 또는 Chloros CLI를 통해 로그인하면 라이선스가 로컬에 캐시되어 30일 동안 오프라인에서도 작동합니다.***

Q: GUI가 없는 서버에서 SDK를 사용할 수 있나요?A: 네! SDK는 Windows 및 Linux 서버 모두에서 헤드리스 모드로 작동합니다.Linux (헤드리스 모드 권장):

  • .deb 패키지를 통해 설치

  • 라이선스 활성화: chloros-cli login user@example.com 'password'

Windows 서버:

  • Windows Server 2016 이상

  • Chloros 설치 (1회)

  • CLI를 통해 또는 임의의 컴퓨터에서 라이선스 활성화


Q: Desktop, CLI 및 SDK의 차이점은 무엇입니까?

기능
데스크톱 GUI
CLI 명령줄
Python SDK

인터페이스

포인트 앤 클릭

명령어

Python API

최적 용도

시각적 작업

스크립팅

통합

자동화

제한적

양호

우수

유연성

기본

양호

최대

라이선스

Chloros+

Chloros+

Chloros+

Q: SDK로 제작된 앱을 배포할 수 있나요?A: SDK 코드를 애플리케이션에 통합할 수 있지만, 다음 조건이 적용됩니다:

  • 최종 사용자에게는 Chloros가 설치되어 있어야 합니다

  • 최종 사용자에게는 유효한 Chloros+ 라이선스가 필요합니다

  • 상업적 배포에는 OEM 라이선스가 필요합니다

OEM 관련 문의는 info@mapir.camera로 연락해 주십시오.


Q: SDK는 어떻게 업데이트하나요?


Q: 처리된 이미지는 어디에 저장되나요?

기본적으로 프로젝트 경로에 저장됩니다:


Q: 예약된 Python 스크립트를 통해 이미지를 처리할 수 있나요?A: 네! Python 스크립트와 함께 OS 스케줄러를 사용하십시오:

Windows: 작업 스케줄러를 통해 매일 실행되도록 예약하세요.Linux: cron을 통해 예약하세요:


Q: SDK는 async/await를 지원하나요?A: 현재 버전은 동기식입니다. 비동기 동작을 원하시면 wait=False를 사용하거나 별도의 스레드에서 실행하십시오:


Q: 서로 다른 Chloros+ 계정 간에 어떻게 전환하나요?A: logout() 메서드를 사용하여 캐시된 자격 증명을 지운 다음, 새 계정으로 다시 로그인하십시오:

로그아웃 후, CLI를 통해 GUI, 브라우저 또는 SDK로 새 계정에 인증한 다음 다시 사용하십시오.


도움말 받기

문서

  • API 참조: 이 페이지

지원 채널

샘플 코드

여기에 나열된 모든 예제는 테스트를 거쳤으며 실제 환경에서 바로 사용할 수 있습니다. 사용 사례에 맞게 복사하여 수정해 사용하십시오.


SDK를 사용하려면 유효한 Chloros+ 구독이 필요합니다. 무단 사용, 배포 또는 수정은 금지됩니다.

마지막 업데이트