Skip to main content

A Python package for reading and visualizing SATAID binary satellite data (Himawari, etc.).

Project description

SATAID

PyPI version Python 3.8+ License: MIT

A Python package for reading and visualizing SATAID binary satellite data files (Himawari-8/9).

Features

  • 📖 Read SATAID binary files (.Z* format) and SZDD-compressed WIS files
  • 🗺️ Visualize with Cartopy geographic projections
  • 🎨 Built-in custom colormaps: EH, SW, WE, IR_GOES
  • ✂️ Subset data by lat/lon bounding box or point extraction
  • 💾 Export to NetCDF4, GeoTIFF, and xarray

Installation

pip install sataid

For optional features:

pip install sataid[all]  # Includes netCDF4, rasterio, xarray, scipy

Quick Start

Reading Data

import sataid

# Read a SATAID file
sat = sataid.read_sataid("H09_B13_Indonesia_20251126.Z0700")

# View metadata
sat.description()

Output:

=== Data Description ===
Time: 2025-11-26 07:00 UTC
Channel: L2
Dimension: 3000x2000
Resolution: 0.02
Units: °C

=== Satellite Description ===
Satellite: Himawari-9
Nadir Coordinate: -0.025393, 140.787445
Altitude: 42163.33 km

Visualization

# Simple plot with Cartopy
sat.plot()

# With custom colormap
sat.plot(cmap='IR_GOES')  # GOES-16 style
sat.plot(cmap='EH')       # BMKG Enhanced IR
sat.plot(cmap='SW')       # Sandwitch 
sat.plot(cmap='WE')       # Water Vapor enhancement

# Save to file
sat.savefig("output.png", cmap='EH')

Available Colormaps

Colormap Description Best For
IR_GOES GOES-16 style infrared IR channels (B13, B14, etc.)
EH BMKG Enhanced IR Cloud top temperature
SW Sandwitch gradient IR channels
WE Water Vapor enhancement WV channels (B08, B09, B10)

Subsetting Data

# Extract a region
subset = sat.sel(
    latitude=slice(-10, 0),
    longitude=slice(100, 120)
)
subset.plot()

# Extract a single point
value = sat.sel(latitude=-6.2, longitude=106.8)
print(f"Temperature: {value}°C")

# With interpolation
value = sat.sel(latitude=-6.2, longitude=106.8, method='linear')

Export Data

# To NetCDF4 (requires netCDF4)
sat.to_netcdf("output.nc")

# To GeoTIFF (requires rasterio)
sat.to_geotiff("output.tif")

# To xarray DataArray (requires xarray)
da = sat.to_xarray()

# Back to SATAID format
sat.to_sataid("output.sataid")

Access Raw Arrays

lat, lon, data = sat.to_array()

# Or directly
print(sat.lat)   # 1D latitude array
print(sat.lon)   # 1D longitude array
print(sat.data)  # 2D data array

API Reference

sataid.read_sataid(filename)

Read a SATAID binary file and return a SataidArray object.

Parameters:

  • filename (str): Path to SATAID file (.Z* or .wis)

Returns:

  • SataidArray: Object containing data and metadata

SataidArray Methods

Method Description
.description() Print formatted metadata
.plot(cmap=None, cartopy=True) Interactive visualization
.savefig(filename, cmap=None) Save plot to image file
.sel(latitude, longitude) Subset by coordinates
.to_netcdf(filename) Export to NetCDF4
.to_geotiff(filename) Export to GeoTIFF
.to_xarray() Convert to xarray DataArray
.to_sataid(filename) Write to SATAID format
.to_array() Return (lat, lon, data) tuple

SataidArray Properties

Property Description
.lat 1D latitude array (north → south)
.lon 1D longitude array (west → east)
.data 2D calibrated data array
.units Data units ('Reflectance' or '°C')
.satellite_name Satellite name (e.g., 'Himawari-9')
.channel_name Channel name (e.g., 'IR', 'WV')

Dependencies

Required:

  • numpy
  • matplotlib
  • cartopy

Optional:

  • netCDF4 (for .to_netcdf())
  • rasterio (for .to_geotiff())
  • xarray (for .to_xarray())
  • scipy (for interpolation in .sel())

License

MIT License - see LICENSE for details.

Author

Sepriando - meteo.go@gmail.com

Links

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

sataid-1.0.1.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

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

sataid-1.0.1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file sataid-1.0.1.tar.gz.

File metadata

  • Download URL: sataid-1.0.1.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for sataid-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e528476df9491c5f6108c0c5bf75e4a60a637680d1cdc0a108a473f0ca858433
MD5 75238bbfeb9aee50408ef047aac06a05
BLAKE2b-256 7d698958b0747083ab6f55b6098196e7b59026479f1add448510623c7057fe9b

See more details on using hashes here.

File details

Details for the file sataid-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: sataid-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for sataid-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1bb16aaaeac87db6850f9048a1e22dbaadfdaabbb6212e41be2371165bf6aeee
MD5 acf2f58e7aae91e330b09cde645f6a07
BLAKE2b-256 3a804ecb862009290d15be05470a52ba4b004f52a70b83c7fab579865f88a9e1

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