API: Python SDK

Chloros Python SDK zapewnia programowy dostęp do silnika przetwarzania obrazów Chloros, umożliwiając automatyzację, tworzenie niestandardowych przepływów pracy oraz płynną integrację z aplikacjami Python i procesami badawczymi.

Kluczowe funkcje

  • 🐍 Natywny Python — przejrzysty, napisany w stylu Pythona kod API do przetwarzania obrazów

  • 🔧 Pełny dostęp do API — całkowita kontrola nad przetwarzaniem Chloros

  • 🚀 Automatyzacja — Twórz niestandardowe przepływy pracy przetwarzania wsadowego

  • 🔗 Integracja — Osadzaj Chloros w istniejących aplikacjach Python

  • 📊 Gotowość do badań — Idealne rozwiązanie dla naukowych procesów analitycznych

  • Przetwarzanie równoległe — Skalowalność w zależności od liczby rdzeni procesora (Chloros+)

Wymagania

Wymaganie
Szczegóły

Zainstalowany Chloros

Windows: Instalator na komputery stacjonarne; Linux: pakiet .deb

System operacyjny

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

Python

Python 3.7 lub nowszy

Pamięć

Minimum 8 GB pamięci RAM (zalecane 16 GB)

Internet

Wymagany do aktywacji licencji

circle-exclamation

Szybki start

Instalacja

Zainstaluj za pomocą pip:

circle-info

Pierwsza konfiguracja: Przed rozpoczęciem korzystania z SDK należy aktywować licencję Chloros+ poprzez otwarcie Chloros, Chloros (przeglądarka) lub Chloros CLI i zaloguj się przy użyciu swoich danych uwierzytelniających. Wystarczy to zrobić tylko raz. W Linux (bez GUI) użyj: chloros-cli login user@example.com 'password'

Podstawowe użycie

Przetwarzaj folder za pomocą zaledwie kilku wierszy:

circle-info

Ścieżki międzyplatformowe: Przykłady kodu na tej stronie wykorzystują ścieżki w stylu Windows (np. C:\\DroneImages\\Flight001). W systemie Linux należy zamiast tego używać ścieżek Linux (np. /home/user/drone_images/flight001 lub ~/drone_images/flight001). SDK działa identycznie na obu platformach.

Pełna kontrola

Dla zaawansowanych procesów:


Przewodnik instalacji

Wymagania wstępne

Przed instalacją SDK upewnij się, że masz:

  1. Zainstalowany Chloros — Windows: Instalator na komputer stacjonarny (pobierz); Linux: pakiet .deb (Instalacja)

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

  3. Aktywna licencja Chloros+ (aktualizacjaarrow-up-right)

Instalacja za pomocą pip

Instalacja standardowa:

Z obsługą monitorowania postępu:

Instalacja deweloperska:

Sprawdź instalację

Sprawdź, czy SDK jest poprawnie zainstalowany:


Pierwsza konfiguracja

Aktywacja licencji

SDK korzysta z tej samej licencji co Chloros, Chloros (przeglądarka) oraz Chloros CLI. Aktywuj raz za pomocą GUI lub CLI:Windows:OtwórzChloros lub Chloros (przeglądarka) i zaloguj się w zakładce Użytkownik lub skorzystaj z CLI.Linux: Użyj CLI (brak dostępnego GUI):

Licencja jest buforowana lokalnie i pozostaje aktywna po ponownym uruchomieniu systemu.

circle-check
circle-info

Wylogowanie: Użytkownicy SDK mogą programowo wyczyścić dane uwierzytelniające zapisane w pamięci podręcznej, korzystając z metody XPROTX000066X. Zobacz metodę logout() w dokumentacji API.

Test połączenia

Sprawdź, czy SDK może połączyć się z Chloros:


Dokumentacja API

Klasa ChlorosLocal

Główna klasa do lokalnego przetwarzania obrazów Chloros.

Konstruktor

Parametry:

Parametr
Typ
Wartość domyślna
Opis

api_url

str

"http://localhost:5000"

URL lokalnego backendu Chloros

auto_start_backend

bool

True

Automatycznie uruchom backend w razie potrzeby

backend_exe

str

None (autodetekcja)

Ścieżka do pliku wykonywalnego backendu

timeout

int

30

Limit czasu żądania w sekundach

backend_startup_timeout

int

60

Limit czasu uruchomienia backendu (sekundy)

Przykłady:

circle-info

Automatyczne wykrywanie platformy: SDK automatycznie próbuje znaleźć właściwą ścieżkę do backendu dla danej platformy:

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

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

  • Linux (ręcznie): /opt/mapir/chloros/backend/chloros-backend


Metody

create_project(project_name, camera=None)

Utwórz nowy projekt Chloros.

Parametry:

Parametr
Typ
Wymagany
Opis

project_name

str

Tak

Nazwa projektu

camera

str

Nie

Szablon kamery (np. „Survey3N_RGN”, „Survey3W_OCN”)

Zwraca: dict — Odpowiedź dotycząca utworzenia projektuPrzykład:


import_images(folder_path, recursive=False)

Importuj obrazy z folderu.

Parametry:

Parametr
Typ
Wymagane
Opis

folder_path

str/Path

Tak

Ścieżka do folderu z obrazami

recursive

bool

Nie

Przeszukaj podfoldery (domyślnie: False)

Zwraca: dict - Wyniki importu wraz z liczbą plikówPrzykład:


configure(**settings)

Konfiguracja ustawień przetwarzania.

Parametry:

Parametr
Typ
Domyślnie
Opis

debayer

str

„Standard (szybki, średnia jakość)”

Metoda debayera

vignette_correction

bool

True

Włącz korekcję winietowania

reflectance_calibration

bool

True

Włącz kalibrację odbicia

indices

lista

None

Wskaźniki wegetacji do obliczenia

export_format

str

„TIFF (16-bit)”

Format wyjściowy

ppk

bool

False

Włącz korekty PPK

custom_settings

dict

None

Zaawansowane ustawienia niestandardowe

Formaty eksportu:

  • "TIFF (16-bit)" - Zalecany do GIS/fotogrametrii

  • "TIFF (32-bit, Percent)" - Analiza naukowa

  • "PNG (8-bit)" - Kontrola wizualna

  • "JPG (8-bit)" - Skompresowany wynik

**Dostępne indeksy:**NDVI, NDRE, GNDVI, OSAVI, CIG, EVI, SAVI, MSAVI, MTVI2 i inne.Przykład:


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

Przetwarzaj obrazy projektu.

Parametry:

Parametr
Typ
Domyślne
Opis

mode

str

"parallel"

Tryb przetwarzania: „parallel” lub „serial”

wait

bool

True

Czekaj na zakończenie

progress_callback

wywoływalny

None

Funkcja wywołania zwrotnego postępu (progress, msg)

poll_interval

float

2.0

Interwał odpytywania o postęp (sekundy)

Zwraca: dict - Wyniki przetwarzania

circle-exclamation

Przykład:


get_config()

Pobierz bieżącą konfigurację projektu.

Zwraca: dict - Bieżąca konfiguracja projektuPrzykład:


get_status()

Pobierz informacje o stanie zaplecza, w tym postęp przetwarzania dla poszczególnych wątków.

Zwraca: dict — stan zaplecza o następującej strukturze:

Przykład:


shutdown_backend()

Wyłącz backend (jeśli został uruchomiony przez SDK).

Przykład:


logout()

Wyczyść buforowane poświadczenia z systemu lokalnego.

Opis:

Programowo wylogowuje użytkownika poprzez usunięcie buforowanych danych uwierzytelniających. Jest to przydatne w następujących sytuacjach:

  • Przełączanie się między różnymi kontami Chloros+

  • Czyszczenie danych uwierzytelniających w środowiskach zautomatyzowanych

  • Ze względów bezpieczeństwa (np. usuwanie danych uwierzytelniających przed odinstalowaniem)

Zwraca: dict - Wynik operacji wylogowaniaPrzykład:

circle-info

Wymagane ponowne uwierzytelnienie: Po wywołaniu logout() należy ponownie zalogować się za pomocą Chloros, Chloros (przeglądarka)lub Chloros CLI przed użyciem SDK.


Funkcje pomocnicze

process_folder(folder_path, **options)

Jednowierszowa funkcja pomocnicza do przetwarzania folderu.

Parametry:

Parametr
Typ
Domyślna wartość
Opis

folder_path

str/Path

Wymagane

Ścieżka do folderu z obrazami

project_name

str

Generowane automatycznie

Nazwa projektu

camera

str

None

Szablon aparatu

indices

lista

["NDVI"]

Indeksy do obliczenia

vignette_correction

bool

True

Włącz korekcję winietowania

reflectance_calibration

bool

True

Włącz kalibrację odbicia

export_format

str

„TIFF (16-bit)”

Format wyjściowy

mode

str

"parallel"

Tryb przetwarzania

progress_callback

wywoływalny

None

Wywołanie zwrotne postępu

Zwraca: dict - Wyniki przetwarzaniaPrzykład:


Obsługa menedżerów kontekstu

SDK obsługuje menedżery kontekstu do automatycznego czyszczenia:


Pełne przykłady

circle-info

Użytkownicy Linux: Wszystkie poniższe przykłady wykorzystują ścieżki Windows. Zastąp ścieżki C:\\... swoimi ścieżkami Linux (np. /home/user/... lub ~/...). Wszystkie funkcje SDK są identyczne na wszystkich platformach.

Przykład 1: Podstawowe przetwarzanie

Przetwarzanie folderu przy użyciu ustawień domyślnych:


Przykład 2: Niestandardowy przepływ pracy

Pełna kontrola nad potokiem przetwarzania:


Przykład 3: Przetwarzanie wsadowe wielu folderów

Przetwarzanie wielu zestawów danych lotniczych:


Przykład 4: Integracja z procesem badawczym

Integracja Chloros z analizą danych:


Przykład 5: Niestandardowe monitorowanie postępów

Zaawansowane śledzenie postępów z rejestrowaniem:


Przykład 6: Obsługa błędów

Solidna obsługa błędów do użytku produkcyjnego:


Przykład 7: Zarządzanie kontem i wylogowanie

Zarządzaj danymi uwierzytelniającymi programowo:


Przykład 8: Narzędzie wiersza poleceń

Stwórz niestandardowe narzędzie CLI za pomocą SDK:

Sposób użycia:


Obsługa wyjątków

SDK udostępnia konkretne klasy wyjątków dla różnych typów błędów:

Hierarchia wyjątków

Przykłady wyjątków


Zagadnienia zaawansowane

Niestandardowa konfiguracja zaplecza

Użyj niestandardowej lokalizacji lub konfiguracji zaplecza:

Przetwarzanie nieblokujące

Rozpocznij przetwarzanie i kontynuuj inne zadania:

Zarządzanie pamięcią

W przypadku dużych zbiorów danych przetwarzaj je partiami:


Rozwiązywanie problemów

Backend się nie uruchamia

Problem: SDK nie uruchamia backenduRozwiązania:

  1. Sprawdź, czy Chloros jest zainstalowany:

  1. Sprawdź zaporę sieciową (Windows) lub dostępność portu (Linux: lsof -i :5000)

  2. Spróbuj ręcznie podać ścieżkę do serwera zaplecza:


Nie wykryto licencjiProblem: SDK wyświetla ostrzeżenie o brakującej licencjiRozwiązania:

  1. Otwórz Chloros, Chloros (przeglądarka) lub Chloros CLI i zaloguj się.

  2. Sprawdź, czy licencja jest zapisana w pamięci podręcznej:

  1. Jeśli występują problemy z danymi uwierzytelniającymi, wyczyść dane uwierzytelniające z pamięci podręcznej i zaloguj się ponownie:

  1. Skontaktuj się z pomocą techniczną: info@mapir.camera


Błędy importuProblem: ModuleNotFoundError: No module named 'chloros_sdk'Rozwiązania:


Przekroczenie limitu czasu przetwarzaniaProblem: Przekroczenie limitu czasu przetwarzaniaRozwiązania:

  1. Zwiększ limit czasu:

  1. Przetwarzaj mniejsze partie

  2. Sprawdź dostępną przestrzeń dyskową

  3. Monitoruj zasoby systemowe


Port już używanyProblem: Port backendowy 5000 zajętyRozwiązania:

Lub znajdź i zamknij proces powodujący konflikt:


Wskazówki dotyczące wydajności

Optymalizacja szybkości przetwarzania

  1. Użyj trybu równoległego (wymaga Chloros+)

  1. Zmniejsz rozdzielczość wyjściową (jeśli to dopuszczalne)

  1. Wyłącz niepotrzebne indeksy

  1. Przetwarzaj na dysku SSD (nie na dysku HDD)***

Optymalizacja pamięci

W przypadku dużych zbiorów danych:


Przetwarzanie w tle

Zwolnij Python na inne zadania:


Przykłady integracji

Integracja z Django

Flask API

Jupyter Notebook


Często zadawane pytania

P: Czy SDK wymaga połączenia z Internetem?

O: Tylko do początkowej aktywacji licencji. Po zalogowaniu się przez Chloros, Chloros (przeglądarka) lub Chloros CLI licencja jest zapisywana lokalnie w pamięci podręcznej i działa w trybie offline przez 30 dni.***

P: Czy mogę używać SDK na serwerze bez GUI?Odp.: Tak! Licencja SDK działa w trybie bezinterfejsowym zarówno na serwerach Windows, jak i Linux.Linux (zalecane dla trybu bezinterfejsowego):

  • Zainstaluj za pomocą pakietu .deb

  • Aktywuj licencję: chloros-cli login user@example.com 'password'

Serwer Windows:

  • Serwer Windows 2016 lub nowszy

  • Zainstalowany Chloros (jednorazowo)

  • Licencja aktywowana za pomocą CLI lub na dowolnym komputerze


P: Jaka jest różnica między wersją Desktop, CLI i SDK?

Funkcja
Interfejs graficzny Desktop
Wiersz poleceń CLI
Python SDK

Interfejs

Wskazanie i kliknięcie

Polecenie

Python API

Najlepsze zastosowanie

Praca wizualna

Tworzenie skryptów

Integracja

Automatyzacja

Ograniczona

Dobra

Doskonała

Elastyczność

Podstawowa

Dobra

Maksymalna

Licencja

Chloros+

Chloros+

Chloros+

P: Czy mogę rozpowszechniać aplikacje stworzone przy użyciu SDK?Odp.: Kod SDK można zintegrować z aplikacjami, ale:

  • Użytkownicy końcowi muszą mieć zainstalowany Chloros

  • Użytkownicy końcowi muszą posiadać aktywne licencje Chloros+

  • Dystrybucja komercyjna wymaga licencji OEM

W sprawie zapytań dotyczących licencji OEM prosimy o kontakt z info@mapir.camera.


P: Jak zaktualizować SDK?


P: Gdzie zapisywane są przetworzone obrazy?

Domyślnie w ścieżce projektu:


P: Czy mogę przetwarzać obrazy ze skryptów Python uruchamianych zgodnie z harmonogramem?O: Tak! Użyj harmonogramu systemu operacyjnego ze skryptami Python:

Windows: Zaplanuj za pomocą Harmonogramu zadań, aby uruchamiał się codziennie.Linux: Zaplanuj za pomocą crona:


P: Czy SDK obsługuje async/await?O: Obecna wersja jest synchroniczna. Aby uzyskać zachowanie asynchroniczne, użyj wait=False lub uruchom w oddzielnym wątku:


P: Jak przełączać się między różnymi kontami Chloros+?O: Użyj metody logout(), aby wyczyścić buforowane dane uwierzytelniające, a następnie zaloguj się ponownie na nowe konto:

Po wylogowaniu uwierzytelnij się na nowym koncie za pomocą interfejsu graficznego, przeglądarki lub CLI przed ponownym użyciem SDK.


Pomoc

Dokumentacja

  • API Reference: Ta strona

Kanały wsparcia

Przykładowy kod

Wszystkie wymienione tutaj przykłady zostały przetestowane i są gotowe do użycia w środowisku produkcyjnym. Skopiuj je i dostosuj do swoich potrzeb.


SDK wymaga aktywnej subskrypcji Chloros+. Nieuprawnione użycie, dystrybucja lub modyfikacja są zabronione.

Last updated