Skip to main content

OmniEarth 🌍

CI/CD PyPI version npm version DOI Python uv pnpm License

OmniEarth is an open-source, universal multi-modal Earth Observation (EO), hyperspectral cube, and environmental data aggregation engine. It provides a unified Python SDK, Node.js / TypeScript SDK, and Universal CLI to discover, query, filter, and stream open earth observation data across all modalities:

  • Optical Multispectral: Sentinel-2 (L2A 10m COGs), Landsat-8/9 (30m) via AWS Open Data STAC.
  • Hyperspectral Cubes: DLR EnMAP (224 spectral bands), NASA EMIT (285 bands), and ASI PRISMA (240 bands).
  • Synthetic Aperture Radar (SAR): Sentinel-1 (GRD / RTC VV/VH 10m COGs).
  • Weather & Climate Profiles: Open-Meteo zero-config global forecasts, hourly soil moisture (0-9cm), and ERA5 historical reanalysis.
  • Soil & 3D Topography: ISRIC SoilGrids v2.0 (250m global physical & chemical soil profiles) and Copernicus DEM GLO-30.

⚡ Installation

OmniEarth is managed with modern, high-performance tooling: Astral uv for Python and pnpm for Node.js.

Python SDK & CLI

Using Astral uv (recommended):

uv pip install omniearth
# or add to your uv project:
uv add omniearth

Using standard pip:

pip install omniearth

Node.js / TypeScript SDK & CLI

Using pnpm (recommended):

pnpm add omniearth
# or global CLI
pnpm add -g omniearth

Using npm:

npm install omniearth
# or global CLI
npm install -g omniearth

Quickstart

1. Python SDK

import omniearth as oe

client = oe.OmniEarth()

# 1. Search Hyperspectral Data Cubes (e.g. DLR EnMAP 224 bands)
scenes = client.search(
    category="hyperspectral",
    bbox=[78.50, 20.65, 78.60, 20.72],
    max_cloud_cover=20,
    limit=5
)

for scene in scenes:
    print(f"Scene: {scene.id} | Datetime: {scene.datetime} | Provider: {scene.provider}")

# Download full 224-band Cloud-Optimized GeoTIFF (COG)
if scenes:
    file_path = client.download(scenes[0], asset_key="SPECTRAL_IMAGE_COG", outdir="./downloads")
    print(f"Downloaded cube to: {file_path}")

# 2. Instant Weather & Soil Moisture Profile (Zero-Config)
weather = client.get_weather(bbox=[78.50, 20.65, 78.60, 20.72])
print(f"Elevation: {weather.properties['elevation']}m")

# 3. ISRIC SoilGrids 3D Physical/Chemical Profile
soil = client.get_soil(bbox=[78.50, 20.65, 78.60, 20.72], depth="0-5cm")
print("Topsoil Summary:", soil.properties["summary_topsoil"])

2. Node.js / TypeScript SDK

import { OmniEarth, Category } from "omniearth";

const client = new OmniEarth();

// 1. Search Sentinel-2 Cloud-Optimized GeoTIFFs (10m Optical)
const scenes = await client.search({
  category: Category.OPTICAL,
  bbox: [78.50, 20.65, 78.60, 20.72],
  maxCloudCover: 15,
  limit: 3
});

for (const s of scenes) {
  console.log(`Found: ${s.id} | Date: ${s.datetime} | Assets: ${Object.keys(s.assets).join(", ")}`);
}

// 2. Download Visual RGB GeoTIFF
if (scenes.length > 0) {
  const filePath = await client.download(scenes[0], "visual", "./downloads");
  console.log(`Saved RGB COG: ${filePath}`);
}

// 3. Instant Weather Profile
const weather = await client.getWeather([78.50, 20.65, 78.60, 20.72]);
console.log("Weather Feed:", weather?.properties.latitude, weather?.properties.elevation);

Universal CLI

OmniEarth provides a standalone command-line interface available in both Python and Node.js environments.

# Check provider status and detected credentials
omniearth info

# List all supported modalities, sensors, and backends
omniearth categories

# Search Optical Sentinel-2 scenes with max 10% cloud cover
omniearth search --category optical --bbox 78.50 20.65 78.60 20.72 --max-cloud 10

# Search DLR EnMAP Hyperspectral 224-band scenes
omniearth search --category hyperspectral --bbox 78.50 20.65 78.60 20.72 --limit 3

# Search Sentinel-1 SAR GRD radar passes
omniearth search --category sar --point 78.55 20.68 5.0

# Fetch zero-config weather and soil moisture profile
omniearth search --category weather --point 78.55 20.68 --json

# Direct download by Scene ID or latest AOI match
omniearth download --category hyperspectral --bbox 78.50 20.65 78.60 20.72 --asset SPECTRAL_IMAGE_COG

Supported Modalities & Provider Matrix

Modality Sensors / Datasets Resolution / Bands Provider Backend Authentication
Optical Sentinel-2 L2A, Landsat-8/9 10m–30m, 12 bands AWS Earth Search STAC Zero-Config (Free public COGs)
SAR Sentinel-1 GRD / RTC 10m, VV / VH dual-pol AWS Earth Search STAC Zero-Config (Free public COGs)
Hyperspectral DLR EnMAP 30m, 224 bands (420–2450 nm) DLR EOC STAC + Geoservice Free DLR EOC Account
Hyperspectral NASA EMIT 60m, 285 bands (381–2493 nm) NASA CMR STAC Free NASA Earthdata Login
Hyperspectral ASI PRISMA 30m, 240 bands ASI PRISMA Portal Free ASI Account
Weather Open-Meteo, ERA5 Reanalysis Global 1–11km, hourly Open-Meteo REST API Zero-Config (Completely open)
Soil & 3D ISRIC SoilGrids v2.0 250m 3D profiles (0–200cm) ISRIC REST API Zero-Config (Completely open)

Authentication & Configuration

OmniEarth automatically discovers credentials from local .env files, parent folders, or system environment variables:

Copy the .env.example template:

cp .env.example .env
# DLR Geoservice (Required for downloading raw EnMAP hyperspectral cubes)
# Register free: https://eoweb.dlr.de/egp/
DLR_USERNAME=your_dlr_username
DLR_PASSWORD=your_dlr_password

# NASA Earthdata (Optional: for direct NASA EMIT cube downloads)
# Register free: https://urs.earthdata.nasa.gov/
EARTHDATA_USERNAME=your_earthdata_username
EARTHDATA_PASSWORD=your_earthdata_password

# ASI PRISMA (Optional: for PRISMA hyperspectral missions)
# Register free: https://prisma.asi.it/
PRISMA_USERNAME=your_prisma_username
PRISMA_PASSWORD=your_prisma_password

(Note: Optical Sentinel-2, Landsat-8/9, Sentinel-1 SAR, Open-Meteo Weather, and ISRIC SoilGrids require zero credentials and work out of the box!)


License & Compliance Disclaimers

License

OmniEarth is distributed under the OmniEarth Open Source License with Mandatory Attribution & Academic Citation. See LICENSE for the full text.

  1. Academic Citation: Any research, paper, or published study utilizing OmniEarth must cite the software using Zenodo DOI or the citation below.
  2. Corporate Attribution: Any commercial product, website, SaaS application, or internal service utilizing OmniEarth must display prominent attribution:
    "Powered by OmniEarth (https://github.com/lokeshsk/omniearth)" in user interfaces and technical documentation.
  3. Upstream Data Provider Liability: OmniEarth is an orchestration and aggregation tool. It does not own, re-license, or host upstream satellite imagery or sensor data. Users are strictly responsible for complying with the respective upstream terms of service:

Citation

If you use OmniEarth in your scientific research or software, please cite:

@software{omniearth2026,
  author       = {Lokesh Kumar},
  title        = {OmniEarth: Universal Multi-Modal Open Earth Observation, Hyperspectral, and Weather Data Engine},
  month        = oct,
  year         = 2026,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.1089204},
  url          = {https://github.com/lokeshsk/omniearth}
}

Author & Maintainer

Lokesh Kumar

Metadata

Release files for omniearth 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omniearth 1.0.0
File Size Uploaded Provenance Actions
omniearth-1.0.0.tar.gz 27.6 kB Without provenance Details for omniearth-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for omniearth 1.0.0
File Interpreter ABI Platform Actions
omniearth-1.0.0-py3-none-any.whl Python 3 none any Details for omniearth-1.0.0-py3-none-any.whl

Total release size: 55.7 kB

Release files / omniearth-1.0.0.tar.gz

Download URL omniearth-1.0.0.tar.gz
Size 27.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dd960ff53078305947c4ee7561b90c7853f25b33de83e5b7840f48385ee9508e
BLAKE2b-256 checksum
How to use checksums
a180d867a93736c90417469744663d8d65b7c9216c7401825ed7dfd623c092d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / omniearth-1.0.0-py3-none-any.whl

Download URL omniearth-1.0.0-py3-none-any.whl
Size 28.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
019a9be93f38b76eb5d127782d7d8308fbbb11b97ef6d3586a64d009883feddb
BLAKE2b-256 checksum
How to use checksums
9b09961d85c31ffc123903524f7fd5d95c2ec01ec64cb11044ad1e38332a9956
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for omniearth 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page