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.
-
Architecture
The design philosophy behind the single-object API, the package architecture diagram, and how data and control flow through the system.
-
Source Layout
A contributor's map of the source tree: what each module does and where to add new features.
-
Conventions
How TanagerSpec represents a hyperspectral cube in memory, and how the optional xarray export is named and structured.
-
Configuration & Constants
The centralized
config.pymodule: the shared constants and defaults it holds, and how to reference them instead of hardcoding literals.
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 explorationscene.analysis.*— spectral indices, dimensionality reduction, clustering, classificationscene.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.