API : Python SDK

Chloros Python SDK oferă acces programatic la motorul de procesare a imaginilor Chloros, permițând automatizarea, fluxuri de lucru personalizate și integrarea perfectă cu aplicațiile și fluxurile de cercetare Python.

Caracteristici cheie

  • 🐍 Nativ Python - Cod curat, în stil Python, pentru procesarea imaginilor

  • 🔧 Acces complet la API - Control complet asupra procesării Chloros

  • 🚀 Automatizare - Creați fluxuri de lucru personalizate de procesare în lot

  • 🔗 Integrare - Încorporați Chloros în aplicațiile Python existente

  • 📊 Gata pentru cercetare - Perfect pentru fluxuri de lucru de analiză științifică

  • Procesare paralelă - Se adaptează la numărul de nuclee ale procesorului (Chloros+)

Cerințe

Cerință
Detalii

Chloros instalat

Windows: program de instalare pentru desktop; Linux: pachet .deb

Sistem de operare

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

Python

Python 3.7 sau o versiune ulterioară

Memorie

Minim 8 GB RAM (se recomandă 16 GB)

Internet

Necesar pentru activarea licenței

circle-exclamation

Ghid de pornire rapidă

Instalare

Instalați prin pip:

circle-info

Configurare inițială: Înainte de a utiliza SDK, activați licența Chloros+ deschizând Chloros, Chloros (Browser) sau Chloros CLI și autentificându-vă cu datele dvs. de autentificare. Acest lucru trebuie făcut o singură dată. Pe Linux (fără GUI), utilizați: chloros-cli login user@example.com 'password'

Utilizare de bază

Procesați un folder cu doar câteva linii:

circle-info

Căi multiplatformă: Exemplele de cod de pe această pagină utilizează căi de tip Windows (de exemplu, C:\\DroneImages\\Flight001). Pe Linux, utilizați în schimb căi de tip Linux (de exemplu, /home/user/drone_images/flight001 sau ~/drone_images/flight001). SDK funcționează identic pe ambele platforme.

Control complet

Pentru fluxuri de lucru avansate:


Ghid de instalare

Cerințe preliminare

Înainte de a instala SDK, asigurați-vă că aveți:

  1. Chloros instalat — Windows: program de instalare pentru desktop (descărcare); Linux: pachetul .deb (Instalare)

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

  3. Licență Chloros+ activă (actualizarearrow-up-right)

Instalare prin pip

Instalare standard:

Cu suport pentru monitorizarea progresului:

Instalare de dezvoltare:

Verificarea instalării

Testați dacă SDK este instalat corect:


Configurare inițială

Activarea licenței

SDK utilizează aceeași licență ca Chloros, Chloros (Browser) și Chloros CLI. Activați o singură dată prin intermediul GUI sau CLI:Windows:DeschidețiChloros sau Chloros (Browser) și conectați-vă la fila Utilizator sau utilizați CLI.Linux: Utilizați CLI (nu este disponibilă interfața grafică):

Licența este stocată local în cache și persistă după reporniri.

circle-check
circle-info

Deconectare: Utilizatorii SDK pot șterge programatic datele de autentificare stocate în cache folosind metoda logout(). Consultați metoda logout() în Referința API.

Testare conexiune

Verificați dacă SDK se poate conecta la Chloros:


Referință API

Clasa ChlorosLocal

Clasa principală pentru procesarea locală a imaginilor Chloros.

Constructor

Parametri:

Parametru
Tip
Implicit
Descriere

api_url

str

"http://localhost:5000"

URL al backend-ului local Chloros

auto_start_backend

bool

True

Pornește automat backend-ul dacă este necesar

backend_exe

str

None (detectare automată)

Calea către executabilul backend-ului

timeout

int

30

Timp de expirare a cererii în secunde

backend_startup_timeout

int

60

Timp de expirare pentru pornirea backend-ului (secunde)

Exemple:

circle-info

Detectare automată multiplataformă: SDK încearcă automat calea corectă către backend pentru platforma dvs.:

  • 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


Metode

create_project(project_name, camera=None)

Creați un nou proiect Chloros.

Parametri:

Parametru
Tip
Obligatoriu
Descriere

project_name

str

Da

Numele proiectului

camera

str

Nu

Șablon cameră (de ex., „Survey3N_RGN”, „Survey3W_OCN”)

Returnează: dict - Răspuns la crearea proiectuluiExemplu:


import_images(folder_path, recursive=False)

Importă imagini dintr-un folder.

Parametri:

Parametru
Tip
Obligatoriu
Descriere

folder_path

str/Path

Da

Calea către folderul cu imagini

recursive

bool

Nu

Căutare în subfoldere (implicit: False)

Returnează: dict - Rezultatele importului cu numărul de fișiereExemplu:


configure(**settings)

Configurează setările de procesare.

Parametri:

Parametru
Tip
Implicit
Descriere

debayer

str

„Standard (Rapid, Calitate medie)”

Metoda de debayerizare

vignette_correction

bool

True

Activează corectarea vignetării

reflectance_calibration

bool

True

Activare calibrare reflectanță

indices

list

None

Indici de vegetație de calculat

export_format

str

„TIFF (16 biți)”

Format de ieșire

ppk

bool

False

Activează corecțiile PPK

custom_settings

dict

None

Setări personalizate avansate

Formate de export:

  • "TIFF (16-bit)" - Recomandat pentru GIS/fotogrammetrie

  • "TIFF (32-bit, Percent)" - Analiză științifică

  • "PNG (8-bit)" - Inspecție vizuală

  • "JPG (8-bit)" - Ieșire comprimată

**Indici disponibili:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2 și altele.Exemplu:


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

Procesează imaginile proiectului.

Parametri:

Parametru
Tip
Implicit
Descriere

mode

str

"parallel"

Mod de procesare: „parallel” sau „serial”

wait

bool

True

Așteptare până la finalizare

progress_callback

callable

None

Funcție de callback pentru progres (progress, msg)

poll_interval

float

2.0

Interval de interogare pentru progres (secunde)

Returnează: dict - Rezultatele procesării

circle-exclamation

Exemplu:


get_config()

Obține configurația curentă a proiectului.

Returnează: dict - Configurația actuală a proiectuluiExemplu:


get_status()

Obține informații despre starea backend-ului, inclusiv progresul procesării pe fiecare thread.

Returnează: dict - Starea backend-ului cu următoarea structură:

Exemplu:


shutdown_backend()

Oprește backend-ul (dacă a fost pornit de SDK).

Exemplu:


logout()

Șterge datele de autentificare stocate în cache din sistemul local.

Descriere:

Deconectare programată prin eliminarea datelor de autentificare stocate în cache. Aceasta este utilă pentru:

  • Comutarea între diferite conturi Chloros+

  • Ștergerea datelor de autentificare în medii automatizate

  • Scopuri de securitate (de exemplu, eliminarea datelor de autentificare înainte de dezinstalare)

Returnează: dict - Rezultatul operațiunii de deconectareExemplu:

circle-info

Reautentificare necesară: După apelarea logout(), trebuie să vă autentificați din nou prin Chloros, Chloros (Browser) sau Chloros CLI înainte de a utiliza SDK.


Funcții de utilitate

process_folder(folder_path, **options)

Funcție de utilitate pe o singură linie pentru procesarea unui folder.

Parametri:

Parametru
Tip
Implicit
Descriere

folder_path

str/Path

Obligatoriu

Calea către folderul cu imagini

project_name

str

Generat automat

Numele proiectului

camera

str

None

Șablon aparat foto

indices

list

["NDVI"]

Indici de calculat

vignette_correction

bool

True

Activare corecție vignetă

reflectance_calibration

bool

True

Activare calibrare reflectanță

export_format

str

„TIFF (16 biți)”

Format de ieșire

mode

str

"parallel"

Mod de procesare

progress_callback

callable

None

Callback de progres

Returnează: dict - Rezultatele procesăriiExemplu:


Suport pentru managerul de context

SDK acceptă manageri de context pentru curățare automată:


Exemple complete

circle-info

Utilizatori Linux: Toate exemplele de mai jos utilizează căi Windows. Înlocuiți căile C:\\... cu căile dvs. Linux (de exemplu, /home/user/... sau ~/...). Toate funcționalitățile SDK sunt identice pe toate platformele.

Exemplul 1: Procesare de bază

Procesați un folder cu setările implicite:


Exemplul 2: Flux de lucru personalizat

Control deplin asupra fluxului de procesare:


Exemplul 3: Procesarea în lot a mai multor foldere

Procesați mai multe seturi de date de zbor:


Exemplul 4: Integrarea fluxului de cercetare

Integrarea Chloros cu analiza datelor:


Exemplul 5: Monitorizarea personalizată a progresului

Urmărirea avansată a progresului cu înregistrare:


Exemplul 6: Gestionarea erorilor

Gestionare robustă a erorilor pentru utilizare în producție:


Exemplul 7: Gestionarea contului și deconectare

Gestionați datele de autentificare prin programare:


Exemplul 8: Instrument de linie de comandă

Construiți un instrument personalizat CLI cu SDK:

Utilizare:


Gestionarea excepțiilor

SDK oferă clase de excepții specifice pentru diferite tipuri de erori:

Ierarhia excepțiilor

Exemple de excepții


Subiecte avansate

Configurare personalizată a backend-ului

Utilizați o locație sau o configurație personalizată a backend-ului:

Procesare fără blocare

Porniți procesarea și continuați cu alte sarcini:

Gestionarea memoriei

Pentru seturi de date mari, procesați în loturi:


Depanare

Backend-ul nu pornește

Problemă: SDK nu reușește să pornească backend-ulSoluții:

  1. Verificați dacă Chloros este instalat:

  1. Verificați firewall-ul (Windows) sau disponibilitatea portului (Linux: lsof -i :5000)

  2. Încercați calea manuală către backend:


Licență nedetectatăProblemă: SDK avertizează că lipsește licențaSoluții:

  1. Deschideți Chloros, Chloros (Browser) sau Chloros CLI și conectați-vă.

  2. Verificați dacă licența este stocată în cache:

  1. Dacă întâmpinați probleme cu datele de autentificare, ștergeți datele de autentificare stocate în cache și conectați-vă din nou:

  1. Contactați serviciul de asistență: info@mapir.camera


Erori de importProblemă: ModuleNotFoundError: No module named 'chloros_sdk'Soluții:


Timp de expirare a procesăriiProblemă: Timpul de procesare a expiratSoluții:

  1. Măriți timpul de expirare:

  1. Procesați loturi mai mici

  2. Verificați spațiul disponibil pe disc

  3. Monitorizați resursele sistemului


Port deja utilizatProblemă: Portul backend 5000 este ocupatSoluții:

Sau găsiți și închideți procesul care creează conflictul:


Sfaturi de performanță

Optimizați viteza de procesare

  1. Utilizați modul paralel (necesită Chloros+)

  1. Reduceți rezoluția de ieșire (dacă este acceptabil)

  1. Dezactivați indicii inutili

  1. Procesați pe SSD (nu pe HDD)***

Optimizarea memoriei

Pentru seturi de date mari:


Procesare în fundal

Eliberați Python pentru alte sarcini:


Exemple de integrare

Integrare Django

Flask API

Jupyter Notebook


Întrebări frecvente

Î: SDK necesită o conexiune la internet?

R: Doar pentru activarea inițială a licenței. După conectarea prin Chloros, Chloros (Browser) sau Chloros CLI, licența este stocată local și funcționează offline timp de 30 de zile.***

Î: Pot folosi SDK pe un server fără GUI?R: Da! SDK funcționează fără interfață grafică atât pe serverele Windows, cât și pe cele Linux.Linux (recomandat pentru fără interfață grafică):

  • Instalați prin pachetul .deb

  • Activați licența: chloros-cli login user@example.com 'password'

Server Windows:

  • Server Windows 2016 sau o versiune ulterioară

  • Chloros instalat (o singură dată)

  • Licență activată prin CLI sau pe orice mașină


Î: Care este diferența dintre Desktop, CLI și SDK?

Caracteristică
Interfață grafică Desktop
Linie de comandă CLI
Python SDK

Interfață

Point-click

Comandă

Python API

Ideal pentru

Lucru vizual

Scripting

Integrare

Automatizare

Limitată

Bună

Excelentă

Flexibilitate

De bază

Bună

Maximă

Licență

Chloros+

Chloros+

Chloros+

Î: Pot distribui aplicații create cu SDK?R: Codul SDK poate fi integrat în aplicațiile dvs., dar:

  • Utilizatorii finali trebuie să aibă instalat Chloros

  • Utilizatorii finali trebuie să dețină licențe active Chloros+

  • Distribuția comercială necesită licențiere OEM

Contactați info@mapir.camera pentru întrebări legate de OEM.


Î: Cum actualizez SDK?


Î: Unde sunt salvate imaginile procesate?

În mod implicit, în calea proiectului:


Î: Pot procesa imagini din scripturile Python care rulează conform programului?R: Da! Utilizați programatorul sistemului de operare cu scripturile Python:

Windows: Programați prin Task Scheduler pentru a rula zilnic.Linux: Programați prin cron:


Î: SDK acceptă async/await?R: Versiunea actuală este sincronă. Pentru comportament asincron, utilizați wait=False sau rulați într-un thread separat:


Î: Cum pot comuta între diferite conturi Chloros+?R: Utilizați metoda logout() pentru a șterge datele de autentificare stocate în cache, apoi reconectați-vă cu noul cont:

După deconectare, autentificați-vă cu noul cont prin intermediul GUI, browserului sau CLI înainte de a utiliza din nou SDK.


Obținerea de ajutor

Documentație

  • Referință API: Această pagină

Canale de asistență

Cod de exemplu

Toate exemplele enumerate aici sunt testate și gata de utilizare în producție. Copiați-le și adaptați-le pentru cazul dvs. de utilizare.


SDK necesită un abonament activ Chloros+. Utilizarea, distribuirea sau modificarea neautorizată este interzisă.

Last updated