API : Python SDK

Il Chloros Python SDK fornisce accesso programmatico al motore di elaborazione delle immagini Chloros, consentendo l'automazione, flussi di lavoro personalizzati e una perfetta integrazione con le vostre applicazioni Python e le vostre pipeline di ricerca.

Caratteristiche principali

  • 🐍 Nativo Python - API pulito e in stile Python per l'elaborazione delle immagini

  • 🔧 Accesso completo a API - Controllo completo sull'elaborazione Chloros

  • 🚀 Automazione - Crea flussi di lavoro personalizzati per l'elaborazione in batch

  • 🔗 Integrazione - Incorpora Chloros nelle applicazioni Python esistenti

  • 📊 Pronto per la ricerca - Perfetto per le pipeline di analisi scientifiche

  • Elaborazione parallela - Scalabile in base ai core della CPU (Chloros+)

Requisiti

Requisito
Dettagli

Chloros installato

Windows: programma di installazione desktop; Linux: pacchetto .deb

Sistema operativo

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

Python

Python 3.7 o superiore

Memoria

Minimo 8 GB di RAM (consigliati 16 GB)

Internet

Necessario per l'attivazione della licenza

circle-exclamation

Guida rapida

Installazione

Installare tramite pip:

circle-info

Configurazione iniziale: prima di utilizzare SDK, attiva la tua licenza Chloros+ aprendo Chloros, Chloros (Browser) o Chloros CLI ed effettuando l'accesso con le proprie credenziali. Questa operazione deve essere eseguita una sola volta. Su Linux (senza GUI), utilizzare: chloros-cli login user@example.com 'password'

Utilizzo di base

Elabora una cartella con poche righe:

circle-info

Percorsi multipiattaforma: gli esempi di codice in questa pagina utilizzano percorsi in stile Windows (ad es. C:\\DroneImages\\Flight001). Su Linux, utilizzare invece percorsi Linux (ad es., /home/user/drone_images/flight001 o ~/drone_images/flight001). SDK funziona in modo identico su entrambe le piattaforme.

Controllo completo

Per flussi di lavoro avanzati:


Guida all'installazione

Prerequisiti

Prima di installare SDK, assicurarsi di disporre di:

  1. Chloros installato — Windows: programma di installazione desktop (scarica); Linux: pacchetto .deb (Installazione)

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

  3. Licenza Chloros+ attiva (aggiornamentoarrow-up-right)

Installazione tramite pip

Installazione standard:

Con supporto al monitoraggio dello stato di avanzamento:

Installazione di sviluppo:

Verifica dell'installazione

Verifica che SDK sia installato correttamente:


Configurazione iniziale

Attivazione della licenza

SDK utilizza la stessa licenza di Chloros, Chloros (Browser) e Chloros CLI. Attivare una volta tramite l'interfaccia grafica o CLI:Windows:AprireChloros o Chloros (Browser) ed effettuare il login nella scheda Utente , oppure utilizzare CLI.Linux: Utilizzare CLI (GUI non disponibile):

La licenza viene memorizzata nella cache locale e persiste anche dopo il riavvio.

circle-check
circle-info

Disconnessione: gli utenti di SDK possono cancellare le credenziali memorizzate nella cache a livello di programmazione utilizzando il metodo logout(). Vedere il metodo logout() nella Documentazione di riferimento di API.

Verifica della connessione

Verificare che SDK sia in grado di connettersi a Chloros:


Riferimento API

Classe ChlorosLocal

Classe principale per l'elaborazione delle immagini Chloros locale.

Costruttore

Parametri:

Parametro
Tipo
Predefinito
Descrizione

api_url

str

"http://localhost:5000"

URL del backend locale Chloros

auto_start_backend

bool

True

Avvia automaticamente il backend se necessario

backend_exe

str

None (rilevamento automatico)

Percorso dell'eseguibile del backend

timeout

int

30

Timeout della richiesta in secondi

backend_startup_timeout

int

60

Timeout per l'avvio del backend (secondi)

Esempi:

circle-info

Rilevamento automatico multipiattaforma: SDK prova automaticamente il percorso del backend corretto per la tua piattaforma:

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

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

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


Metodi

create_project(project_name, camera=None)

Crea un nuovo progetto Chloros.

Parametri:

Parametro
Tipo
Obbligatorio
Descrizione

project_name

str

Nome del progetto

camera

str

No

Modello di telecamera (ad es., "Survey3N_RGN", "Survey3W_OCN")

Restituisce: dict - Risposta di creazione del progettoEsempio:


import_images(folder_path, recursive=False)

Importa immagini da una cartella.

Parametri:

Parametro
Tipo
Obbligatorio
Descrizione

folder_path

str/Path

Percorso della cartella contenente le immagini

recursive

bool

No

Cerca nelle sottocartelle (impostazione predefinita: False)

Restituisce: dict - Risultati dell'importazione con il numero di fileEsempio:


configure(**settings)

Configura le impostazioni di elaborazione.

Parametri:

Parametro
Tipo
Predefinito
Descrizione

debayer

str

"Standard (Veloce, Qualità media)"

Metodo di debayering

vignette_correction

bool

True

Abilita correzione vignettatura

reflectance_calibration

bool

True

Abilita calibrazione della riflettanza

indices

list

None

Indici di vegetazione da calcolare

export_format

str

"TIFF (16-bit)"

Formato di output

ppk

bool

False

Abilita correzioni PPK

custom_settings

dict

None

Impostazioni personalizzate avanzate

Formati di esportazione:

  • "TIFF (16-bit)" - Consigliato per GIS/fotogrammetria

  • "TIFF (32-bit, Percent)" - Analisi scientifica

  • "PNG (8-bit)" - Ispezione visiva

  • "JPG (8-bit)" - Output compresso

**Indici disponibili:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2 e altri.Esempio:


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

Elabora le immagini del progetto.

Parametri:

Parametro
Tipo
Predefinito
Descrizione

mode

str

"parallel"

Modalità di elaborazione: "parallel" o "serial"

wait

bool

True

Attendere il completamento

progress_callback

callable

None

Funzione di callback di avanzamento (progress, msg)

poll_interval

float

2.0

Intervallo di polling per l'avanzamento (secondi)

Restituisce: dict - Risultati dell'elaborazione

circle-exclamation

Esempio:


get_config()

Ottiene la configurazione corrente del progetto.

Restituisce: dict - Configurazione attuale del progettoEsempio:


get_status()

Ottiene le informazioni sullo stato del backend, compreso lo stato di avanzamento dell'elaborazione per thread.

Restituisce: dict - Stato del backend con la seguente struttura:

Esempio:


shutdown_backend()

Arresta il backend (se avviato da SDK).

Esempio:


logout()

Cancella le credenziali memorizzate nella cache dal sistema locale.

Descrizione:

Effettua il logout a livello di programmazione rimuovendo le credenziali di autenticazione memorizzate nella cache. Ciò è utile per:

  • Passare da un account Chloros+ all'altro

  • Cancellare le credenziali in ambienti automatizzati

  • Motivi di sicurezza (ad es. rimuovere le credenziali prima della disinstallazione)

Restituisce: dict - Risultato dell'operazione di logoutEsempio:

circle-info

Richiesta di nuova autenticazione: Dopo aver chiamato logout(), è necessario effettuare nuovamente l'accesso tramite Chloros, Chloros (Browser) o Chloros CLI prima di utilizzare SDK.


Funzioni di utilità

process_folder(folder_path, **options)

Funzione di utilità su una riga per elaborare una cartella.

Parametri:

Parametro
Tipo
Predefinito
Descrizione

folder_path

str/Path

Obbligatorio

Percorso della cartella con le immagini

project_name

str

Generato automaticamente

Nome del progetto

camera

str

None

Modello fotocamera

indices

list

["NDVI"]

Indici da calcolare

vignette_correction

bool

True

Abilita correzione vignettatura

reflectance_calibration

bool

True

Abilita calibrazione riflettanza

export_format

str

"TIFF (16 bit)"

Formato di output

mode

str

"parallel"

Modalità di elaborazione

progress_callback

callable

None

Callback di avanzamento

Restituisce: dict - Risultati dell'elaborazioneEsempio:


Supporto dei gestori di contesto

SDK supporta i gestori di contesto per la pulizia automatica:


Esempi completi

circle-info

Utenti di Linux: Tutti gli esempi riportati di seguito utilizzano percorsi Windows. Sostituire i percorsi C:\\... con i propri percorsi Linux (ad es., /home/user/... o ~/...). Tutte le funzionalità di SDK sono identiche su tutte le piattaforme.

Esempio 1: Elaborazione di base

Elaborazione di una cartella con impostazioni predefinite:


Esempio 2: Flusso di lavoro personalizzato

Controllo completo sulla pipeline di elaborazione:


Esempio 3: Elaborazione in batch di più cartelle

Elaborazione di più set di dati di volo:


Esempio 4: Integrazione nella pipeline di ricerca

Integrazione di Chloros con l'analisi dei dati:


Esempio 5: Monitoraggio personalizzato dello stato di avanzamento

Monitoraggio avanzato dello stato di avanzamento con registrazione:


Esempio 6: Gestione degli errori

Gestione degli errori robusta per l'uso in produzione:


Esempio 7: Gestione dell'account e disconnessione

Gestione delle credenziali a livello di programmazione:


Esempio 8: Strumento da riga di comando

Creazione di uno strumento CLI personalizzato con SDK:

Utilizzo:


Gestione delle eccezioni

SDK fornisce classi di eccezioni specifiche per diversi tipi di errore:

Gerarchia delle eccezioni

Esempi di eccezioni


Argomenti avanzati

Configurazione personalizzata del backend

Utilizza una posizione o una configurazione personalizzata del backend:

Elaborazione non bloccante

Avvia l'elaborazione e prosegui con altre attività:

Gestione della memoria

Per set di dati di grandi dimensioni, elaborare in batch:


Risoluzione dei problemi

Il backend non si avvia

Problema: SDK non riesce ad avviare il backendSoluzioni:

  1. Verificare che Chloros sia installato:

  1. Controllare il firewall (Windows) o la disponibilità della porta (Linux: lsof -i :5000)

  2. Provare il percorso backend manuale:


Licenza non rilevataProblema: SDK segnala la mancanza della licenzaSoluzioni:

  1. Aprire Chloros, Chloros (Browser) o Chloros CLI ed effettuare l'accesso.

  2. Verificare che la licenza sia memorizzata nella cache:

  1. In caso di problemi con le credenziali, cancellare le credenziali memorizzate nella cache ed effettuare nuovamente l'accesso:

  1. Contattare l'assistenza: info@mapir.camera


Errori di importazioneProblema: ModuleNotFoundError: No module named 'chloros_sdk'Soluzioni:


Timeout di elaborazioneProblema: Timeout di elaborazioneSoluzioni:

  1. Aumentare il timeout:

  1. Elaborare batch più piccoli

  2. Verificare lo spazio disponibile su disco

  3. Monitorare le risorse di sistema


Porta già in usoProblema: Porta backend 5000 occupataSoluzioni:

Oppure individuare e chiudere il processo in conflitto:


Suggerimenti per le prestazioni

Ottimizzare la velocità di elaborazione

  1. Utilizzare la modalità parallela (richiede Chloros+)

  1. Ridurre la risoluzione di output (se accettabile)

  1. Disattivare gli indici non necessari

  1. Eseguire l'elaborazione su SSD (non su HDD)***

Ottimizzazione della memoria

Per set di dati di grandi dimensioni:


Elaborazione in background

Liberare Python per altre attività:


Esempi di integrazione

Integrazione con Django

Flask API

Jupyter Notebook


Domande frequenti

D: SDK richiede una connessione a Internet?

R: Solo per l'attivazione iniziale della licenza. Dopo aver effettuato l'accesso tramite Chloros, Chloros (Browser) o Chloros CLI, la licenza viene memorizzata nella cache locale e funziona offline per 30 giorni.***

D: Posso utilizzare SDK su un server senza interfaccia grafica?R: Sì! SDK funziona in modalità headless sia su server Windows che Linux.Linux (consigliato per modalità headless):

  • Installazione tramite pacchetto .deb

  • Attivazione della licenza: chloros-cli login user@example.com 'password'

Server Windows:

  • Server Windows 2016 o versioni successive

  • Chloros installato (una tantum)

  • Licenza attivata tramite CLI o su qualsiasi macchina


D: Qual è la differenza tra Desktop, CLI e SDK?

Funzionalità
Interfaccia grafica Desktop
Riga di comando CLI
Python SDK

Interfaccia

Point-and-click

Comandi

Python API

Ideale per

Lavoro visivo

Scripting

Integrazione

Automazione

Limitata

Buona

Eccellente

Flessibilità

Base

Buona

Massima

Licenza

Chloros+

Chloros+

Chloros+

D: Posso distribuire app create con SDK?R: Il codice SDK può essere integrato nelle tue applicazioni, ma:

  • Gli utenti finali devono avere Chloros installato

  • Gli utenti finali devono disporre di licenze Chloros+ attive

  • La distribuzione commerciale richiede una licenza OEM

Contatta info@mapir.camera per richieste relative alle licenze OEM.


D: Come si aggiorna SDK?


D: Dove vengono salvate le immagini elaborate?

Per impostazione predefinita, nel percorso del progetto:


D: Posso elaborare immagini da script Python in esecuzione a intervalli regolari?R: Sì! Utilizza lo scheduler del tuo sistema operativo con gli script Python:

Windows: Pianifica tramite Task Scheduler per l'esecuzione giornaliera.Linux: Pianifica tramite cron:


D: SDK supporta async/await?R: La versione attuale è sincrona. Per un comportamento asincrono, usa wait=False o esegui in un thread separato:


D: Come faccio a passare da un account Chloros+ all'altro?R: Utilizza il metodo logout() per cancellare le credenziali memorizzate nella cache, quindi effettua nuovamente l'accesso con il nuovo account:

Dopo aver effettuato il logout, autenticarsi con il nuovo account tramite l'interfaccia grafica, il browser o CLI prima di utilizzare nuovamente SDK.


Ottenere assistenza

Documentazione

  • Riferimento API: Questa pagina

Canali di assistenza

Codice di esempio

Tutti gli esempi qui elencati sono stati testati e sono pronti per la produzione. Copiateli e adattateli al vostro caso d'uso.


SDK richiede un abbonamento Chloros+ attivo. È vietato l'uso, la distribuzione o la modifica non autorizzati.

Ultimo aggiornamento