Skip to main content

Standalone all-Rust GOES ABI renderer, tiler, and Python bindings

Project description

goes-abi

Standalone all-Rust GOES ABI renderer, native PNG generator, XYZ tile generator, and Python package.

This package is for people who want the GOES satellite rendering pieces without installing rustwx. It downloads public NOAA GOES ABI Level 2 NetCDF files, reads them with pure Rust dependencies, applies the ABI fixed-grid projection/scaling metadata, and writes PNGs plus JSON manifests.

Features

  • GOES-16, GOES-17, GOES-18, and GOES-19 ABI products.
  • Native fixed-grid PNG renders for ABI bands and RGB products.
  • Native crop/sequence rendering for workflow-friendly regional loops.
  • XYZ Web Mercator tile generation from local ABI channel files.
  • Python bindings through maturin and a goes_abi Python module.
  • No rustwx checkout, vendored dependency tree, C NetCDF, C HDF5, or Python geospatial stack required.

Install

Install the Rust CLI directly from GitHub:

cargo install --git https://github.com/FahrenheitResearch/goes-abi

Install the Python package directly from GitHub:

python -m pip install "git+https://github.com/FahrenheitResearch/goes-abi"

Install from PyPI:

python -m pip install goes-abi

Install the optional MCP server for Claude Desktop, Codex, and other MCP clients:

python -m pip install "goes-abi[mcp]"

From a local checkout:

cargo install --path .

For Python:

python -m pip install .

For editable Python development:

python -m pip install maturin
python -m maturin develop --features python

CLI Examples

Print supported products and outputs:

goes-abi capabilities

Render the latest GOES-19 CONUS Band 13 native PNG:

goes-abi render `
  --satellite goes19 `
  --sector conus `
  --products goes_abi_band_13 `
  --width 1400 `
  --height 1100 `
  --out-dir out `
  --cache-dir cache

Render a full-disk native-resolution infrared frame:

goes-abi render `
  --satellite goes19 `
  --sector full_disk `
  --products goes_abi_band_13 `
  --width 5424 `
  --height 5424 `
  --out-dir out `
  --cache-dir cache

Render a regional native crop sequence:

goes-abi native-sequence `
  --satellite goes19 `
  --sector conus `
  --product geocolor `
  --bounds -127,-111,30,44.5 `
  --latest-count 6 `
  --out-dir out `
  --cache-dir cache

Generate XYZ tiles from local C01/C02/C03 channel files:

goes-abi web-tiles `
  --channel1 cache\path\to\C01.nc `
  --channel2 cache\path\to\C02.nc `
  --channel3 cache\path\to\C03.nc `
  --out-dir tiles `
  --min-zoom 2 `
  --max-zoom 6

Python Example

import goes_abi

report = goes_abi.render_satellite(
    satellite="goes19",
    abi_product="ABI-L2-CMIPC",
    abi_sector="conus",
    domain_slug="goes_native",
    domain_label="GOES Native",
    bounds=(-127.0, -111.0, 30.0, 44.5),
    out_dir="out",
    cache_dir="cache",
    products=["goes_abi_band_13"],
    width=1400,
    height=1100,
    download_glm=False,
    png_compression="fast",
)

print(report["artifacts"][0]["png_path"])

MCP Server

goes-abi includes an optional stdio MCP server. It exposes tools for capabilities, native PNG rendering, native sequence rendering, XYZ tile generation from local ABI channel files, and a take_a_break_wallpaper tool that renders a 5120x1440 full-disk GOES wallpaper.

Use this command in MCP clients:

goes-abi-mcp

Equivalent module form:

python -m goes_abi.mcp_server

Example MCP server config:

{
  "mcpServers": {
    "goes-abi": {
      "command": "goes-abi-mcp"
    }
  }
}

The wallpaper tool defaults to goes_airmass_rgb because it uses 2 km full-disk channels and is practical for agents to run on demand. For visible full-disk GeoColor, call it with product="goes_geocolor" and allow_high_resolution_full_disk=true; that path downloads and renders high-resolution visible channels and can take substantially more memory and time.

Outputs

Every render writes a JSON report next to the PNG/tile output. Reports include scan time, source NOAA S3 keys/URLs, local cache paths, render timing, product metadata, geographic bounds, and generated artifact paths.

Development Checks

cargo fmt --check
cargo test
cargo test --features python
cargo run --bin goes-abi -- capabilities

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

goes_abi-0.1.2.tar.gz (64.5 kB view details)

Uploaded Source

Built Distributions

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

goes_abi-0.1.2-cp39-abi3-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9+Windows x86-64

goes_abi-0.1.2-cp39-abi3-manylinux_2_35_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.35+ x86-64

goes_abi-0.1.2-cp39-abi3-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file goes_abi-0.1.2.tar.gz.

File metadata

  • Download URL: goes_abi-0.1.2.tar.gz
  • Upload date:
  • Size: 64.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for goes_abi-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4fe2cc24de758cc790553451c70b1adfe0d7ac360de39dd7b5cb6002f53f0944
MD5 063fec25f33faf2f22e178108c80923e
BLAKE2b-256 1c7734272b9fe59f1f279d94774b4682d0d878fa04a88c6c8257e931c798ecfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for goes_abi-0.1.2.tar.gz:

Publisher: publish.yml on FahrenheitResearch/goes-abi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file goes_abi-0.1.2-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: goes_abi-0.1.2-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for goes_abi-0.1.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4e157211ad46c8eb29ef541c5560c1a1847c0dfe418391aafa495835345709f7
MD5 8249fe40035d3f2201b88d77d7052af2
BLAKE2b-256 903bc418599e72523424d4076b9b0ed804f9956513db7b7454b1bec57fc3d08f

See more details on using hashes here.

Provenance

The following attestation bundles were made for goes_abi-0.1.2-cp39-abi3-win_amd64.whl:

Publisher: publish.yml on FahrenheitResearch/goes-abi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file goes_abi-0.1.2-cp39-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for goes_abi-0.1.2-cp39-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4cf889e582130d320373efac3b0ffedd6020af72cedd1c20e989ba02e787bc4f
MD5 003e636c1bb2a73be2f4f33cc499cb15
BLAKE2b-256 6e1e01ba1d03f78fb7efb741b2942460973467b620d69df7fdcbab8faa52b3ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for goes_abi-0.1.2-cp39-abi3-manylinux_2_35_x86_64.whl:

Publisher: publish.yml on FahrenheitResearch/goes-abi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file goes_abi-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for goes_abi-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a821ad5e716475dc597283b66ab5c2744d11a7b3187246246c515035ab79b2bc
MD5 ea2553e7a076c6474d88d5a06c9553f2
BLAKE2b-256 458ded2b9a6bf9f229dc640b67adeee7437879f90cafbbd52132ec126294f269

See more details on using hashes here.

Provenance

The following attestation bundles were made for goes_abi-0.1.2-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on FahrenheitResearch/goes-abi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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