API : Python SDK

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

Основные особенности

  • 🐍 Нативный Python — чистый, написанный на Python код для обработки изображений

  • 🔧 Полный доступ к 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 ГБ ОЗУ (рекомендуется 16 ГБ)

Интернет

Требуется для активации лицензии

circle-exclamation

Быстрый старт

Установка

Установите через pip:

circle-info

Первоначальная настройка: Перед использованием SDK активируйте лицензию Chloros+, открыв Chloros, Chloros (браузер) или Chloros CLI и войдя в систему с помощью своих учетных данных. Это нужно сделать только один раз. В Linux (без графического интерфейса) используйте: 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 (Установка)

  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 (графический интерфейс недоступен):

Лицензия кэшируется локально и сохраняется после перезагрузки.

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-бит)»

Формат вывода

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
Командная строка CLI
Python SDK

Интерфейс

Управление мышью

Командная строка

Python API

Наилучшее применение

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

Скрипты

Интеграция

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

Ограниченная

Хорошая

Отличная

Гибкость

Базовая

Хорошая

Максимальная

Лицензия

Chloros+

Chloros+

Chloros+

В: Могу ли я распространять приложения, созданные с помощью SDK?О: Код SDK можно интегрировать в ваши приложения, но:

  • Конечным пользователям необходимо установить Chloros

  • Конечным пользователям необходимы действующие лицензии Chloros+

  • Для коммерческого распространения требуется OEM-лицензия

По вопросам OEM обращайтесь в info@mapir.camera.


В: Как обновить SDK?


В: Где сохраняются обработанные изображения?

По умолчанию — в папке Project Path :


В: Можно ли обрабатывать изображения из скриптов Python, запускаемых по расписанию?О: Да! Используйте планировщик вашей ОС со скриптами Python:

Windows: Запланируйте ежедневное выполнение через Планировщик заданий.Linux: Запланируйте через cron:


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


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

После выхода из системы пройдите аутентификацию с новой учетной записью через графический интерфейс, браузер или CLI, прежде чем снова использовать SDK.


Получение помощи

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

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

Каналы поддержки

Примеры кода

Все приведенные здесь примеры протестированы и готовы к использованию в производственной среде. Скопируйте и адаптируйте их для своего случая использования.


Для работы SDK требуется действующая подписка Chloros+. Несанкционированное использование, распространение или модификация запрещены.

Последнее обновление