API : Python SDK

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

주요 기능

  • 🐍 네이티브 Python - 깔끔하고 파이썬적인 API 이미지 처리

  • 🔧 완전한 API 접근 - Chloros 처리에 대한 완벽한 제어

  • 🚀 자동화 - 맞춤형 배치 처리 워크플로 구축

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

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

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

요구 사항

요구 사항
세부 사항

Chloros 데스크톱

로컬에 설치되어야 함

라이선스

운영 체제

Windows 10/11 (64비트)

XPROTX

XPROTX 3.7 이상

메모리

최소 8GB RAM (권장 16GB)

인터넷

라이선스 활성화에 필요

circle-info

라이선스 요구 사항: Python SDK는 API 접근을 위해 유료 Chloros+ 구독이 필요합니다. 표준(무료) 플랜은 API/SDK에 액세스할 수 없습니다. 업그레이드하려면 https://cloud.mapir.camera/pricingarrow-up-right를 방문하십시오.

빠른 시작

설치

pip를 통해 설치:

circle-info

초기 설정: SDK 사용 전, Chloros+ 라이선스를 활성화하세요. Chloros, Chloros (브라우저) 또는 Chloros CLI를 열고 자격 증명으로 로그인하여 Chloros+ 라이선스를 활성화하십시오. 이 작업은 한 번만 수행하면 됩니다.

기본 사용법

몇 줄로 폴더 처리하기:

전체 제어

고급 워크플로우를 위해:


설치 가이드

필수 조건

SDK 설치 전 다음을 확인하세요:

  1. Chloros 데스크톱 설치 (다운로드)

  2. Python 3.7 이상 설치 (python.orgarrow-up-right)

  3. 활성 Chloros+ 라이선스 (업그레이드arrow-up-right)

pip를 통한 설치

표준 설치:

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

개발 설치:

설치 확인

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


초기 설정

라이선스 활성화

SDK는 Chloros, Chloros(브라우저), Chloros 및 CLI와 동일한 라이선스를 사용합니다. GUI 또는 CLI를 통해 한 번만 활성화하십시오:

  1. Chloros 또는 Chloros(브라우저)를 열고 사용자 탭에서 로그인하십시오. 탭에서 로그인합니다. 또는CLI를 엽니다.

  2. Chloros+ 자격 증명을 입력하고 로그인합니다.

  3. 라이선스가 로컬에 캐시됩니다(재부팅 후에도 유지됨).

circle-info

일회성 설정: GUI 또는 CLI를 통해 로그인한 후에는 SDK가 자동으로 캐시된 라이선스를 사용합니다. 추가 인증이 필요하지 않습니다!

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

백엔드 시작 시간 초과(초) (초)

예시:


메서드

create_project(project_name, camera=None)

새로운 Chloros 프로젝트 생성.

매개변수:

매개변수
유형
필수
설명

project_name

문자열

프로젝트 이름

camera

문자열

아니오

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

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


import_images(folder_path, recursive=False)

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

매개변수:

매개변수
유형
필수
설명

folder_path

문자열/경로

이미지가 있는 폴더 경로

recursive

bool

아니오

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

반환값: dict - 파일 수를 포함한 가져오기 결과예시:


configure(**settings)

처리 설정 구성.

매개변수:

매개변수
유형
기본값
설명

debayer

문자열

"고품질 (빠름)"

디베이어 방법

vignette_correction

부울

True

비네트 보정 활성화

reflectance_calibration

bool

True

반사율 보정 활성화

indices

list

None

계산할 식생 지수

export_format

문자열

"TIFF (16비트)"

출력 형식

ppk

부울

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

callable

None

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

poll_interval

float

2.0

진행 상황 폴링 간격 (초)

반환값: dict - 처리 결과

circle-info

병렬 모드: Chloros+ 라이선스 필요. CPU 코어 수에 따라 자동 확장(최대 16개 작업자).

예시:


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

문자열

None

카메라 템플릿

indices

목록

["NDVI"]

계산할 인덱스

vignette_correction

bool

True

비네팅 보정 활성화

reflectance_calibration

bool

True

반사율 보정 활성화

export_format

str

"TIFF (16-bit)"

출력 형식

mode

문자열

"parallel"

처리 모드

progress_callback

호출 가능 객체

None

진행 상황 콜백

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


컨텍스트 매니저 지원

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


완전한 예시

예시 1: 기본 처리

기본 설정으로 폴더 처리:


예시 2: 사용자 정의 워크플로

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


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

여러 비행 데이터셋 처리:


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

Chloros를 데이터 분석과 통합:


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

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


예시 6: 오류 처리

프로덕션 환경용 견고한 오류 처리:


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

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


예시 8: 명령줄 도구

SDK를 사용하여 맞춤형 CLI 도구 구축:

사용법:


예외 처리

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

예외 계층 구조

예외 예시


고급 주제

사용자 정의 백엔드 구성

사용자 정의 백엔드 위치 또는 구성을 사용합니다:

비차단 처리

처리를 시작하고 다른 작업을 계속합니다:

메모리 관리

대규모 데이터 세트의 경우 배치로 처리합니다:


문제 해결

백엔드 시작 실패

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

  1. Chloros 데스크톱 설치 확인:

  1. Windows 방화벽이 차단하지 않는지 확인

  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: 네! 요구 사항:

  • Windows Server 2016 이상

  • Chloros 설치 완료 (일회성)

  • 라이선스 활성화된 기기 (캐시된 라이선스 서버로 복사)


Q: 데스크톱, CLI, SDK의 차이점은 무엇인가요?

기능
데스크톱 GUI
XPROTX 명령줄
XPROTX XPROTX

인터페이스

포인트 클릭

명령어

Python API

최적 용도

시각적 작업

스크립팅

통합

자동화

제한적

양호

우수

유연성

기본

양호

최대

라이선스

Chloros+

Chloros+

Chloros+

Q: SDK로 제작한 애플리케이션을 배포할 수 있나요?A: SDK 코드는 애플리케이션에 통합될 수 있으나:

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

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

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

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


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


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

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


Q: 예약 실행되는 Python 스크립트로 이미지를 처리할 수 있나요?A: 네! Windows 작업 스케줄러와 Python 스크립트를 함께 사용하세요:

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


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


Q: 서로 다른 Chloros+ 계정 간 전환은 어떻게 하나요?A: logout() 메서드로 캐시된 자격 증명을 지운 후 새 계정으로 재로그인하세요:

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


도움말 받기

문서

  • API 참조: 본 페이지

지원 채널

샘플 코드

여기에 나열된 모든 예제는 테스트를 거쳐 실제 사용이 가능합니다. 사용 사례에 맞게 복사하여 수정해 사용하십시오.


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

마지막 업데이트