Metadata-Version: 2.4
Name: lyrasense
Version: 0.0.6
Summary: The Python SDK for the Lyrasense EO platform - Geospatial mapping, tiling, and computation services
Project-URL: Homepage, https://www.lyrasense.com/
Project-URL: Documentation, https://github.com/lyrasense/lyrasense-python-sdk/tree/main/docs
Project-URL: Repository, https://github.com/lyrasense/lyrasense-python-sdk
Project-URL: Issues, https://github.com/lyrasense/lyrasense-python-sdk/issues
Author-email: Dimitrios Kirtsios <dimkirts@gmail.com>
License: MIT
License-File: LICENSE
Keywords: earth-engine,earth-observation,geospatial,gis,mapping
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Provides-Extra: all
Requires-Dist: earthengine-api>=0.1.384; extra == 'all'
Provides-Extra: dev
Requires-Dist: black>=24.0.0; extra == 'dev'
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
Requires-Dist: pyright>=1.1.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Requires-Dist: twine>=5.0.0; extra == 'dev'
Provides-Extra: ee
Requires-Dist: earthengine-api>=0.1.384; extra == 'ee'
Description-Content-Type: text/markdown

# Lyrasense Python SDK

The official Python SDK for the Lyrasense Earth Observation (EO) platform, providing comprehensive tools for geospatial mapping, tiling, and computation services.

## Features

### lyrasense_map - Interactive Mapping SDK

A purpose-built geospatial mapping library with seamless Earth Engine integration:

- 🗺️ **Interactive Maps** - Leaflet-style API for creating beautiful, interactive maps
- 🌍 **Earth Engine Integration** - Direct integration with Google Earth Engine
- 🎨 **Multiple Basemaps** - Satellite, terrain, OpenStreetMap, and custom styles
- 📍 **Markers & Popups** - Add interactive markers with custom colors and popups
- 📊 **Legends** - Built-in and custom legends for data visualization
- ↔️ **Split Maps** - Side-by-side comparison with synchronized panning
- 🔥 **Heatmaps** - Visualize point data with customizable heatmap layers
- ⏱️ **Time Series** - Animate temporal datasets
- 📐 **GeoJSON Support** - Import and visualize GeoJSON data

### Future Components (Coming Soon)

- **tiling** - High-performance tiling server access
- **compute** - Geospatial computation framework (OpenEO/GEE-like)
- **catalog** - Data catalog discovery and search

## Installation

```bash
# Basic installation (zero dependencies)
pip install lyrasense

# With Earth Engine support
pip install lyrasense[ee]

# All optional dependencies
pip install lyrasense[all]
```

## Quick Start

```python
from lyrasense import lyrasense_map as lm

# Create an interactive map
m = lm.Map(center={"lat": 40, "lng": -100}, zoom=4)

# Add markers
m.add_marker({"lat": 40.7128, "lng": -74.0060}, popup="New York")

# Display in Jupyter notebook
display(m)
```

### With Earth Engine

```python
from lyrasense import lyrasense_map as lm
import ee

ee.Initialize()

# Create map with Earth Engine layer
m = lm.Map(center={"lat": 37.7749, "lng": -122.4194}, zoom=10)
elevation = ee.Image("USGS/SRTMGL1_003")
m.add_ee_layer(elevation, {"min": 0, "max": 4000, "palette": ["blue", "green", "red"]}, "Elevation")

display(m)
```

### Split Map Comparison

```python
from lyrasense import lyrasense_map as lm

# Create side-by-side comparison
split_map = lm.SplitMap(
    center={"lat": 37.7749, "lng": -122.4194},
    zoom=10,
    sync_panning=True
)

display(split_map)
```

### Heatmaps

```python
from lyrasense import lyrasense_map as lm

m = lm.Map(center={"lat": 37.0, "lng": -120.0}, zoom=6)

# Add heatmap from GeoJSON point data
geojson_data = {
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {"type": "Point", "coordinates": [-122.4194, 37.7749]},
            "properties": {"value": 10}
        }
    ]
}

m.add_heatmap_layer(geojson_data, name="Data Points", weight_property="value")
display(m)
```

## Documentation

- [Quick Start Guide](https://github.com/lyrasense/lyrasense-python-sdk/blob/main/docs/lyrasense_map/quickstart.md)
- [Examples](https://github.com/lyrasense/lyrasense-python-sdk/blob/main/docs/lyrasense_map/examples.md)
- [API Reference](https://github.com/lyrasense/lyrasense-python-sdk/blob/main/docs/lyrasense_map/api.md)

## Requirements

- Python >= 3.11
- Zero core dependencies (optional: earthengine-api for Earth Engine integration)

## Use Cases

- **Earth Observation Analysis** - Visualize and analyze satellite imagery
- **Geospatial Data Science** - Create interactive maps in Jupyter notebooks
- **Environmental Monitoring** - Track changes over time with split maps
- **Urban Planning** - Visualize spatial data with markers and heatmaps
- **Scientific Research** - Integrate with Earth Engine for large-scale analysis

## License

MIT License - see [LICENSE](https://github.com/lyrasense/lyrasense-python-sdk/blob/main/LICENSE) for details.

## Links

- **Homepage**: https://www.lyrasense.com/
- **Documentation**: https://github.com/lyrasense/lyrasense-python-sdk/tree/main/docs
- **Repository**: https://github.com/lyrasense/lyrasense-python-sdk
- **Issues**: https://github.com/lyrasense/lyrasense-python-sdk/issues

## Support

For questions and support, please open an issue on GitHub or contact us at info@lyrasense.com.
