Skip to content

Developer Documentation

This section is for developers who want to understand how TanagerSpec is built and contribute to the package (tanagerspec, the installable package in this repository). If you only want to use TanagerSpec, start with the Quick Walkthrough and the API Reference instead.

The pages are meant to be read roughly in order:

  •   Getting Started


    Set up the development environment, run tests and linters, build the docs, and follow the contribution workflow.

    Getting Started

  •   Architecture


    The design philosophy behind the single-object API, the package architecture diagram, and how data and control flow through the system.

    Architecture

  •   Source Layout


    A contributor's map of the source tree: what each module does and where to add new features.

    Source Layout

  •   Conventions


    How TanagerSpec represents a hyperspectral cube in memory, and how the optional xarray export is named and structured.

    Conventions

  •   Configuration & Constants


    The centralized config.py module: the shared constants and defaults it holds, and how to reference them instead of hardcoding literals.

    Configuration & Constants

How the package is organized at a glance

The installable package lives under src/tanagerspec/. A loaded scene is a single TanagerSpec object that owns the spectral cube and exposes every capability through three accessor namespaces:

  • scene.plot.* — visualization and exploration
  • scene.analysis.* — spectral indices, dimensionality reduction, clustering, classification
  • scene.convert_to.* — export to GeoTIFF, ENVI-BIL, and xarray/NetCDF

The Architecture page explains why it is built this way; the Source Layout page shows where each piece lives in the tree.