Skip to main content

Unified satellite data analysis toolkit

Project description

SatDataKit Banner

SatDataKit

Unified satellite data analysis toolkit — one API for all Earth Observation formats.

License: MIT Python 3.9+ Formats


What is SatDataKit?

SatDataKit solves a real problem in the Earth Observation community: every satellite data format has its own API, forcing scientists to learn GDAL, NetCDF4, h5py, rasterio, and Sentinel-specific tools just to read a single image.

SatDataKit unifies all of that into one clean API:

Format Library needed without SatDataKit With SatDataKit
GeoTIFF rasterio + coordinate handling read("file.tif")
NetCDF xarray + netCDF4 + CF conventions read("file.nc")
HDF5 h5py + dataset discovery logic read("file.h5")
Sentinel SAFE zipfile + XML parsing + JP2 reader read("file.SAFE")

Built on the same stack NASA uses (xarray, rioxarray, rasterio, netCDF4, h5py) but with a unified abstraction layer that eliminates boilerplate.


Quick Start

from satdatakit import read, compute_index, Pipeline

# Read any format
ds = read("sentinel2.tif")  # GeoTIFF, NetCDF, HDF, SAFE

# Compute indices
ds = compute_index(ds, "NDVI")

# Pipeline
result = (
    Pipeline()
    .read("data.tif")
    .reproject("EPSG:4326")
    .resample(30)
    .compute_index("NDVI")
    .to_geotiff("output.tif")
)

---
## Installation

# Docker (recommended)
docker-compose up --build satdatakit

# Or Conda
conda env create -f environment.yml
conda activate satdatakit
pip install -e ".[dev]"

## Optional Extensions

SatDataKit core supports GeoTIFF, NetCDF, HDF5, and SAFE out of the box.

For large-scale processing, install optional extensions:

```bash
# Parallel processing with Dask
pip install satdatakit[dask]

# Cloud catalogs (STAC) + Zarr format
pip install satdatakit[cloud]

# Everything (production servers)
pip install satdatakit[full]

| Extension | Command                         | Use Case                                 |
| --------- | ------------------------------- | ---------------------------------------- |
| **Dask**  | `pip install satdatakit[dask]`  | 10+ files, lazy chunks, parallel compute |
| **STAC**  | `pip install satdatakit[stac]`  | Search cloud catalogs (AWS, Copernicus)  |
| **Zarr**  | `pip install satdatakit[zarr]`  | Cloud-native format, chunked storage     |
| **Cloud** | `pip install satdatakit[cloud]` | STAC + Zarr + S3 access                  |
| **Full**  | `pip install satdatakit[full]`  | All extensions (servers, production)     |


### Dask Example

from satdatakit.extensions.dask_ext import enable_dask, read_dask

enable_dask()

# Lazy load with chunks
ds = read_dask(["file1.tif", "file2.tif"], chunks={"x": 1024})

# Compute when ready
ds = ds.compute()


## Features

Unified API: One read() for GeoTIFF, NetCDF, HDF, SAFE
Spectral Indices: NDVI, NDWI, EVI, SAVI, and more
Pipeline API: Fluent, chainable operations
Time Series: Stack multiple scenes automatically


## License

MIT License  see LICENSE for details.
Author: Rafael Cañete Vazquez

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

satdatakit-0.1.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

satdatakit-0.1.0-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file satdatakit-0.1.0.tar.gz.

File metadata

  • Download URL: satdatakit-0.1.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for satdatakit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7c776eef897c1118d5ee9605d60ce0b7ae845bc9794441f5f375f059ca7d03d2
MD5 baed124c98244beaa7a64f4ba26a7665
BLAKE2b-256 4492fd594066a00c19c8785c6100ed4eb3bf4eb3cc75129d434843f79e616414

See more details on using hashes here.

File details

Details for the file satdatakit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: satdatakit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for satdatakit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 254dd2f88ab8047f66560b29cb5fc4b1ccd9bd95ba69ab3197354e1b94af49fb
MD5 05a5f0dacc78a960ed7fed0df7afcac1
BLAKE2b-256 ee4d5edfd431bbe68d4f855b8ec9a6dd23311ac3025fd4d5f76f3268a4488014

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page