Metadata-Version: 2.4
Name: LandsatL2C2
Version: 2.0.0
Summary: Landsat Level 2 Collection 2 Search & Download Utility
Author-email: "Gregory H. Halverson" <gregory.h.halverson@jpl.nasa.gov>
Project-URL: Homepage, https://github.com/JPL-Evapotranspiration-Algorithms/LandsatL2C2
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3
Requires-Dist: colored-logging
Requires-Dist: geopandas
Requires-Dist: matplotlib
Requires-Dist: pandas
Requires-Dist: planetary-computer
Requires-Dist: pyproj
Requires-Dist: pystac-client
Requires-Dist: python-dateutil
Requires-Dist: rasterio
Requires-Dist: rasters
Requires-Dist: requests
Requires-Dist: shapely
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: jupyter; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# LandsatL2C2
Landsat Level 2 Collection 2 Search & Download Utility

## New Backend System! 🚀

LandsatL2C2 now supports multiple backends for accessing Landsat data:

- **S3 Backend** (Recommended): Anonymous access to cloud-optimized data, no credentials required
- **M2M Backend** (Legacy): Traditional USGS API access with full download functionality  
- **Auto Backend**: Intelligent selection between S3 and M2M

## Quick Start

### S3 Backend (No Credentials Needed)
```python
from LandsatL2C2 import LandsatL2C2
from datetime import date
from shapely.geometry import Point

# Create client with S3 backend
landsat = LandsatL2C2(backend="s3")

# Search for scenes
scenes = landsat.scene_search(
    start=date(2023, 6, 1),
    end=date(2023, 6, 30),
    target_geometry=Point(-118.2437, 34.0522),  # Los Angeles
    cloud_percent_max=20
)

# Load data directly from cloud
granule = landsat.retrieve_granule(
    dataset=scenes.iloc[0]['dataset'],
    date_UTC=scenes.iloc[0]['date_UTC'],
    granule_ID=scenes.iloc[0]['display_ID'],
    entity_ID=scenes.iloc[0]['entity_ID']
)

# Access bands without downloading
red_band = granule.DN(4)  # Stream from S3
```

### Installation

Base installation:
```bash
pip install LandsatL2C2
```

```bash
pip install LandsatL2C2
```

S3 backend dependencies are included by default.

See [BACKEND_MIGRATION.md](BACKEND_MIGRATION.md) for detailed migration guide and examples.
