API: Python SDK

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 applicazioni Python e le pipeline di ricerca.

Caratteristiche principali

  • 🐍 Python nativo - API pulito e Pythonic per l'elaborazione delle immagini

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

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

  • 🔗 Integrazione - Incorporare Chloros nelle applicazioni Python esistenti

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

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

Requisiti

Requisito
Dettagli

Chloros Desktop

Deve essere installato localmente

Sistema operativo

Windows 10/11 (64 bit)

Python

Python 3.7 o superiore

Memoria

Minimo 8 GB di RAM (consigliati 16 GB)

Internet

Necessario per l'attivazione della licenza

circle-info

Requisiti di licenza: Python SDK richiede un abbonamento a pagamento Chloros+ per l'accesso a API. I piani standard (gratuiti) non consentono l'accesso a API/SDK. Visita https://cloud.mapir.camera/pricingarrow-up-right per effettuare l'aggiornamento.

Avvio rapido

Installazione

Installare tramite pip:

circle-info

Configurazione iniziale: prima di utilizzare SDK, attiva la licenza Chloros+ aprendo Chloros, Chloros (Browser) o Chloros CLI e accedendo con le proprie credenziali. Questa operazione deve essere eseguita una sola volta.

Utilizzo di base

Elaborare una cartella con poche righe:

Controllo completo

Per flussi di lavoro avanzati:


Guida all'installazione

Prerequisiti

Prima di installare SDK, assicurarsi di avere:

  1. Chloros Desktop installato (download)

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

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

Installazione tramite pip

Installazione standard:

Con supporto per il monitoraggio dei progressi:

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 la GUI o CLI:

  1. Aprire Chloros o Chloros (Browser)ed effettuare il login nella scheda Utente . Oppure, apriCLI.

  2. Inserisci le tue credenziali Chloros+ ed effettua il login

  3. La licenza viene memorizzata nella cache locale (persiste anche dopo il riavvio)

Configurazione una tantum: dopo aver effettuato l'accesso tramite la GUI o CLI, SDK utilizza automaticamente la licenza memorizzata nella cache. Non è necessaria alcuna autenticazione aggiuntiva!

circle-info

Logout: gli utenti SDK possono cancellare programmaticamente le credenziali memorizzate nella cache utilizzando il metodo logout(). Vedere metodo logout() nella documentazione di riferimento API.

Test di connessione

Verificare che SDK sia in grado di connettersi a Chloros:


Riferimento API

Classe ChlorosLocal

Classe principale per l'elaborazione delle immagini locali Chloros.

Costruttore

Parametri:

Parametro
Tipo
Impostazione predefinita
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:


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 della telecamera (ad es. "Survey3N_RGN", "Survey3W_OCN")

Restituisce: dict - Risposta alla 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 con le immagini

recursive

bool

No

Cerca sottocartelle (impostazione predefinita: False)

Restituisce: dict - Risultati dell'importazione con conteggio dei fileEsempio:


configure(**settings)

Configura le impostazioni di elaborazione.

Parametri:

Parametro
Tipo
Predefinito
Descrizione

debayer

str

"Alta qualità (più veloce)"

Metodo Debayer

vignette_correction

bool

True

Abilita correzione vignetta

reflectance_calibration

bool

True

Abilita calibrazione 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 "seriale"

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-info

Modalità parallela: richiede la licenza Chloros+. Si adatta automaticamente ai core della CPU (fino a 16 worker).

Esempio:


get_config()

Ottieni la configurazione corrente del progetto.

Restituisce: dict - Configurazione corrente del progettoEsempio:


get_status()

Ottiene le informazioni sullo stato del backend.

Restituisce: dict - Stato del backendEsempio:


shutdown_backend()

Spegne il backend (se avviato da SDK).

Esempio:


logout()

Cancella le credenziali memorizzate nella cache dal sistema locale.

Descrizione:

Esegue il logout in modo programmatico rimuovendo le credenziali di autenticazione memorizzate nella cache. Ciò è utile per:

  • Passare da un account Chloros+ a un altro

  • Cancellare le credenziali in ambienti automatizzati

  • Motivi di sicurezza (ad esempio, rimuovere le credenziali prima della disinstallazione)

Restituisce: dict - Risultato dell'operazione di disconnessioneEsempio:

circle-info

Riautenticazione richiesta: Dopo aver chiamato logout(), è necessario effettuare nuovamente il login 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 della 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

Richiamo di avanzamento

Restituisce: dict - Risultati dell'elaborazioneEsempio:


Supporto Context Manager

SDK supporta i context manager per la pulizia automatica:


Esempi completi

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 batch di più cartelle

Elaborazione di più set di dati di volo:


Esempio 4: integrazione della 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 account e logout

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 backend personalizzata

Utilizzare una posizione o una configurazione backend personalizzata:

Elaborazione non bloccante

Avviare l'elaborazione e continuare 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 backend.Soluzioni:

  1. Verificare che Chloros Desktop sia installato:

  1. Verificare che Windows Firewall non stia bloccando

  2. Provare il percorso manuale del backend:


Licenza non rilevataProblema: SDK avvisa della mancanza della licenzaSoluzioni:

  1. Aprire Chloros, Chloros (browser) o Chloros CLI ed effettuare il login.

  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 il login:

  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. Controllare 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 sulle prestazioni

Ottimizzare la velocità di elaborazione

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

  1. Ridurre la risoluzione di output (se accettabile)

  1. Disattiva gli indici non necessari

  1. Elabora 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 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 GUI?R: Sì! Requisiti:

  • Windows Server 2016 o versioni successive

  • Chloros installato (una sola volta)

  • Licenza attivata su qualsiasi macchina (licenza memorizzata nella cache copiata sul server)


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

Funzionalità
GUI Desktop
CLI Riga di comando
Python SDK

Interfaccia

Puntamento e clic

Comando

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 vostre applicazioni, ma:

  • Gli utenti finali devono avere installato Chloros

  • Gli utenti finali devono disporre di licenze Chloros+ attive

  • La distribuzione commerciale richiede una licenza OEM

Contattare 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 secondo una pianificazione?R: Sì! Utilizza Windows Task Scheduler con script Python:

Pianifica tramite Task Scheduler l'esecuzione giornaliera.


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


D: Come posso 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 GUI, browser o CLI prima di utilizzare nuovamente SDK.


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 attivo a Chloros+. È vietato l'uso, la distribuzione o la modifica non autorizzati.

Ultimo aggiornamento