API : Python SDK

De Chloros Python SDK biedt programmatische toegang tot de Chloros-beeldverwerkingsengine, waardoor automatisering, aangepaste workflows en naadloze integratie met uw Python-toepassingen en onderzoekspijplijnen mogelijk worden.

Belangrijkste kenmerken

  • 🐍 Native Python - Schone, Pythonic API voor beeldverwerking

  • 🔧 Volledige API-toegang - Volledige controle over Chloros-verwerking

  • 🚀 Automatisering - Bouw aangepaste workflows voor batchverwerking

  • 🔗 Integratie - Integreer Chloros in bestaande Python-toepassingen

  • 📊 Klaar voor onderzoek - Perfect voor wetenschappelijke analysepijplijnen

  • Parallelle verwerking - Schaalbaar naar uw CPU-kernen (Chloros+)

Vereisten

Vereiste
Details

Chloros geïnstalleerd

Windows: Desktop-installatieprogramma; Linux: .deb-pakket

Besturingssysteem

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

Python

Python 3.7 of hoger

Geheugen

Minimaal 8 GB RAM (16 GB aanbevolen)

Internet

Vereist voor licentieactivering

circle-exclamation

Snel aan de slag

Installatie

Installeer via pip:

circle-info

Eerste installatie: Voordat u de SDK gebruikt, activeert u uw Chloros+ licentie door Chloros, Chloros (Browser) of Chloros CLI en log in met uw inloggegevens. Dit hoeft slechts eenmaal te worden gedaan. Gebruik op Linux (geen GUI): chloros-cli login user@example.com 'password'

Basisgebruik

Verwerk een map met slechts een paar regels:

circle-info

Platformonafhankelijke paden: De codevoorbeelden op deze pagina gebruiken paden in de stijl van Windows (bijv. C:\\DroneImages\\Flight001). Gebruik op Linux in plaats daarvan Linux-paden (bijv. /home/user/drone_images/flight001 of ~/drone_images/flight001). De SDK werkt op beide platforms op dezelfde manier.

Volledige controle

Voor geavanceerde workflows:


Installatiehandleiding

Vereisten

Zorg ervoor dat u het volgende hebt voordat u SDK installeert:

  1. Chloros geïnstalleerd — Windows: Desktop-installatieprogramma (download); Linux: .deb-pakket (Linux Installatie)

  2. Python 3.7+ geïnstalleerd (python.orgarrow-up-right)

  3. Actieve Chloros+ licentie (upgradearrow-up-right)

Installeren via pip

Standaardinstallatie:

Met ondersteuning voor voortgangsbewaking:

Ontwikkelingsinstallatie:

Installatie controleren

Controleer of de SDK correct is geïnstalleerd:


Eerste installatie

Licentieactivering

De SDK gebruikt dezelfde licentie als Chloros, Chloros (Browser) en Chloros CLI. Activeer eenmaal via de GUI of CLI:Windows:OpenChloros of Chloros (Browser) en log in op het tabblad Gebruiker , of gebruik de CLI.Linux: Gebruik de CLI (geen GUI beschikbaar):

De licentie wordt lokaal in de cache opgeslagen en blijft behouden na herstarts.

circle-check
circle-info

Uitloggen: SDK-gebruikers kunnen de opgeslagen inloggegevens programmatisch wissen met behulp van de logout()-methode. Zie de logout()-methode in de API-referentie.

Verbinding testen

Controleer of de SDK verbinding kan maken met Chloros:


API-referentie

ChlorosLocal-klasse

Hoofdklasse voor lokale Chloros-beeldverwerking.

Constructor

Parameters:

Parameter
Type
Standaard
Beschrijving

api_url

str

"http://localhost:5000"

URL van lokale Chloros-backend

auto_start_backend

bool

True

Backend automatisch starten indien nodig

backend_exe

str

None (auto-detect)

Pad naar uitvoerbaar backend-bestand

timeout

int

30

Time-out voor verzoek in seconden

backend_startup_timeout

int

60

Time-out voor opstarten backend (seconden)

Voorbeelden:

circle-info

Platformonafhankelijke automatische detectie: De SDK probeert automatisch het juiste backend-pad voor uw platform:

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

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

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


Methoden

create_project(project_name, camera=None)

Maak een nieuw Chloros-project aan.

Parameters:

Parameter
Type
Vereist
Beschrijving

project_name

str

Ja

Naam voor het project

camera

str

Nee

Camerasjabloon (bijv. "Survey3N_RGN", "Survey3W_OCN")

Retourneert: dict - Reactie op het aanmaken van het projectVoorbeeld:


import_images(folder_path, recursive=False)

Afbeeldingen importeren vanuit een map.

Parameters:

Parameter
Type
Vereist
Beschrijving

folder_path

str/Path

Ja

Pad naar map met afbeeldingen

recursive

bool

Nee

Submappen doorzoeken (standaard: False)

Retourneert: dict - Importresultaten met aantal bestandenVoorbeeld:


configure(**settings)

Configureer verwerkingsinstellingen.

Parameters:

Parameter
Type
Standaard
Beschrijving

debayer

str

"Standaard (Snel, gemiddelde kwaliteit)"

Debayer-methode

vignette_correction

bool

True

Vignettecorrectie inschakelen

reflectance_calibration

bool

True

Reflectiekalibratie inschakelen

indices

lijst

None

Te berekenen vegetatie-indexen

export_format

str

"TIFF (16-bit)"

Uitvoerformaat

ppk

bool

False

PPK-correcties inschakelen

custom_settings

dict

None

Geavanceerde aangepaste instellingen

Exportformaten:

  • "TIFF (16-bit)" - Aanbevolen voor GIS/fotogrammetrie

  • "TIFF (32-bit, Percent)" - Wetenschappelijke analyse

  • "PNG (8-bit)" - Visuele inspectie

  • "JPG (8-bit)" - Gecomprimeerde uitvoer

**Beschikbare indexen:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2, en meer.Voorbeeld:


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

Verwerk de projectafbeeldingen.

Parameters:

Parameter
Type
Standaard
Beschrijving

mode

str

"parallel"

Verwerkingsmodus: "parallel" of "serieel"

wait

bool

True

Wachten op voltooiing

progress_callback

callable

None

Voortgangscallbackfunctie (progress, msg)

poll_interval

float

2.0

Pollinginterval voor voortgang (seconden)

Retourneert: dict - Verwerkingsresultaten

circle-exclamation

Voorbeeld:


get_config()

Haal de huidige projectconfiguratie op.

Retourneert: dict - Huidige projectconfiguratieVoorbeeld:


get_status()

Haal statusinformatie van de backend op, inclusief de voortgang van de verwerking per thread.

Retourneert: dict - Backendstatus met de volgende structuur:

Voorbeeld:


shutdown_backend()

Sluit de backend af (indien gestart door SDK).

Voorbeeld:


logout()

Wis de in de cache opgeslagen inloggegevens van het lokale systeem.

Beschrijving:

Logt programmatisch uit door de in de cache opgeslagen authenticatiegegevens te verwijderen. Dit is handig voor:

  • Schakelen tussen verschillende Chloros+-accounts

  • Het wissen van inloggegevens in geautomatiseerde omgevingen

  • Beveiligingsdoeleinden (bijv. het verwijderen van inloggegevens vóór het verwijderen van de installatie)

Retourneert: dict - Resultaat van de uitlogbewerkingVoorbeeld:

circle-info

Herverificatie vereist: Na het aanroepen van logout() moet u opnieuw inloggen via Chloros, Chloros (browser) of via Chloros CLI voordat u SDK kunt gebruiken.


Handige functies

process_folder(folder_path, **options)

Handige functie van één regel om een map te verwerken.

Parameters:

Parameter
Type
Standaard
Beschrijving

folder_path

str/Path

Vereist

Pad naar map met afbeeldingen

project_name

str

Automatisch gegenereerd

Projectnaam

camera

str

None

Camerasjabloon

indices

lijst

["NDVI"]

Te berekenen indices

vignette_correction

bool

True

Vignetcorrectie inschakelen

reflectance_calibration

bool

True

Reflectiekalibratie inschakelen

export_format

str

"TIFF (16-bit)"

Uitvoerformaat

mode

str

"parallel"

Verwerkingsmodus

progress_callback

callable

None

Voortgangscallback

Retourneert: dict - VerwerkingsresultatenVoorbeeld:


Ondersteuning voor contextmanagers

De SDK ondersteunt contextmanagers voor automatische opschoning:


Volledige voorbeelden

circle-info

Linux-gebruikers: Alle onderstaande voorbeelden maken gebruik van Windows-paden. Vervang C:\\...-paden door uw Linux-paden (bijv. /home/user/... of ~/...). Alle SDK-functionaliteit is identiek op alle platforms.

Voorbeeld 1: Basisverwerking

Verwerk een map met standaardinstellingen:


Voorbeeld 2: Aangepaste workflow

Volledige controle over de verwerkingspijplijn:


Voorbeeld 3: Batchverwerking van meerdere mappen

Verwerk meerdere vluchtdatasets:


Voorbeeld 4: Integratie in onderzoekspijplijn

Integreer Chloros met data-analyse:


Voorbeeld 5: Aangepaste voortgangsbewaking

Geavanceerde voortgangsbewaking met logboekregistratie:


Voorbeeld 6: Foutafhandeling

Robuuste foutafhandeling voor productiegebruik:


Voorbeeld 7: Accountbeheer en uitloggen

Beheer inloggegevens programmatisch:


Voorbeeld 8: Opdrachtregelprogramma

Bouw een aangepast CLI-programma met de SDK:

Gebruik:


Afhandeling van uitzonderingen

De SDK biedt specifieke uitzonderingsklassen voor verschillende fouttypes:

Hiërarchie van uitzonderingen

Voorbeelden van uitzonderingen


Geavanceerde onderwerpen

Aangepaste backend-configuratie

Gebruik een aangepaste backend-locatie of -configuratie:

Niet-blokkerende verwerking

Start de verwerking en ga verder met andere taken:

Geheugenbeheer

Verwerk grote datasets in batches:


Probleemoplossing

Backend start niet

Probleem: SDK kan de backend niet startenOplossingen:

  1. Controleer of Chloros is geïnstalleerd:

  1. Controleer de firewall (Windows) of de beschikbaarheid van de poort (Linux: lsof -i :5000)

  2. Probeer het handmatige backend-pad:


Licentie niet gedetecteerdProbleem: SDK geeft een waarschuwing over een ontbrekende licentieOplossingen:

  1. Open Chloros, Chloros (browser) of Chloros CLI en log in.

  2. Controleer of de licentie in de cache is opgeslagen:

  1. Als u problemen ondervindt met inloggegevens, wis dan de in de cache opgeslagen inloggegevens en log opnieuw in:

  1. Neem contact op met de ondersteuning: info@mapir.camera


ImportfoutenProbleem: ModuleNotFoundError: No module named 'chloros_sdk'Oplossingen:


Time-out bij verwerkingProbleem: Time-out bij verwerkingOplossingen:

  1. Verleng de time-out:

  1. Verwerk kleinere batches

  2. Controleer de beschikbare schijfruimte

  3. Houd de systeembronnen in de gaten


Poort al in gebruikProbleem: Backend-poort 5000 bezetOplossingen:

Of zoek en sluit het conflicterende proces:


Tips voor betere prestaties

Verwerkingssnelheid optimaliseren

  1. Gebruik parallelle modus (vereist Chloros+)

  1. Verminder de uitvoerresolutie (indien acceptabel)

  1. Schakel onnodige indexen uit

  1. Verwerk op SSD (niet op HDD)***

Geheugenoptimalisatie

Voor grote datasets:


Achtergrondverwerking

Maak Python vrij voor andere taken:


Integratievoorbeelden

Django-integratie

Flask API

Jupyter Notebook


Veelgestelde vragen

V: Is voor SDK een internetverbinding vereist?

A: Alleen voor de eerste licentieactivering. Na het inloggen via Chloros, Chloros (Browser) of Chloros CLI wordt de licentie lokaal opgeslagen en werkt deze 30 dagen offline.***

V: Kan ik de SDK gebruiken op een server zonder GUI?A: Ja! De SDK werkt headless op zowel Windows- als Linux-servers.Linux (aanbevolen voor headless):

  • Installeren via .deb-pakket

  • Licentie activeren: chloros-cli login user@example.com 'password'

Windows-server:

  • Windows-server 2016 of later

  • Chloros geïnstalleerd (eenmalig)

  • Licentie geactiveerd via CLI of op een willekeurige machine


V: Wat is het verschil tussen Desktop, CLI en SDK?

Functie
Desktop GUI
CLI Opdrachtregel
Python SDK

Interface

Aanwijzen en klikken

Opdrachtregel

Python API

Meest geschikt voor

Visueel werk

Scripting

Integratie

Automatisering

Beperkt

Goed

Uitstekend

Flexibiliteit

Basis

Goed

Maximaal

Licentie

Chloros+

Chloros+

Chloros+

V: Kan ik apps distribueren die zijn gebouwd met de SDK?A: SDK-code kan in uw applicaties worden geïntegreerd, maar:

  • Eindgebruikers moeten Chloros geïnstalleerd hebben

  • Eindgebruikers moeten over actieve Chloros+-licenties beschikken

  • Voor commerciële distributie is een OEM-licentie vereist

Neem contact op met info@mapir.camera voor vragen over OEM-licenties.


V: Hoe werk ik de SDK bij?


V: Waar worden verwerkte afbeeldingen opgeslagen?

Standaard in het projectpad:


V: Kan ik afbeeldingen verwerken vanuit Python-scripts die volgens een schema worden uitgevoerd?A: Ja! Gebruik de planner van uw besturingssysteem met Python-scripts:

Windows: Plan via Taakplanner om dagelijks uit te voeren.Linux: Plan via cron:


V: Ondersteunt SDK async/await?A: De huidige versie is synchroon. Gebruik voor asynchroon gedrag wait=False of voer het uit in een aparte thread:


V: Hoe schakel ik tussen verschillende Chloros+-accounts?A: Gebruik de logout()-methode om de in de cache opgeslagen inloggegevens te wissen en log vervolgens opnieuw in met het nieuwe account:

Nadat u zich hebt afgemeld, verifieert u zich met het nieuwe account via de GUI, browser of CLI voordat u SDK opnieuw gebruikt.


Hulp

Documentatie

  • API-referentie: Deze pagina

Ondersteuningskanalen

Voorbeeldcode

Alle hier vermelde voorbeelden zijn getest en klaar voor gebruik. Kopieer en pas ze aan voor uw specifieke toepassing.


SDK vereist een actief Chloros+-abonnement. Ongeautoriseerd gebruik, distributie of wijziging is verboden.

Laatst bijgewerkt