Skip to main content

landsat9geo

Landsat 9 L2SP geological mapping toolkit — spectral indices, MVT exploration ratios, Brovey pansharpening, decorrelation stretch, and DEM derivatives in a single pip install.

Installation

pip install landsat9geo

Quick start

CLI

# From a .tar archive with shapefile clip
landsat9geo --tar LC09_L2SP_193036_20230713.tar --shp aoi.shp -o results/

# With panchromatic sharpening and DEM
landsat9geo --dir ./extracted/ --shp aoi.shp --pan B8.TIF --dem srtm.tif

Python API

from landsat9geo import LandsatGeologyPipeline

pipe = LandsatGeologyPipeline(
    tar_path="LC09_L2SP_193036_20230713.tar",
    shp_path="aoi.shp",
    pan_path="B8.TIF",
    dem_path="srtm.tif",
    output_dir="results",
)
outputs = pipe.run()

Individual functions

from landsat9geo import safe_ratio, sabins_fcc, mvt_target_rgb, decorrelation_stretch

# Sabins geological false-colour composite
fcc = sabins_fcc(bands)   # R=SWIR2/NIR  G=SWIR1/Red  B=Red/Blue

# MVT exploration composite
mvt = mvt_target_rgb(bands)

# Decorrelation stretch on SWIR bands for subtle carbonate differences
import numpy as np
swir_stack = np.stack([bands["SR_B5"], bands["SR_B6"], bands["SR_B7"]], axis=-1)
dcs = decorrelation_stretch(swir_stack)

Output products

Directory Contents
SR_30m.tif 7-band surface reflectance (scaled, cloud-masked)
ST_30m_K.tif Land surface temperature (Kelvin)
SR_pansharpened_15m.tif Brovey-sharpened 15 m reflectance
geological_ratios.tif 18-band stack of all indices
DEM_derivatives.tif Elevation, slope, aspect, hillshade

Geological ratios (band order in geological_ratios.tif)

  1. Iron Oxide (Red/Blue) — Fe³⁺ gossans, laterite
  2. Ferrous Iron (SWIR1/Red) — Fe²⁺ mafics, chlorite
  3. Clay/Hydroxyl (SWIR1/SWIR2) — Al-OH kaolinite, illite
  4. Carbonate (SWIR2/NIR) — CO₃²⁻ calcite, dolomite
  5. Ferric Oxide (Red/Green) — hematite/goethite
  6. NDVI — vegetation mask
  7. Silica (SWIR2/SWIR1) — quartz-rich lithologies 8–12. Sabins FCC components, BSI, MgOH … 13–15. Opaque Mineral, Mineral Ratio 16–18. MVT indices — Carbonate Host, Gossan, Alteration Halo

QGIS tip: load geological_ratios.tif, set bands 10/11/12 as RGB for the classic Sabins geology false-colour composite.

Module layout

Module Responsibility
parser.py MTL parsing, QA bit extraction
indices.py All spectral indices, MVT ratios, Sabins FCC
enhancement.py Brovey pansharpening, decorrelation stretch
terrain.py DEM derivatives (Horn's method)
utils.py safe_ratio, I/O, tar extraction, clipping
processor.py Pipeline orchestration
cli.py Command-line interface

License

MIT

Release files for landsat9geo 0.2.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 landsat9geo 0.2.0
File Size Uploaded
landsat9geo-0.2.0.tar.gz 16.3 MB Details

Built distribution (wheel)

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

Total release size: 16.3 MB

Release files / landsat9geo-0.2.0.tar.gz

Download URL landsat9geo-0.2.0.tar.gz
Size 16.3 MB
Tags Source
SHA-256 checksum
How to use checksums
aa292efb180013ab0c8153efdd2517161d00e2f2c4f1eb3c4339ca3498d6868d
BLAKE2b-256 checksum
How to use checksums
f3028e2d6d1b0136fcdc86685cfdee84d31d7a1e03a12b2ec8ddfef1abbeeaba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 11, 2026.

Transparency log

Release files / landsat9geo-0.2.0-py3-none-any.whl

Download URL landsat9geo-0.2.0-py3-none-any.whl
Size 19.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3619dbcf10a9791d83c61930fb7c26d6c908af35c07ff88e9a7a6e02867d8aa
BLAKE2b-256 checksum
How to use checksums
e516c29089aec5239cdf3261fe8163f86daa7f72c5848faed3637bfe2e9c9462
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

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