API: Python SDK

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

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

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

  • 🔧 Полный доступ к API - Полный контроль над обработкой Chloros

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

  • 🔗 Интеграция — встраивайте Chloros в существующие приложения Python

  • 📊 Готовность к исследованиям — идеально подходит для научных аналитических процессов

  • Параллельная обработка — масштабируется до ваших ядер ЦП (Chloros+)

Требования

Требование
Подробности

Chloros Desktop

Должен быть установлен локально

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

Windows 10/11 (64-разрядная)

Python

Python 3.7 или выше

Память

Минимум 8 ГБ ОЗУ (рекомендуется 16 ГБ)

Интернет

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

circle-info

Требования к лицензии: Python SDK требует платной подписки Chloros+ для доступа к API. Стандартные (бесплатные) тарифные планы не предоставляют доступ к API/SDK. Посетите https://cloud.mapir.camera/pricingarrow-up-right, чтобы перейти на более дорогой тарифный план.

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

Установка

Установите с помощью pip:

circle-info

Первоначальная настройка: Перед использованием SDK активируйте лицензию Chloros+, открыв Chloros, Chloros (браузер) или Chloros CLI и войдя в систему с помощью своих учетных данных. Это нужно сделать только один раз.

Основное использование

Обработайте папку всего несколькими строками:

Полный контроль

Для расширенных рабочих процессов:


Руководство по установке

Необходимые условия

Перед установкой SDK убедитесь, что у вас есть:

  1. Chloros Desktop (скачать)

  2. Активная лицензия Chloros+ (обновлениеarrow-up-right)

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

Стандартная установка:

С поддержкой мониторинга прогресса:

Установка для разработчиков:

Проверка установки

Проверьте, что SDK установлен правильно:


Первоначальная настройка

Активация лицензии

SDK использует ту же лицензию, что и Chloros, Chloros (браузер) и Chloros CLI. Активируйте один раз через графический интерфейс или CLI:

  1. Откройте Chloros или Chloros (браузер)и войдите в систему на вкладке «Пользователь» . Или откройтеCLI.

  2. Введите свои учетные данные Chloros+ и войдите в систему

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

circle-info

Однократная настройка: после входа в систему через графический интерфейс или CLI, SDK автоматически использует кэшированную лицензию. Дополнительная аутентификация не требуется!

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

Таймаут запуска бэкэнда (секунды)

Примеры:


Методы

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

str

«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"

Режим обработки: «параллельный» или «последовательный»

wait

bool

True

Ожидать завершения

progress_callback

callable

None

Функция обратного вызова прогресса (progress, msg)

poll_interval

float

2.0

Интервал опроса прогресса (секунды)

Возвращает: dict - Результаты обработки

circle-info

Параллельный режим: Требуется лицензия Chloros+. Автоматически масштабируется до ваших ядер ЦП (до 16 рабочих процессов).

Пример:


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

list

["NDVI"]

Индексы для расчета

vignette_correction

bool

True

Включить коррекцию виньетирования

reflectance_calibration

bool

True

Включить калибровку отражения

export_format

str

"TIFF (16-bit)"

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

mode

str

"parallel"

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

progress_callback

callable

None

Обратная связь по ходу выполнения

Возвращаемые значения: dict — результаты обработкиПример:


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

SDK поддерживает контекстные менеджеры для автоматической очистки:


Полные примеры

Пример 1: Базовая обработка

Обработка папки с настройками по умолчанию:


Пример 2: Настраиваемый рабочий процесс

Полный контроль над конвейером обработки:


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

Обработка нескольких наборов данных о полетах:


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

Интеграция Chloros с анализом данных:


Пример 5: Настраиваемый мониторинг прогресса

Расширенное отслеживание прогресса с ведением журнала:


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

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


Пример 7: Управление учетной записью и выход из системы

Управление учетными данными с помощью программного обеспечения:


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

Создание настраиваемого инструмента CLI с помощью SDK:

Использование:


Обработка исключений

SDK предоставляет специальные классы исключений для различных типов ошибок:

Иерархия исключений

Примеры исключений


Расширенные темы

Настройка пользовательского бэкэнда

Используйте пользовательское расположение или конфигурацию бэкэнда:

Неблокирующая обработка

Начните обработку и продолжайте выполнять другие задачи:

Управление памятью

Для больших наборов данных выполняйте обработку пакетно:


Устранение неполадок

Бэкэнд не запускается

Проблема: SDK не удается запустить бэкэнд.Решения:

  1. Убедитесь, что Chloros Desktop установлен:

  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


Часто задаваемые вопросы

В: Требуется ли для SDK подключение к Интернету?

О: Только для первоначальной активации лицензии. После входа в систему через Chloros, Chloros (браузер) или Chloros CLI лицензия кэшируется локально и работает в автономном режиме в течение 30 дней.***

В: Могу ли я использовать SDK на сервере без графического интерфейса?О: Да! Требования:

  • Windows Server 2016 или более поздней версии

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

  • Лицензия активирована на любом компьютере (кэшированная лицензия скопирована на сервер)


В: В чем разница между Desktop, CLI и SDK?

Функция
Desktop GUI
CLI Командная строка
Python SDK

Интерфейс

Точечный клик

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

Python API

Лучше всего подходит для

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

Скриптинга

Интеграции

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

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

Хорошая

Отличная

Гибкость

Базовая

Хорошая

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

Лицензия

Chloros+

Chloros+

Chloros+

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

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

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

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

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


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


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

По умолчанию в пути проекта:


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

Запланируйте ежедневное выполнение с помощью Планировщика заданий.


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


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

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


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

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

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

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

Пример кода

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


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

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