API : Python SDK

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

Principales fonctionnalités

  • 🐍 Python natif - API propre et pythonesque pour le traitement d'images

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

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

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

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

  • Traitement parallèle - S'adapte à vos cœurs de processeur (Chloros+)

Configuration requise

Configuration requise
Détails

Chloros Desktop

Doit être installé localement

Système d'exploitation

Windows 10/11 (64 bits)

Python

Python 3.7 ou supérieur

Mémoire

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

Internet

Requis pour l'activation de la licence

circle-info

Exigences en matière de licence : Python SDK nécessite un abonnement payant à Chloros+ pour accéder à API. Les forfaits standard (gratuits) ne donnent pas accès à API/SDK. Rendez-vous sur https://cloud.mapir.camera/pricingarrow-up-right pour passer à un forfait supérieur.

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.

Utilisation de base

Traitez un dossier en quelques lignes :

Contrôle total

Pour les workflows avancés :


Guide d'installation

Conditions préalables

Avant d'installer SDK, assurez-vous que vous disposez des éléments suivants :

  1. Chloros Desktop installé (télécharger)

  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 :

  1. Ouvrez Chloros ou Chloros (navigateur)et connectez-vous à l'onglet Utilisateur . Ou ouvrezCLI.

  2. Entrez vos identifiants Chloros+ et connectez-vous

  3. La licence est mise en cache localement (elle persiste après les redémarrages)

circle-info

Configuration unique : après vous être connecté via l'interface graphique ou CLI, SDK utilise automatiquement la licence mise en cache. Aucune authentification supplémentaire n'est nécessaire !

circle-info

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

Tester la connexion

Vérifiez que SDK peut se connecter à Chloros :


Référence API

Classe ChlorosLocal

Classe principale pour le traitement d'images Chloros local.

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 (en secondes)

Exemples :


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 exemple, « Survey3N_RGN », « Survey3W_OCN »)

Renvoie : dict - Réponse de création de projetExemple :


import_images(folder_path, recursive=False)

Importe les images d'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 : Faux)

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


configure(**settings)

Configure les paramètres de traitement.

Paramètres :

Paramètre
Type
Par défaut
Description

debayer

str

« Haute qualité (plus rapide) »

Méthode de débayérisation

vignette_correction

bool

True

Activer la correction du vignettage

reflectance_calibration

bool

True

Activer l'étalonnage de la réflectance

indices

liste

None

Indices de végétation à calculer

export_format

str

« 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 le SIG/la 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)

Traiter 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)

Renvoie : dict - Résultats du traitement

circle-info

Mode parallèle : nécessite une licence Chloros+. S'adapte automatiquement à vos cœurs de processeur (jusqu'à 16 processeurs).

Exemple :


get_config()

Obtient la configuration actuelle du projet.

Renvoie : dict - Configuration actuelle du projetExemple :


get_status()

Récupère les informations sur l'état du backend.

Renvoie : dict - État du backendExemple :


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éconnexion programmatique en supprimant les informations d'identification mises en cache. Ceci est utile pour :

  • Passer d'un compte Chloros+ à un autre

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

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

Renvoie : 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 d'une 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

list

["NDVI"]

Indices à calculer

vignette_correction

bool

True

Activer la correction du vignettage

reflectance_calibration

bool

True

Activer l'étalonnage de la réflectance

export_format

str

« TIFF (16 bits) »

Format de sortie

mode

str

"parallel"

Mode de traitement

progress_callback

callable

None

Rappel de progression

Renvoie : dict - Résultats du traitementExemple :


Prise en charge du gestionnaire de contexte

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


Exemples complets

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 du 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éez 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 de backend personnalisé :

Traitement non bloquant

Lancez le traitement et poursuivez d'autres tâches :

Gestion de la mémoire

Pour les ensembles de données volumineux, effectuez le traitement par lots :


Dépannage

Le backend ne démarre pas

Problème : SDK ne parvient pas à démarrer le backend.Solutions :

  1. Vérifiez que Chloros Desktop est installé :

  1. Vérifiez que le pare-feu Windows ne bloque pas le programme.

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


Licence non détectéeProblème : SDK signale l'absence de licence.Solutions :

  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'identification, effacez les informations d'identification mises en cache et reconnectez-vous :

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


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


Délai d'attente de traitementProblème : Délai d'attente de traitementSolutions :

  1. Augmentez le délai d'attente :

  1. Traitez des lots plus petits

  2. Vérifiez l'espace disque disponible

  3. Surveillez les ressources système


Port déjà utiliséProblème : le port 5000 du backend est occupé.Solutions :

Ou recherchez et fermez le processus en conflit :


Conseils de performance

Optimiser la vitesse de traitement

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

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

  1. Désactivez les index inutiles

  1. Traitez sur SSD (et non sur HDD)***

Optimisation de la mémoire

Pour les ensembles de données volumineux :


Traitement en arrière-plan

Libérez Python 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. Après vous être 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 ! Configuration requise :

  • Windows Server 2016 ou version ultérieure

  • Chloros installé (une seule fois)

  • Licence activée sur n'importe quelle machine (licence mise en cache copiée sur le serveur)


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

Fonctionnalité
Interface graphique Desktop
Ligne de commande CLI
Python SDK

Interface

Point-clic

Commande

Python API

Idéal pour

Travail visuel

Scripting

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 question relative aux licences OEM.


Q : Comment mettre à jour SDK ?


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

Par défaut, dans le chemin d'accès au projet :


Q : Puis-je traiter des images à partir de scripts Python s'exécutant selon un calendrier défini ?R : Oui ! Utilisez le planificateur de tâches Windows avec les scripts Python :

Planifiez l'exécution quotidienne via le planificateur de tâches.


Q : SDK prend-il en charge async/await ?R : La version actuelle est synchrone. Pour un comportement asynchrone, utilisez wait=False ou exécutez 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 répertoriés ici ont été testés et sont prêts à être utilisés en production. 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