Unified satellite data analysis toolkit
Project description
SatDataKit
Unified satellite data analysis toolkit — one API for all Earth Observation 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
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c776eef897c1118d5ee9605d60ce0b7ae845bc9794441f5f375f059ca7d03d2
|
|
| MD5 |
baed124c98244beaa7a64f4ba26a7665
|
|
| BLAKE2b-256 |
4492fd594066a00c19c8785c6100ed4eb3bf4eb3cc75129d434843f79e616414
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
254dd2f88ab8047f66560b29cb5fc4b1ccd9bd95ba69ab3197354e1b94af49fb
|
|
| MD5 |
05a5f0dacc78a960ed7fed0df7afcac1
|
|
| BLAKE2b-256 |
ee4d5edfd431bbe68d4f855b8ec9a6dd23311ac3025fd4d5f76f3268a4488014
|