API : Python SDK

Le Chloros Python SDK offre un accès programmatique au moteur de traitement d'images Chloros, permettant l'automatisation, la création de flux de travail personnalisés et une intégration transparente avec vos applications Python et vos pipelines de recherche.

Principales fonctionnalités

  • 🐍 Python natif - Code API épuré et conforme aux conventions Python pour le traitement d'images

  • 🔧 Accès complet à API - Contrôle total sur le traitement Chloros

  • 🚀 Automatisation - Créez des workflows de traitement par lots personnalisés

  • 🔗 Intégration - Intégrez Chloros dans vos applications Python existantes

  • 📊 Prêt pour la recherche - Parfait pour les pipelines d'analyse scientifique

  • Traitement parallèle - S'adapte au nombre de cœurs de votre processeur (Chloros+)

Configuration requise

Exigence
Détails

Chloros installé

Windows : programme d'installation pour ordinateur de bureau ; Linux : package .deb

Système d'exploitation

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

Python

Python 3.7 ou version ultérieure

Mémoire

8 Go de RAM minimum (16 Go recommandés)

Internet

Requis pour l'activation de la licence

circle-exclamation

Démarrage rapide

Installation

Installez via pip :

circle-info

Première configuration : avant d'utiliser SDK, activez votre licence Chloros+ en ouvrant Chloros, Chloros (Navigateur) ou Chloros CLI et en vous connectant avec vos identifiants. Cette opération ne doit être effectuée qu'une seule fois. Sur Linux (sans interface graphique), utilisez : chloros-cli login user@example.com 'password'

Utilisation de base

Traitez un dossier en quelques lignes seulement :

circle-info

Chemins d'accès multiplateformes : les exemples de code sur cette page utilisent des chemins de type Windows (par exemple, C:\\DroneImages\\Flight001). Sous Linux, utilisez plutôt des chemins de type Linux (par exemple, /home/user/drone_images/flight001 ou ~/drone_images/flight001). Le SDK fonctionne de manière identique sur les deux plateformes.

Contrôle total

Pour les flux de travail avancés :


Guide d'installation

Conditions préalables

Avant d'installer SDK, assurez-vous de disposer des éléments suivants :

  1. Chloros installé — Windows : programme d'installation pour ordinateur de bureau (télécharger) ; Linux : paquet .deb (Installation de Linux)

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

  3. Licence Chloros+ active (mise à niveauarrow-up-right)

Installation via pip

Installation standard :

Avec prise en charge du suivi de la progression :

Installation de développement :

Vérification de l'installation

Vérifiez que SDK est correctement installé :


Première configuration

Activation de la licence

Le SDK utilise la même licence que les Chloros, Chloros (navigateur) et Chloros CLI. Activez-la une fois via l'interface graphique ou CLI :Windows :OuvrezChloros ou Chloros (Navigateur) et connectez-vous dans l'onglet Utilisateur , ou utilisez CLI.Linux : Utilisez CLI (aucune interface graphique disponible) :

La licence est mise en cache localement et persiste après les redémarrages.

circle-check
circle-info

Déconnexion : les utilisateurs de SDK peuvent effacer par programmation les informations d'identification mises en cache à l'aide de la méthode logout(). Voir la méthode logout() dans la référence API.

Test de connexion

Vérifiez que SDK peut se connecter à Chloros :


Référence API

Classe ChlorosLocal

Classe principale pour le traitement d'images local Chloros.

Constructeur

Paramètres :

Paramètre
Type
Valeur par défaut
Description

api_url

str

"http://localhost:5000"

URL du backend local Chloros

auto_start_backend

bool

True

Démarrer automatiquement le backend si nécessaire

backend_exe

str

None (détection automatique)

Chemin d'accès à l'exécutable du backend

timeout

int

30

Délai d'expiration de la requête en secondes

backend_startup_timeout

int

60

Délai d'expiration pour le démarrage du backend (secondes)

Exemples :

circle-info

Détection automatique multiplateforme : SDK tente automatiquement le chemin d'accès au backend adapté à votre plateforme :

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

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

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


Méthodes

create_project(project_name, camera=None)

Créer un nouveau projet Chloros.

Paramètres :

Paramètre
Type
Obligatoire
Description

project_name

str

Oui

Nom du projet

camera

str

Non

Modèle de caméra (par ex., « Survey3N_RGN », « Survey3W_OCN »)

Retourne : dict - Réponse de création du projetExemple :


import_images(folder_path, recursive=False)

Importer des images depuis un dossier.

Paramètres :

Paramètre
Type
Obligatoire
Description

folder_path

str/Path

Oui

Chemin d'accès au dossier contenant les images

recursive

bool

Non

Rechercher dans les sous-dossiers (par défaut : False)

Retourne : dict - Résultats de l'importation avec le nombre de fichiersExemple :


configure(**settings)

Configurer les paramètres de traitement.

Paramètres :

Paramètre
Type
Par défaut
Description

debayer

str

« Standard (Rapide, Qualité moyenne) »

Méthode de débayérisation

vignette_correction

bool

True

Activer la correction de vignettage

reflectance_calibration

bool

True

Activer l'étalonnage de la réflectance

indices

liste

None

Indices de végétation à calculer

export_format

chaîne

« TIFF (16 bits) »

Format de sortie

ppk

bool

False

Activer les corrections PPK

custom_settings

dict

None

Paramètres personnalisés avancés

Formats d'exportation :

  • "TIFF (16-bit)" - Recommandé pour la SIG/photogrammétrie

  • "TIFF (32-bit, Percent)" - Analyse scientifique

  • "PNG (8-bit)" - Inspection visuelle

  • "JPG (8-bit)" - Sortie compressée

**Indices disponibles :**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2, et plus encore.Exemple :


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

Traite les images du projet.

Paramètres :

Paramètre
Type
Par défaut
Description

mode

str

"parallel"

Mode de traitement : « parallel » ou « serial »

wait

bool

True

Attendre la fin

progress_callback

callable

None

Fonction de rappel de progression (progress, msg)

poll_interval

float

2.0

Intervalle d'interrogation pour la progression (secondes)

Retourne : dict - Résultats du traitement

circle-exclamation

Exemple :


get_config()

Récupère la configuration actuelle du projet.

Retourne : dict - Configuration actuelle du projetExemple :


get_status()

Récupère les informations d'état du backend, y compris la progression du traitement par thread.

Renvoie : dict - État du backend avec la structure suivante :

Exemple :


shutdown_backend()

Arrête le backend (s'il a été démarré par SDK).

Exemple :


logout()

Efface les informations d'identification mises en cache du système local.

Description :

Déconnecte par programmation en supprimant les informations d'identification mises en cache. Ceci est utile pour :

  • Basculer entre différents comptes Chloros+

  • Effacer les informations d'identification dans des environnements automatisés

  • Des raisons de sécurité (par exemple, supprimer les informations d'identification avant la désinstallation)

Retourne : dict - Résultat de l'opération de déconnexionExemple :

circle-info

Réauthentification requise : après avoir appelé logout(), vous devez vous reconnecter via Chloros, Chloros (navigateur) ou Chloros CLI avant d'utiliser SDK.


Fonctions pratiques

process_folder(folder_path, **options)

Fonction pratique sur une seule ligne pour traiter un dossier.

Paramètres :

Paramètre
Type
Par défaut
Description

folder_path

str/Path

Obligatoire

Chemin d'accès au dossier contenant les images

project_name

str

Généré automatiquement

Nom du projet

camera

str

None

Modèle de caméra

indices

liste

["NDVI"]

Indices à calculer

vignette_correction

booléen

True

Activer la correction du vignettage

reflectance_calibration

booléen

True

Activer l'étalonnage de la réflectance

export_format

chaîne

« TIFF (16 bits) »

Format de sortie

mode

str

"parallel"

Mode de traitement

progress_callback

callable

None

Rappel de progression

Retourne : dict - Résultats du traitementExemple :


Prise en charge des gestionnaires de contexte

SDK prend en charge les gestionnaires de contexte pour le nettoyage automatique :


Exemples complets

circle-info

Utilisateurs de Linux : Tous les exemples ci-dessous utilisent des chemins Windows. Remplacez les chemins C:\\... par vos chemins Linux (par exemple, /home/user/... ou ~/...). Toutes les fonctionnalités de SDK sont identiques sur toutes les plateformes.

Exemple 1 : Traitement de base

Traiter un dossier avec les paramètres par défaut :


Exemple 2 : Flux de travail personnalisé

Contrôle total du pipeline de traitement :


Exemple 3 : Traitement par lots de plusieurs dossiers

Traiter plusieurs ensembles de données de vol :


Exemple 4 : Intégration dans un pipeline de recherche

Intégrer Chloros à l'analyse des données :


Exemple 5 : Suivi personnalisé de la progression

Suivi avancé de la progression avec journalisation :


Exemple 6 : Gestion des erreurs

Gestion robuste des erreurs pour une utilisation en production :


Exemple 7 : Gestion des comptes et déconnexion

Gérer les identifiants par programmation :


Exemple 8 : Outil en ligne de commande

Créer un outil CLI personnalisé avec SDK :

Utilisation :


Gestion des exceptions

SDK fournit des classes d'exception spécifiques pour différents types d'erreurs :

Hiérarchie des exceptions

Exemples d'exceptions


Sujets avancés

Configuration personnalisée du backend

Utilisez un emplacement ou une configuration personnalisée du backend :

Traitement non bloquant

Lancez le traitement et passez à d'autres tâches :

Gestion de la mémoire

Pour les ensembles de données volumineux, traitez par lots :


Dépannage

Le backend ne démarre pas

Problème : SDK ne parvient pas à démarrer le backendSolutions :

  1. Vérifiez que Chloros est installé :

  1. Vérifiez le pare-feu (Windows) ou la disponibilité du port (Linux : lsof -i :5000)

  2. Essayez le chemin d'accès manuel au backend :


Licence non détectéeProblème : SDK signale l'absence de licenceSolutions :

  1. Ouvrez Chloros, Chloros (navigateur) ou Chloros CLI et connectez-vous.

  2. Vérifiez que la licence est mise en cache :

  1. Si vous rencontrez des problèmes d'identifiants, effacez les identifiants mis en cache et reconnectez-vous :

  1. Contactez l'assistance : info@mapir.camera


Erreurs d'importationProblème : ModuleNotFoundError: No module named 'chloros_sdk'Solutions :


Expiration du délai de traitementProblème : Expiration du délai de traitementSolutions :

  1. Augmentez le délai d'expiration :

  1. Traiter des lots plus petits

  2. Vérifier l'espace disque disponible

  3. Surveiller les ressources système


Port déjà utiliséProblème : Port 5000 du backend occupéSolutions :

Ou rechercher et fermer le processus en conflit :


Conseils de performance

Optimiser la vitesse de traitement

  1. Utiliser le mode parallèle (nécessite Chloros+)

  1. Réduire la résolution de sortie (si cela est acceptable)

  1. Désactiver les index inutiles

  1. Traiter sur un SSD (et non sur un disque dur)***

Optimisation de la mémoire

Pour les grands ensembles de données :


Traitement en arrière-plan

Libérer des ressources pour d'autres tâches :


Exemples d'intégration

Intégration Django

Flask API

Jupyter Notebook


FAQ

Q : Le SDK nécessite-t-il une connexion Internet ?

R : Uniquement pour l'activation initiale de la licence. Une fois connecté via Chloros, Chloros (navigateur) ou Chloros CLI, la licence est mise en cache localement et fonctionne hors ligne pendant 30 jours.***

Q : Puis-je utiliser SDK sur un serveur sans interface graphique ?R : Oui ! SDK fonctionne en mode sans interface graphique sur les serveurs Windows et Linux.Linux (recommandé pour le mode sans interface graphique) :

  • Installation via le package .deb

  • Activer la licence : chloros-cli login user@example.com 'password'

Serveur Windows :

  • Serveur Windows 2016 ou version ultérieure

  • Chloros installé (une seule fois)

  • Licence activée via CLI ou sur n'importe quelle machine


Q : Quelle est la différence entre Desktop, CLI et SDK ?

Fonctionnalité
Interface graphique Desktop
Ligne de commande CLI
Python SDK

Interface

Pointeur-clic

Commande

Python API

Idéal pour

Travail visuel

Scripts

Intégration

Automatisation

Limitée

Bonne

Excellente

Flexibilité

Basique

Bonne

Maximale

Licence

Chloros+

Chloros+

Chloros+

Q : Puis-je distribuer des applications créées avec SDK ?R : Le code SDK peut être intégré à vos applications, mais :

  • Les utilisateurs finaux doivent avoir installé Chloros

  • Les utilisateurs finaux doivent disposer de licences Chloros+ actives

  • La distribution commerciale nécessite une licence OEM

Contactez info@mapir.camera pour toute demande relative aux licences OEM.


Q : Comment mettre à jour SDK ?


Q : Où sont enregistrées les images traitées ?

Par défaut, dans le chemin du projet :


Q : Puis-je traiter des images à partir de scripts Python exécutés selon un calendrier ?R : Oui ! Utilisez le planificateur de tâches de votre système d'exploitation avec les scripts Python :

Windows : Planifiez l'exécution quotidienne via le Planificateur de tâches.Linux : Planifiez l'exécution via cron :


Q : Le script SDK prend-il en charge async/await ?R : La version actuelle est synchrone. Pour un comportement asynchrone, utilisez wait=False ou exécutez-le dans un thread séparé :


Q : Comment passer d'un compte Chloros+ à un autre ?R : Utilisez la méthode logout() pour effacer les informations d'identification mises en cache, puis reconnectez-vous avec le nouveau compte :

Après vous être déconnecté, authentifiez-vous avec le nouveau compte via l'interface graphique, le navigateur ou CLI avant d'utiliser à nouveau SDK.


Obtenir de l'aide

Documentation

  • Référence API : cette page

Canaux d'assistance

Exemples de code

Tous les exemples présentés ici ont été testés et sont prêts à l'emploi. Copiez-les et adaptez-les à votre cas d'utilisation.


SDK nécessite un abonnement Chloros+ actif. Toute utilisation, distribution ou modification non autorisée est interdite.

Mis à jour