API: Python SDK

El Chloros Python SDK proporciona acceso programático al motor de procesamiento de imágenes Chloros, lo que permite la automatización, flujos de trabajo personalizados y una integración perfecta con sus aplicaciones Python y sus procesos de investigación.

Características principales

  • 🐍 Python nativo: código limpio y en estilo Python para el procesamiento de imágenes

  • 🔧 Acceso completo a API: control total sobre el procesamiento de Chloros

  • 🚀 Automatización: crea flujos de trabajo de procesamiento por lotes personalizados

  • 🔗 Integración: integra Chloros en aplicaciones Python existentes

  • 📊 Listo para la investigación: perfecto para flujos de trabajo de análisis científico

  • Procesamiento paralelo - Se adapta a los núcleos de tu CPU (Chloros+)

Requisitos

Requisito
Detalles

Chloros instalado

Windows: Instalador de escritorio; Linux: Paquete .deb

Sistema operativo

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

Python

Python 3.7 o superior

Memoria

8 GB de RAM como mínimo (se recomiendan 16 GB)

Internet

Necesario para la activación de la licencia

circle-exclamation

Inicio rápido

Instalación

Instálalo mediante pip:

circle-info

Configuración inicial: Antes de utilizar SDK, active su licencia Chloros+ abriendo Chloros, Chloros (Navegador) o Chloros CLI e iniciando sesión con sus credenciales. Esto solo es necesario hacerlo una vez. En Linux (sin interfaz gráfica), utilice: chloros-cli login user@example.com 'password'

Uso básico

Procesa una carpeta con solo unas pocas líneas:

circle-info

Rutas multiplataforma: Los ejemplos de código de esta página utilizan rutas del estilo Windows (p. ej., C:\\DroneImages\\Flight001). En Linux, utilice en su lugar rutas Linux (por ejemplo, /home/user/drone_images/flight001 o ~/drone_images/flight001). SDK funciona de forma idéntica en ambas plataformas.

Control total

Para flujos de trabajo avanzados:


Guía de instalación

Requisitos previos

Antes de instalar SDK, asegúrese de que dispone de:

  1. Chloros instalado — Windows: Instalador de escritorio (descargar); Linux: paquete .deb (Instalación de Linux)

  2. Python 3.7+ instalado (python.orgarrow-up-right)

  3. Licencia Chloros+ activa (actualizaciónarrow-up-right)

Instalación mediante pip

Instalación estándar:

Con soporte para el seguimiento del progreso:

Instalación de desarrollo:

Verificar la instalación

Comprueba que SDK está instalado correctamente:


Configuración inicial

Activación de la licencia

El SDK utiliza la misma licencia que Chloros, Chloros (navegador) y Chloros CLI. Actívela una vez a través de la interfaz gráfica de usuario (GUI) o de CLI:Windows:AbraChloros o Chloros (Navegador) e inicie sesión en la pestaña , o utilice el CLI.Linux: Utilice el CLI (sin interfaz gráfica de usuario disponible):

La licencia se almacena en caché localmente y persiste tras los reinicios.

circle-check
circle-info

Cerrar sesión: Los usuarios de SDK pueden borrar mediante programación las credenciales almacenadas en caché utilizando el método logout(). Consulte el método logout() en la Referencia de API.

Probar la conexión

Compruebe que SDK puede conectarse a Chloros:


Referencia de API

Clase ChlorosLocal

Clase principal para el procesamiento de imágenes Chloros local.

Constructor

Parámetros:

Parámetro
Tipo
Valor predeterminado
Descripción

api_url

str

"http://localhost:5000"

URL del backend local Chloros

auto_start_backend

bool

True

Iniciar automáticamente el backend si es necesario

backend_exe

str

None (detección automática)

Ruta al ejecutable del backend

timeout

int

30

Tiempo de espera de la solicitud en segundos

backend_startup_timeout

int

60

Tiempo de espera para el inicio del backend (segundos)

Ejemplos:

circle-info

Detección automática multiplataforma: SDK prueba automáticamente la ruta de backend correcta para su plataforma:

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

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

  • Linux (manual): /opt/mapir/chloros/backend/chloros-backend


Métodos

create_project(project_name, camera=None)

Crear un nuevo proyecto Chloros.

Parámetros:

Parámetro
Tipo
Obligatorio
Descripción

project_name

str

Nombre del proyecto

camera

str

No

Plantilla de cámara (p. ej., «Survey3N_RGN", "Survey3W_OCN")

Devuelve: dict - Respuesta de creación del proyectoEjemplo:


import_images(folder_path, recursive=False)

Importar imágenes desde una carpeta.

Parámetros:

Parámetro
Tipo
Obligatorio
Descripción

folder_path

str/Path

Ruta a la carpeta con imágenes

recursive

bool

No

Buscar en subcarpetas (por defecto: False)

Devuelve: dict - Resultados de la importación con recuento de archivosEjemplo:


configure(**settings)

Configurar los ajustes de procesamiento.

Parámetros:

Parámetro
Tipo
Valor predeterminado
Descripción

debayer

str

«Estándar (rápido, calidad media)»

Método de debayerización

vignette_correction

bool

True

Habilitar corrección de viñeteado

reflectance_calibration

bool

True

Habilitar calibración de reflectancia

indices

list

None

Índices de vegetación a calcular

export_format

str

«TIFF (16 bits)»

Formato de salida

ppk

bool

False

Habilitar correcciones PPK

custom_settings

dict

None

Ajustes personalizados avanzados

Formatos de exportación:

  • "TIFF (16-bit)" - Recomendado para SIG/fotogrametría

  • "TIFF (32-bit, Percent)" - Análisis científico

  • "PNG (8-bit)" - Inspección visual

  • "JPG (8-bit)" - Salida comprimida

**Índices disponibles:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2, y más.Ejemplo:


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

Procesar las imágenes del proyecto.

Parámetros:

Parámetro
Tipo
Predeterminado
Descripción

mode

str

"parallel"

Modo de procesamiento: «paralelo» o «serial»

wait

bool

True

Esperar a que finalice

progress_callback

callable

None

Función de devolución de llamada de progreso (progress, msg)

poll_interval

float

2.0

Intervalo de sondeo para el progreso (segundos)

Devuelve: dict - Resultados del procesamiento

circle-exclamation

Ejemplo:


get_config()

Obtiene la configuración actual del proyecto.

Devuelve: dict - Configuración actual del proyectoEjemplo:


get_status()

Obtener información sobre el estado del backend, incluido el progreso del procesamiento por subproceso.

Devuelve: dict - Estado del backend con la siguiente estructura:

Ejemplo:


shutdown_backend()

Apaga el backend (si se ha iniciado mediante SDK).

Ejemplo:


logout()

Borra las credenciales almacenadas en caché del sistema local.

Descripción:

Cierra la sesión mediante programación eliminando las credenciales de autenticación almacenadas en caché. Esto resulta útil para:

  • Cambiar entre diferentes cuentas Chloros+

  • Borrar credenciales en entornos automatizados

  • Fines de seguridad (por ejemplo, eliminar credenciales antes de desinstalar)

Devuelve: dict - Resultado de la operación de cierre de sesiónEjemplo:

circle-info

Se requiere reautenticación: Después de llamar a logout(), debe volver a iniciar sesión mediante Chloros, Chloros (navegador) o Chloros CLI antes de utilizar SDK.


Funciones de conveniencia

process_folder(folder_path, **options)

Función de conveniencia de una línea para procesar una carpeta.

Parámetros:

Parámetro
Tipo
Predeterminado
Descripción

folder_path

str/Path

Obligatorio

Ruta a la carpeta con imágenes

project_name

str

Generado automáticamente

Nombre del proyecto

camera

str

None

Plantilla de cámara

indices

lista

["NDVI"]

Índices a calcular

vignette_correction

bool

True

Habilitar corrección de viñeteado

reflectance_calibration

bool

True

Habilitar calibración de reflectancia

export_format

str

"TIFF (16 bits)"

Formato de salida

mode

str

"parallel"

Modo de procesamiento

progress_callback

callable

None

Llamada de retorno de progreso

Devuelve: dict - Resultados del procesamientoEjemplo:


Compatibilidad con gestores de contexto

SDK admite gestores de contexto para la limpieza automática:


Ejemplos completos

circle-info

Usuarios de Linux: Todos los ejemplos que figuran a continuación utilizan rutas de Windows. Sustituya las rutas de C:\\... por sus propias rutas de Linux (por ejemplo, /home/user/... o ~/...). Toda la funcionalidad de SDK es idéntica en todas las plataformas.

Ejemplo 1: Procesamiento básico

Procesar una carpeta con la configuración predeterminada:


Ejemplo 2: Flujo de trabajo personalizado

Control total sobre el proceso de procesamiento:


Ejemplo 3: Procesamiento por lotes de varias carpetas

Procesar varios conjuntos de datos de vuelos:


Ejemplo 4: Integración en el proceso de investigación

Integrar Chloros con el análisis de datos:


Ejemplo 5: Supervisión personalizada del progreso

Seguimiento avanzado del progreso con registro:


Ejemplo 6: Gestión de errores

Gestión robusta de errores para uso en producción:


Ejemplo 7: Gestión de cuentas y cierre de sesión

Gestionar credenciales mediante programación:


Ejemplo 8: Herramienta de línea de comandos

Crear una herramienta CLI personalizada con SDK:

Uso:


Gestión de excepciones

SDK proporciona clases de excepción específicas para diferentes tipos de error:

Jerarquía de excepciones

Ejemplos de excepciones


Temas avanzados

Configuración personalizada del backend

Utilice una ubicación o configuración personalizada del backend:

Procesamiento sin bloqueo

Inicie el procesamiento y continúe con otras tareas:

Gestión de memoria

Para conjuntos de datos grandes, procéselos por lotes:


Solución de problemas

El backend no se inicia

Problema: SDK no consigue iniciar el backendSoluciones:

  1. Compruebe que Chloros está instalado:

  1. Compruebe el cortafuegos (Windows) o la disponibilidad del puerto (Linux: lsof -i :5000)

  2. Pruebe la ruta de backend manual:


No se ha detectado la licenciaProblema: SDK advierte de que falta la licenciaSoluciones:

  1. Abra Chloros, Chloros (navegador) o Chloros CLI e inicie sesión.

  2. Compruebe que la licencia está almacenada en caché:

  1. Si tiene problemas con las credenciales, borre las credenciales almacenadas en la caché y vuelva a iniciar sesión:

  1. Póngase en contacto con el servicio de asistencia: info@mapir.camera


Errores de importaciónProblema: ModuleNotFoundError: No module named 'chloros_sdk'Soluciones:


Tiempo de espera de procesamientoProblema: Se agota el tiempo de espera de procesamientoSoluciones:

  1. Aumente el tiempo de espera:

  1. Procese lotes más pequeños

  2. Compruebe el espacio disponible en disco

  3. Supervisar los recursos del sistema


Puerto ya en usoProblema: El puerto 5000 del backend está ocupadoSoluciones:

O bien, buscar y cerrar el proceso conflictivo:


Consejos de rendimiento

Optimizar la velocidad de procesamiento

  1. Utilizar el modo paralelo (requiere Chloros+)

  1. Reducir la resolución de salida (si es aceptable)

  1. Desactive los índices innecesarios

  1. Procese en SSD (no en HDD)***

Optimización de la memoria

Para conjuntos de datos grandes:


Procesamiento en segundo plano

Libera Python para otras tareas:


Ejemplos de integración

Integración con Django

Flask API

Jupyter Notebook


Preguntas frecuentes

P: ¿Requiere SDK una conexión a Internet?

R: Solo para la activación inicial de la licencia. Tras iniciar sesión a través de Chloros, Chloros (navegador) o Chloros CLI, la licencia se almacena en caché localmente y funciona sin conexión durante 30 días.***

P: ¿Puedo utilizar SDK en un servidor sin interfaz gráfica de usuario?R: ¡Sí! SDK funciona sin interfaz gráfica tanto en servidores Windows como en servidores Linux.Linux (recomendado para modo sin interfaz gráfica):

  • Instalar mediante el paquete .deb

  • Activar la licencia: chloros-cli login user@example.com 'password'

Servidor Windows:

  • Servidor Windows 2016 o posterior

  • Chloros instalado (una sola vez)

  • Licencia activada mediante CLI o en cualquier máquina


P: ¿Cuál es la diferencia entre Desktop, CLI y SDK?

Característica
Interfaz gráfica de escritorio
Línea de comandos CLI
Python SDK

Interfaz

Puntero y clic

Línea de comandos

Python API

Ideal para

Trabajo visual

Programación de scripts

Integración

Automatización

Limitada

Buena

Excelente

Flexibilidad

Básica

Buena

Máxima

Licencia

Chloros+

Chloros+

Chloros+

P: ¿Puedo distribuir aplicaciones creadas con SDK?R: El código SDK se puede integrar en sus aplicaciones, pero:

  • Los usuarios finales deben tener instalado Chloros

  • Los usuarios finales deben disponer de licencias activas de Chloros+

  • La distribución comercial requiere una licencia OEM

Póngase en contacto con info@mapir.camera para consultas sobre OEM.


P: ¿Cómo actualizo el SDK?


P: ¿Dónde se guardan las imágenes procesadas?

De forma predeterminada, en la ruta del proyecto:


P: ¿Puedo procesar imágenes desde scripts de Python que se ejecutan de forma programada?R: ¡Sí! Utilice el programador de tareas de su sistema operativo con scripts de Python:

Windows: Programar a través del Programador de tareas para que se ejecute a diario.Linux: Programar mediante cron:


P: ¿SDK es compatible con async/await?R: La versión actual es síncrona. Para un comportamiento asíncrono, utilice wait=False o ejecútelo en un subproceso independiente:


P: ¿Cómo puedo cambiar entre diferentes cuentas Chloros+?R: Utilice el método logout() para borrar las credenciales almacenadas en caché y, a continuación, vuelva a iniciar sesión con la nueva cuenta:

Después de cerrar sesión, autentíquese con la nueva cuenta a través de la interfaz gráfica de usuario, el navegador o CLI antes de volver a utilizar SDK.


Obtener ayuda

Documentación

  • Referencia de API: Esta página

Canales de asistencia

Código de ejemplo

Todos los ejemplos que se enumeran aquí han sido probados y están listos para su uso en producción. Cópielos y adáptelos a su caso de uso.


SDK requiere una suscripción activa a Chloros+. Queda prohibido el uso, la distribución o la modificación no autorizados.

Última actualización