Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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