API: Python SDK

Das Chloros Python SDK bietet programmatischen Zugriff auf die Bildverarbeitungs-Engine Chloros und ermöglicht so Automatisierung, benutzerdefinierte Workflows sowie eine nahtlose Integration in Ihre Python-Anwendungen und Forschungs-Pipelines.

Hauptmerkmale

  • 🐍 Natives Python – Sauberes, Pythones API für die Bildverarbeitung

  • 🔧 Voller Zugriff auf API – Vollständige Kontrolle über die Chloros-Verarbeitung

  • 🚀 Automatisierung – Erstellen Sie benutzerdefinierte Workflows für die Stapelverarbeitung

  • 🔗 Integration – Binden Sie Chloros in bestehende Python-Anwendungen ein

  • 📊 Forschungsbereit – Perfekt für wissenschaftliche Analyse-Pipelines

  • Parallelverarbeitung – Skaliert entsprechend Ihrer CPU-Kernanzahl (Chloros+)

Anforderungen

Anforderung
Details

Chloros installiert

Windows: Desktop-Installationsprogramm; Linux: .deb-Paket

Betriebssystem

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

Python

Python 3.7 oder höher

Arbeitsspeicher

Mindestens 8 GB RAM (16 GB empfohlen)

Internet

Erforderlich für die Lizenzaktivierung

circle-exclamation

Schnellstart

Installation

Installation über pip:

circle-info

Erstkonfiguration: Bevor Sie SDK verwenden, aktivieren Sie Ihre Chloros+-Lizenz, indem Sie Chloros, Chloros (Browser) oder Chloros CLI und melden Sie sich mit Ihren Zugangsdaten an. Dies muss nur einmal durchgeführt werden. Auf Linux (ohne GUI) verwenden Sie: chloros-cli login user@example.com 'password'

Grundlegende Verwendung

Verarbeiten Sie einen Ordner mit nur wenigen Zeilen:

circle-info

Plattformübergreifende Pfade: Die Code-Beispiele auf dieser Seite verwenden Pfade im Stil von Windows (z. B. C:\\DroneImages\\Flight001). Verwenden Sie unter Linux stattdessen Pfade im Format Linux (z. B. /home/user/drone_images/flight001 oder ~/drone_images/flight001). Der Befehl SDK funktioniert auf beiden Plattformen identisch.

Vollständige Kontrolle

Für fortgeschrittene Workflows:


Installationsanleitung

Voraussetzungen

Stellen Sie vor der Installation von SDK sicher, dass Sie Folgendes haben:

  1. Chloros installiert — Windows: Desktop-Installationsprogramm (Download); Linux: .deb-Paket (Linux-Installation)

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

  3. Aktive Chloros+-Lizenz (Upgradearrow-up-right)

Installation über pip

Standardinstallation:

Mit Unterstützung für Fortschrittsanzeige:

Entwicklungsinstallation:

Installation überprüfen

Testen Sie, ob SDK korrekt installiert ist:


Ersteinrichtung

Lizenzaktivierung

SDK verwendet dieselbe Lizenz wie Chloros, Chloros (Browser) und Chloros CLI. Aktivieren Sie die Lizenz einmalig über die GUI oder CLI:Windows:Öffnen SieChloros oder Chloros (Browser) und melden Sie sich auf der Registerkarte „Benutzer“ oder verwenden Sie das CLI.Linux: Verwenden Sie das CLI (keine GUI verfügbar):

Die Lizenz wird lokal zwischengespeichert und bleibt auch nach einem Neustart erhalten.

circle-check
circle-info

**Abmelden: SDK-Benutzer können zwischengespeicherte Anmeldedaten programmgesteuert mit der Methode logout() löschen. Siehe logout()-Methode in der API-Referenz.

Verbindung testen

Überprüfen Sie, ob SDK eine Verbindung zu Chloros herstellen kann:


API-Referenz

Klasse ChlorosLocal

Hauptklasse für die lokale Bildverarbeitung mit Chloros.

Konstruktor

Parameter:

Parameter
Typ
Standardwert
Beschreibung

api_url

str

"http://localhost:5000"

URL des lokalen Chloros-Backends

auto_start_backend

bool

True

Backend bei Bedarf automatisch starten

backend_exe

str

None (auto-Erkennung)

Pfad zur ausführbaren Backend-Datei

timeout

int

30

Zeitlimit für Anfragen in Sekunden

backend_startup_timeout

int

60

Zeitlimit für den Start des Backends (Sekunden)

Beispiele:

circle-info

Plattformübergreifende automatische Erkennung: SDK versucht automatisch, den richtigen Backend-Pfad für Ihre Plattform zu ermitteln:

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

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

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


Methoden

create_project(project_name, camera=None)

Erstellen Sie ein neues Chloros-Projekt.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

project_name

str

Ja

Name für das Projekt

camera

str

Nein

Kameravorlage (z. B. „Survey3N_RGN“, „Survey3W_OCN“)

Rückgabewerte: dict – Antwort auf die ProjekterstellungBeispiel:


import_images(folder_path, recursive=False)

Bilder aus einem Ordner importieren.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

folder_path

str/Pfad

Ja

Pfad zum Ordner mit Bildern

recursive

bool

Nein

Unterordner durchsuchen (Standard: False)

Rückgabewert: dict – Importergebnisse mit DateianzahlBeispiel:


configure(**settings)

Verarbeitungseinstellungen konfigurieren.

Parameter:

Parameter
Typ
Standardwert
Beschreibung

debayer

str

„Standard (schnell, mittlere Qualität)“

Debayer-Methode

vignette_correction

bool

True

Vignettenkorrektur aktivieren

reflectance_calibration

bool

True

Reflektanzkalibrierung aktivieren

indices

list

None

Zu berechnende Vegetationsindizes

export_format

str

„TIFF (16-Bit)“

Ausgabeformat

ppk

bool

False

PPK-Korrekturen aktivieren

custom_settings

dict

None

Erweiterte benutzerdefinierte Einstellungen

Exportformate:

  • "TIFF (16-bit)" – Empfohlen für GIS/Fotogrammetrie

  • "TIFF (32-bit, Percent)" – Wissenschaftliche Analyse

  • "PNG (8-bit)" – Visuelle Inspektion

  • "JPG (8-bit)" – Komprimierte Ausgabe

**Verfügbare Indizes:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2 und weitere.Beispiel:


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

Verarbeiten Sie die Projektbilder.

Parameter:

Parameter
Typ
Standardwert
Beschreibung

mode

str

"parallel"

Verarbeitungsmodus: „parallel“ oder „seriell“

wait

bool

True

Auf Abschluss warten

progress_callback

callable

None

Fortschritts-Callback-Funktion(progress, msg)

poll_interval

float

2.0

Abfrageintervall für den Fortschritt (Sekunden)

Gibt zurück: dict – Verarbeitungsergebnisse

circle-exclamation

Beispiel:


get_config()

Aktuelle Projektkonfiguration abrufen.

Rückgabewert: dict – Aktuelle ProjektkonfigurationBeispiel:


get_status()

Backend-Statusinformationen abrufen, einschließlich des Verarbeitungsfortschritts pro Thread.

Rückgabewert: dict – Backend-Status mit folgender Struktur:

Beispiel:


shutdown_backend()

Beendet das Backend (sofern es mit SDK gestartet wurde).

Beispiel:


logout()

Löscht zwischengespeicherte Anmeldedaten aus dem lokalen System.

Beschreibung:

Führt eine programmgesteuerte Abmeldung durch, indem zwischengespeicherte Anmeldedaten entfernt werden. Dies ist nützlich für:

  • Das Wechseln zwischen verschiedenen Chloros+-Konten

  • Das Löschen von Anmeldedaten in automatisierten Umgebungen

  • Sicherheitszwecke (z. B. das Entfernen von Anmeldedaten vor der Deinstallation)

Rückgabewert: dict – Ergebnis des AbmeldevorgangsBeispiel:

circle-info

Neuauthentifizierung erforderlich: Nach dem Aufruf von logout() müssen Sie sich erneut über Chloros, Chloros (Browser) oder Chloros CLI anmelden, bevor Sie SDK nutzen können.


Komfortfunktionen

process_folder(folder_path, **options)

Einzeilige Komfortfunktion zur Bearbeitung eines Ordners.

Parameter:

Parameter
Typ
Standardwert
Beschreibung

folder_path

str/Path

Erforderlich

Pfad zum Ordner mit Bildern

project_name

str

Automatisch generiert

Projektname

camera

str

None

Kameravorlage

indices

list

["NDVI"]

Zu berechnende Indizes

vignette_correction

bool

True

Vignettierungskorrektur aktivieren

reflectance_calibration

bool

True

Reflexionskalibrierung aktivieren

export_format

str

"TIFF (16-Bit)"

Ausgabeformat

mode

str

"parallel"

Verarbeitungsmodus

progress_callback

aufrufbar

None

Fortschritts-Callback

Rückgabewerte: dict – VerarbeitungsergebnisseBeispiel:


Unterstützung von Kontextmanagern

SDK unterstützt Kontextmanager für die automatische Bereinigung:


Vollständige Beispiele

circle-info

Linux-Benutzer: Alle folgenden Beispiele verwenden Windows-Pfade. Ersetzen Sie die C:\\...-Pfade durch Ihre Linux-Pfade (z. B. /home/user/... oder ~/...). Alle SDK-Funktionen sind plattformübergreifend identisch.

Beispiel 1: Grundlegende Verarbeitung

Verarbeiten Sie einen Ordner mit den Standardeinstellungen:


Beispiel 2: Benutzerdefinierter Workflow

Volle Kontrolle über die Verarbeitungs-Pipeline:


Beispiel 3: Stapelverarbeitung mehrerer Ordner

Verarbeiten Sie mehrere Flugdatensätze:


Beispiel 4: Integration in die Forschungspipeline

Integrieren Sie Chloros in die Datenanalyse:


Beispiel 5: Benutzerdefinierte Fortschrittsüberwachung

Erweiterte Fortschrittsverfolgung mit Protokollierung:


Beispiel 6: Fehlerbehandlung

Robuste Fehlerbehandlung für den produktiven Einsatz:


Beispiel 7: Kontoverwaltung und Abmeldung

Anmeldedaten programmgesteuert verwalten:


Beispiel 8: Befehlszeilentool

Erstellen Sie ein benutzerdefiniertes CLI-Tool mit dem SDK:

Verwendung:


Ausnahmebehandlung

Das SDK stellt spezifische Ausnahmeklassen für verschiedene Fehlertypen bereit:

Ausnahmehierarchie

Ausnahmebeispiele


Fortgeschrittene Themen

Benutzerdefinierte Backend-Konfiguration

Verwenden Sie einen benutzerdefinierten Backend-Speicherort oder eine benutzerdefinierte Konfiguration:

Nicht blockierende Verarbeitung

Verarbeitung starten und mit anderen Aufgaben fortfahren:

Speicherverwaltung

Bei großen Datensätzen in Stapeln verarbeiten:


Fehlerbehebung

Backend startet nicht

Problem: SDK kann das Backend nicht startenLösungen:

  1. Überprüfen Sie, ob Chloros installiert ist:

  1. Überprüfen Sie die Firewall (Windows) oder die Portverfügbarkeit (Linux: lsof -i :5000)

  2. Versuchen Sie es mit einem manuellen Backend-Pfad:


Lizenz nicht erkanntProblem: SDK warnt vor fehlender LizenzLösungen:

  1. Öffnen Sie Chloros, Chloros (Browser) oder Chloros CLI und melden Sie sich an.

  2. Überprüfen Sie, ob die Lizenz zwischengespeichert ist:

  1. Bei Problemen mit den Anmeldedaten löschen Sie die zwischengespeicherten Anmeldedaten und melden Sie sich erneut an:

  1. Wenden Sie sich an den Support: info@mapir.camera


ImportfehlerProblem: ModuleNotFoundError: No module named 'chloros_sdk'Lösungen:


Zeitüberschreitung bei der VerarbeitungProblem: Zeitüberschreitung bei der VerarbeitungLösungen:

  1. Erhöhen Sie die Zeitüberschreitung:

  1. Verarbeiten Sie kleinere Stapel

  2. Überprüfen Sie den verfügbaren Speicherplatz

  3. Überwachen Sie die Systemressourcen


Port bereits belegtProblem: Backend-Port 5000 belegtLösungen:

Oder suchen und schließen Sie den konfliktverursachenden Prozess:


Leistungstipps

Verarbeitungsgeschwindigkeit optimieren

  1. Parallelmodus verwenden (erfordert Chloros+)

  1. Ausgabeauflösung reduzieren (sofern akzeptabel)

  1. Nicht benötigte Indizes deaktivieren

  1. Auf SSD verarbeiten (nicht auf HDD)***

Speicheroptimierung

Für große Datensätze:


Hintergrundverarbeitung

Python für andere Aufgaben freigeben:


Integrationsbeispiele

Django-Integration

Flask API

Jupyter Notebook


FAQ

F: Benötigt SDK eine Internetverbindung?

A: Nur für die erstmalige Lizenzaktivierung. Nach der Anmeldung über Chloros, Chloros (Browser) oder Chloros CLI wird die Lizenz lokal zwischengespeichert und funktioniert 30 Tage lang offline.***

F: Kann ich SDK auf einem Server ohne GUI verwenden?A: Ja! Die SDK funktioniert headless sowohl auf Windows- als auch auf Linux-Servern.Linux (empfohlen für Headless):

  • Installation über das .deb-Paket

  • Lizenz aktivieren: chloros-cli login user@example.com 'password'

Windows-Server:

  • Windows Server 2016 oder höher

  • Chloros installiert (einmalig)

  • Lizenz aktiviert über CLI oder auf einem beliebigen Rechner


F: Was ist der Unterschied zwischen Desktop, CLI und SDK?

Funktion
Desktop-GUI
CLI-Befehlszeile
Python SDK

Schnittstelle

Point-and-Click

Befehlszeile

Python API

Am besten geeignet für

Visuelle Arbeit

Skripting

Integration

Automatisierung

Eingeschränkt

Gut

Hervorragend

Flexibilität

Grundlegend

Gut

Maximal

Lizenz

Chloros+

Chloros+

Chloros+

F: Kann ich mit SDK erstellte Apps vertreiben?A: Der Code von SDK kann in Ihre Anwendungen integriert werden, jedoch:

  • Endbenutzer benötigen die Installation von Chloros

  • Endbenutzer benötigen aktive Chloros+-Lizenzen

  • Die kommerzielle Verbreitung erfordert eine OEM-Lizenzierung

Wenden Sie sich bei Fragen zur OEM-Lizenzierung an info@mapir.camera.


F: Wie aktualisiere ich den SDK?


F: Wo werden die verarbeiteten Bilder gespeichert?

Standardmäßig im Projektpfad:


F: Kann ich Bilder aus Python-Skripten verarbeiten, die nach einem Zeitplan ausgeführt werden?A: Ja! Verwenden Sie den Scheduler Ihres Betriebssystems mit Python-Skripten:

Windows: Planen Sie über den Taskplaner eine tägliche Ausführung.Linux: Planen Sie über Cron:


F: Unterstützt SDK async/await?A: Die aktuelle Version ist synchron. Für asynchrones Verhalten verwenden Sie wait=False oder führen Sie den Prozess in einem separaten Thread aus:


F: Wie wechsle ich zwischen verschiedenen Chloros+-Konten?A: Verwenden Sie die Methode logout(), um zwischengespeicherte Anmeldedaten zu löschen, und melden Sie sich dann mit dem neuen Konto erneut an:

Melden Sie sich nach dem Abmelden über die GUI, den Browser oder CLI mit dem neuen Konto an, bevor Sie SDK erneut verwenden.


Hilfe

Dokumentation

  • API-Referenz: Diese Seite

Supportkanäle

Beispielcode

Alle hier aufgeführten Beispiele sind getestet und produktionsreif. Kopieren Sie sie und passen Sie sie an Ihren Anwendungsfall an.


SDK erfordert ein aktives Chloros+-Abonnement. Die unbefugte Nutzung, Verbreitung oder Änderung ist untersagt.

Zuletzt aktualisiert