Official Python SDK for MAPIR Chloros image processing
Project description
Chloros Python SDK
Official Python SDK for MAPIR Chloros image processing software. Provides programmatic access to the Chloros API for automation, integration, and custom workflows.
🚀 Quick Start
from chloros_sdk import ChlorosLocal
from pathlib import Path
# Initialize SDK (auto-starts backend)
chloros = ChlorosLocal()
# Create project and import images
chloros.create_project("MyProject", camera="Survey3N_RGN")
chloros.import_images(str(Path.home() / "DroneImages" / "Flight001"))
# Configure settings
chloros.configure(
vignette_correction=True,
reflectance_calibration=True,
indices=["NDVI", "NDRE", "GNDVI"]
)
# Process images
chloros.process(mode="parallel", wait=True)
One-Line Processing
from chloros_sdk import process_folder
from pathlib import Path
images_dir = Path.home() / "DroneImages" / "Flight001"
results = process_folder(str(images_dir), indices=["NDVI", "NDRE"])
📋 Requirements
| Requirement | Details |
|---|---|
| Chloros Desktop | Must be installed locally |
| License | Chloros+ required (paid plan) |
| Operating System | Windows 10/11 or Linux (64-bit) |
| Python | Python 3.7 or higher |
| Memory | 8GB RAM minimum (16GB recommended) |
⚠️ License Requirement: The Chloros SDK requires an active Chloros+ subscription. Standard (free) plans do not have API access. Upgrade at https://cloud.mapir.camera/pricing
📥 Installation
From PyPI (Recommended)
pip install chloros-sdk
From Source
git clone https://github.com/mapircamera/chloros-sdk.git
cd chloros-sdk
pip install -e .
With Progress Monitoring
pip install chloros-sdk[progress]
Platform-Specific Notes
Linux:
- Requires
exiftool:sudo apt install libimage-exiftool-perl - Data stored in
~/.local/share/chloros(XDG compliant) - Config stored in
~/.config/chloros
Windows:
- ExifTool bundled with Chloros Desktop
- Data stored in
%LOCALAPPDATA%\Chloros
📖 Documentation
Complete documentation available at: https://docs.chloros.com/api-python-sdk
🎯 Use Cases
Research & Academia
# Integrate Chloros into analysis pipelines
import chloros_sdk
import pandas as pd
chloros = chloros_sdk.ChlorosLocal()
results = []
for survey in field_surveys:
chloros.process(survey.images)
ndvi_data = chloros.get_index_values("NDVI")
results.append({'chloros_ndvi': ndvi_data, 'biomass': survey.biomass})
df = pd.DataFrame(results)
correlation = df.corr()
Batch Processing
# Process multiple flights automatically
from chloros_sdk import ChlorosLocal
chloros = ChlorosLocal()
for flight in flight_database:
chloros.create_project(flight.name)
chloros.import_images(flight.folder)
chloros.configure(indices=flight.requested_indices)
chloros.process()
Custom Workflows
# Advanced progress monitoring
from pathlib import Path
def progress_callback(progress, message):
print(f"[{progress}%] {message}")
chloros = ChlorosLocal()
chloros.create_project("CustomWorkflow")
chloros.import_images(str(Path.home() / "Data"))
chloros.configure(indices=["NDVI", "NDRE"])
chloros.process(progress_callback=progress_callback)
🔑 License Activation
The SDK uses the same license as Chloros Desktop:
- Open Chloros Desktop GUI
- Login with your Chloros+ credentials (one-time)
- SDK automatically uses cached license
- License persists across reboots (30-day offline support)
🛠️ API Reference
ChlorosLocal Class
Main SDK class for local Chloros processing.
chloros = ChlorosLocal(
api_url="http://localhost:5000", # Backend URL
auto_start_backend=True, # Auto-start if not running
backend_exe=None, # Auto-detect backend path
timeout=30 # Request timeout (seconds)
)
Methods
create_project(project_name, camera=None)
Create a new Chloros project.
import_images(folder_path, recursive=False)
Import images from a folder.
configure(**settings)
Configure processing settings.
process(mode="parallel", wait=True, progress_callback=None)
Start processing images.
get_config()
Get current project configuration.
get_status()
Get backend status.
🔐 Security
- Proprietary Software: Licensed under MAPIR proprietary license
- Local Processing: All processing happens locally (localhost API)
- License Enforcement: Requires active Chloros+ subscription
- No Data Transmission: Images never leave your computer
💡 Examples
See complete examples in the documentation.
🐛 Support
- Email: info@mapir.camera
- Website: https://www.mapir.camera
- Documentation: https://docs.chloros.com
- Pricing: https://cloud.mapir.camera/pricing
📄 License
Copyright (c) 2026 MAPIR Inc. All rights reserved.
This is proprietary software requiring an active Chloros+ subscription. Unauthorized use, distribution, or modification is prohibited.
🔄 Version History
v1.0.4 (2025)
- Added Linux support
- Cross-platform path handling
- XDG-compliant directories on Linux
v1.0.0 (2025)
- Initial release
- Full API coverage for local processing
- Auto-backend startup
- Progress monitoring support
- Context manager support
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chloros_sdk-1.1.0.tar.gz.
File metadata
- Download URL: chloros_sdk-1.1.0.tar.gz
- Upload date:
- Size: 24.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04e9785196e7ca33a10f192034deca93ca70bf708195bdfd5e4a5cdb6917d681
|
|
| MD5 |
19e37a99808c410f1232c406e97e90de
|
|
| BLAKE2b-256 |
31f6713a0f27f7273e82ae016ebda953dcfd77c7dbd80d608d4b82095f98146e
|
File details
Details for the file chloros_sdk-1.1.0-py3-none-any.whl.
File metadata
- Download URL: chloros_sdk-1.1.0-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78c1ddcaa65e8fce0aa68e5e58167b68273d9ec8cecd0f11a9395ae75d5bd998
|
|
| MD5 |
505dbcd17e3bae55d45b312e0af25a57
|
|
| BLAKE2b-256 |
8bbc591f12a306e2bb92d33aba049cf07d45cedb238958ef794bd2f554959cf0
|