API : Python SDK

Chloros Python SDK осигурява програмно достъп до Chloros двигателя за обработка на изображения, позволявайки автоматизация, персонализирани работни потоци и безпроблемна интеграция с вашите Python приложения и изследователски процеси.

Ключови характеристики

  • 🐍 Нативен Python - Чист, Pythonic API за обработка на изображения

  • 🔧 Пълен достъп до API - Пълен контрол върху обработката на Chloros

  • 🚀 Автоматизация - Създавайте персонализирани работни потоци за пакетна обработка

  • 🔗 Интеграция - Вградете Chloros в съществуващи Python приложения

  • 📊 Готов за научни изследвания - Идеален за научни аналитични процеси

  • Паралелна обработка - Мащабира се според ядрата на вашия процесор (Chloros+)

Изисквания

Изискване
Подробности

Chloros инсталиран

Windows: Инсталатор за настолни компютри; Linux: .deb пакет

Операционна система

Windows 10/11 (64-битова), Linux x86_64 (amd64), Linux arm64 (NVIDIA Jetson JetPack 6)

Python

Python 3.7 или по-нова версия

Памет

Минимум 8 GB RAM (препоръчителни 16 GB)

Интернет

Необходим за активиране на лиценза

circle-exclamation

Бързо стартиране

Инсталиране

Инсталирайте чрез pip:

circle-info

Първоначална настройка: Преди да използвате SDK, активирайте лиценза си за Chloros+ като отворите Chloros, Chloros (браузър) или Chloros CLI и влизайки с вашите данни за достъп. Това трябва да се направи само веднъж. В 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. Активирайте веднъж чрез графичния интерфейс или CLI:Windows:ОтворетеChloros или Chloros (браузър) и влезте в раздела „Потребител“ или използвайте CLI.Linux: Използвайте CLI (няма GUI):

Лицензът се кешира локално и се запазва при рестартиране.

circle-check
circle-info

Излизане: Потребителите на SDK могат програмно да изчистят кешираните идентификационни данни, като използват метода logout(). Вижте метода logout() в справочника за API.

Тест на връзката

Проверете дали SDK може да се свърже с Chloros:


Справочник за API

Клас ChlorosLocal

Основен клас за локална обработка на изображения Chloros.

Конструктор

Параметри:

Параметър
Тип
По подразбиране
Описание

api_url

str

"http://localhost:5000"

URL на локалния Chloros бекенд

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

списък

None

Индекси на растителността за изчисляване

export_format

стр.

"TIFF (16-bit)"

Формат на изхода

ppk

bool

False

Активиране на PPK корекции

custom_settings

dict

None

Разширени потребителски настройки

Формати за експортиране:

  • "TIFF (16-bit)" - Препоръчва се за ГИС/фотограметрия

  • "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-exclamation

Пример:


get_config()

Получаване на текущата конфигурация на проекта.

Връща: dict - Текуща конфигурация на проектаПример:


get_status()

Получаване на информация за състоянието на бекенда, включително напредъка на обработката за всеки поток.

Връща: dict - Статус на бекенда със следната структура:

Пример:


shutdown_backend()

Изключване на бекенда (ако е стартиран от SDK).

Пример:


logout()

Изчистване на кешираните удостоверения от локалната система.

Описание:

Излизане от системата чрез програмиране чрез премахване на кешираните удостоверения за автентификация. Това е полезно за:

  • Превключване между различни Chloros+ акаунти

  • Изчистване на удостоверенията в автоматизирани среди

  • Цели, свързани със сигурността (например, премахване на удостоверенията преди деинсталиране)

Връща: dict - Резултат от операцията по излизанеПример:

circle-info

Необходима повторна автентификация: След извикване на logout(), трябва да влезете отново чрез Chloros, Chloros (браузър) или Chloros CLI, преди да използвате SDK.


Удобни функции

process_folder(folder_path, **options)

Удобна функция от един ред за обработка на папка.

Параметри:

Параметър
Тип
По подразбиране
Описание

folder_path

str/Path

Задължително

Път към папката с изображения

project_name

str

Генерира се автоматично

Име на проекта

camera

str

None

Шаблон на камерата

indices

списък

["NDVI"]

Индекси за изчисление

vignette_correction

bool

True

Активиране на корекция на винетиране

reflectance_calibration

bool

True

Активиране на калибриране на отражателната способност

export_format

str

"TIFF (16-bit)"

Формат на изхода

mode

str

"parallel"

Режим на обработка

progress_callback

callable

None

Обратно извикване за напредък

Връща: dict - Резултати от обработкатаПример:


Поддръжка на мениджъри на контекст

SDK поддържа мениджъри на контекст за автоматично почистване:


Пълни примери

circle-info

Потребители на Linux: Всички примери по-долу използват Windows пътеки. Заменете C:\\... пътищата с вашите Linux пътища (например, /home/user/... или ~/...). Всички SDK функционалности са идентични на всички платформи.

Пример 1: Основна обработка

Обработка на папка с настройки по подразбиране:


Пример 2: Персонализиран работен поток

Пълен контрол върху процеса на обработка:


Пример 3: Пакетна обработка на няколко папки

Обработка на множество набори от данни за полети:


Пример 4: Интеграция в изследователски процес

Интегриране на Chloros с анализ на данни:


Пример 5: Персонализирано проследяване на напредъка

Разширено проследяване на напредъка с регистриране:


Пример 6: Обработка на грешки

Надеждна обработка на грешки за производствена употреба:


Пример 7: Управление на акаунта и излизане

Управление на удостоверенията чрез програмиране:


Пример 8: Инструмент за командния ред

Създаване на персонализиран инструмент CLI с SDK:

Употреба:


Обработка на изключения

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


Често задавани въпроси

В: Изисква ли SDK интернет връзка?

О: Само за първоначалната активация на лиценза. След влизане чрез Chloros, Chloros (браузър) или Chloros CLI лицензът се запазва локално и работи офлайн в продължение на 30 дни.***

В: Мога ли да използвам SDK на сървър без графичен интерфейс?О: Да! SDK работи без графичен интерфейс както на Windows, така и на Linux сървъри.Linux (препоръчва се за работа без графичен интерфейс):

  • Инсталирайте чрез пакета .deb

  • Активирайте лиценза: chloros-cli login user@example.com 'password'

Windows сървър:

  • Windows сървър 2016 или по-нова версия

  • Chloros инсталиран (еднократно)

  • Лиценз активиран чрез CLI или на която и да е машина


В: Каква е разликата между Desktop, CLI и SDK?

Функция
Desktop GUI
CLI Command Line
Python SDK

Интерфейс

Посочи и кликни

Команда

Python API

Най-подходящ за

Визуална работа

Скриптове

Интеграция

Автоматизация

Ограничена

Добра

Отлична

Гъвкавост

Основна

Добра

Максимална

Лиценз

Chloros+

Chloros+

Chloros+

В: Мога ли да разпространявам приложения, създадени с SDK?О: Кодът на SDK може да бъде интегриран във вашите приложения, но:

  • Крайните потребители трябва да имат инсталиран Chloros

  • Крайните потребители трябва да имат активни лицензи за Chloros+

  • Търговското разпространение изисква OEM лицензиране

Свържете се с info@mapir.camera за запитвания относно OEM.


В: Как да актуализирам SDK?


В: Къде се запазват обработените изображения?

По подразбиране, в пътя на проекта:


В: Мога ли да обработвам изображения от скриптове на Python, изпълнявани по график?О: Да! Използвайте планиращия модул на операционната си система със скриптове на Python:

Windows: Настройте чрез Планиращ модул да се изпълнява ежедневно.Linux: Настройте чрез cron:


В: Поддържа ли SDK async/await?О: Текущата версия е синхронна. За асинхронно поведение използвайте wait=False или изпълнете в отделен поток:


В: Как да превключвам между различни акаунти Chloros+?О: Използвайте метода logout(), за да изчистите кешираните идентификационни данни, след което се логнете отново с новия акаунт:

След излизане от системата се удостоверете с новия акаунт чрез GUI, браузър или CLI, преди да използвате отново SDK.


Получаване на помощ

Документация

  • API Справочник: Тази страница

Канали за поддръжка

Примерни кодове

Всички примери, изброени тук, са тествани и готови за употреба. Копирайте ги и ги адаптирайте за вашия случай на употреба.


ЛицензСобствен софтуер - Авторски права (c) 2025 MAPIR Inc.

SDK изисква активен абонамент за Chloros+. Неоторизираното използване, разпространение или модифициране е забранено.

Last updated