A Python package for reading and visualizing SATAID binary satellite data (Himawari, etc.).
Project description
SATAID
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e528476df9491c5f6108c0c5bf75e4a60a637680d1cdc0a108a473f0ca858433
|
|
| MD5 |
75238bbfeb9aee50408ef047aac06a05
|
|
| BLAKE2b-256 |
7d698958b0747083ab6f55b6098196e7b59026479f1add448510623c7057fe9b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bb16aaaeac87db6850f9048a1e22dbaadfdaabbb6212e41be2371165bf6aeee
|
|
| MD5 |
acf2f58e7aae91e330b09cde645f6a07
|
|
| BLAKE2b-256 |
3a804ecb862009290d15be05470a52ba4b004f52a70b83c7fab579865f88a9e1
|