#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Figure 9: the planform and shape attributes of the example basin 8595.

Uses _fig_perpixel_scatter_v11.py. Output: ../Figures/Fig09_Planform_v11.png and .pdf.

Run from this folder; ../Data holds the inputs and the figure is written to ../Figures.
"""

import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent))
from _fig_perpixel_scatter_v11 import (
    load_context, plot_3x3_with_context, PanelSpec, ContextSpec,
)


CONTEXT = ContextSpec(
    raster="ex8595_upa.tif",
    title=r"Drainage area, $\mathit{UPA}$  [km$^2$]",
    cmap="viridis",
    log_scale=True,
)

PANELS = [
    PanelSpec("basin_length_km",  "b", r"Basin length, $L_{b}$  [km]",                "viridis"),
    PanelSpec("basin_width_km",   "c", r"Basin width, $W_{b}$  [km]",                 "viridis"),
    PanelSpec("perimeter_km",     "d", r"Perimeter, $P$  [km]",                       "viridis"),
    PanelSpec("convexity",        "e", r"Convexity, $C_{v}$  [–]",              "cividis"),
    PanelSpec("circularity",      "f", r"Circularity ratio, $R_{c}$  [–]",            "viridis"),
    PanelSpec("gravelius",        "g", r"Gravelius compactness, $K_{G}$  [–]",        "viridis"),
    PanelSpec("elongation_ratio", "h", r"Elongation ratio, $R_{e}$  [–]",             "viridis"),
    PanelSpec("lemniscate_ratio", "i", r"Lemniscate ratio, $R_{l}$  [–]",                      "viridis"),
]


def main():
    ctx = load_context()
    plot_3x3_with_context(PANELS, ctx, CONTEXT, stem="Fig09_Planform_v11")


if __name__ == "__main__":
    main()
