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

Uses _fig_perpixel_scatter_v11.py. Output: ../Figures/Fig08_Terrain_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_dem.tif",
    title=r"Elevation, $z$  [m]",
    cmap="viridis",
    log_scale=False,
)

PANELS = [
    PanelSpec("mean_elv",             "b", r"Upstream mean elevation, $\overline{z}$  [m]",     "viridis"),
    PanelSpec("min_elv",              "c", r"Upstream minimum elevation, $z_{\min}$  [m]",      "viridis"),
    PanelSpec("max_elv",              "d", r"Upstream maximum elevation, $z_{\max}$  [m]",      "viridis"),
    PanelSpec("elv_std",              "e", r"Upstream elevation std., $\sigma_{z}$  [m]",       "viridis"),
    PanelSpec("mean_slp",             "f", r"Upstream mean slope, $\overline{S}$  [$^\circ$]",  "magma"),
    PanelSpec("slp_std",              "g", r"Upstream slope std., $\sigma_{S}$  [$^\circ$]",    "magma"),
    PanelSpec("relief",               "h", r"Basin relief, $H$  [m]",                           "inferno"),
    PanelSpec("hypsometric_integral", "i", r"Hypsometric integral, $\mathit{HI}$  [–]",         "cividis"),
]


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


if __name__ == "__main__":
    main()
