.. _bresslandforms:
Landforms

.. index::
single: landforms
This tool mainly classifies bathymetric DTM based on landform type, (optionally) calculates patternbased statistics, and creates area
kernels (connected grid nodes with the same landform type).
How To Use?
^^^^^^^^^^^
* Select the **Landforms** tab (:numref:`fig_landforms`) on the bottom of the BRESS interface.
* To change the **Settings** for **Landforms v3**:
* Click the **Unlock** button, and click **OK** to the dialogue.
* Set:
* The inner and outer radii of the search annulus.
* The flatness angle and (if the **Apply correction for extended forms** is flagged) the flatness distance.
* When the **Adaptive flatness** is flagged, the **Outer multiplier** for the outer radius and the adopted **Percentile** (in ascending order) to estimate the flatness angle.
* The kind of landform classification in the **Landform classification** list. The default is a 6type lookup table (:numref:`fig_four_types_lut`).
* If required, select the following optional flags:
* **Search distance in meters**: When flagged, the values in the search annulus are evaluated as meters. Otherwise, number of nodes.
* **Adaptive flatness**: When flagged, the flatness angle is estimated node by node, using the **Outer multiplier** and the **Percentile** fields.
* **Delta angle for openness**: When flagged, a pattern direction is evaluated positive (or negative) when the delta between the zenith and nadir angles is larger than the selected flatness angle.
* **Extendedform correction**: When flagged, the flatness distance is used as the limit at which to increase the threshold height to evaluate a positive (or negative) direction.
* **Gridedge correction**: When activated, all the nodes with less than eight valid directions are ignored.
* The tool can provide the following kinds of outputs (and they can be both saved as ASCII grids or plotted):
* **Flatness angles** used to calculate the landforms.
* **Landform classification** (see :ref:`landforms`).
* **Statistical layers** (see :ref:`stats_layers`).
* **Area kernels** (see :ref:`area_kernels`).
* To reset the **Parameters** to the default initial values, click the **Reset** button.
* In **Execution**, click **Landforms v2**.
.. _fig_landforms:
.. figure:: _static/landforms.png
:width: 640px
:align: center
:alt: landforms tab
:figclass: aligncenter
The **Landforms** tab.



How Does It Work?
^^^^^^^^^^^^^^^^^
.. _ltp:
Local Ternary Patterns
======================
The first step of this tool is to calculate the Local Ternary Pattern (LTP) for each node and in the eight surrounding major directions (:numref:`fig_ltp`).
The openness of each direction is evaluated by comparing the zenith and nadir angles against the flatness angle (:numref:`fig_zenith_nadir_angles`).
.. _fig_ltp:
.. figure:: _static/ltp.png
:width: 400px
:align: center
:alt: local ternary pattern
:figclass: aligncenter
Example of a LTP of a given node.
.. _fig_zenith_nadir_angles:
.. figure:: _static/zenith_nadir_angles.png
:width: 400px
:align: center
:alt: zenith and nadir angles
:figclass: aligncenter
Example of a profile looking at just one of the eight directions.
.. _bathymorphons:
Bathymorphons
=============
.. index::
single: bathymorphon
The possible 6,561 values of LTP are reduced to 498 bathymorphons by removing the duplications after rotating and mirroring the patterns.
.. _landforms:
Landforms
=========
.. index::
single: landform
The landform classification is obtained by counting the number of positive and negative directions.
The number of positive and negative directions are then used to look up in one of the four following tables:
.. index::
single: classification table, 10type
* a 10type landformclassification table (FL: Flat, PK: Peak, RI: Ridge, SH: Shoulder, CV: Convex Slope, SL: Slope, CN: Concave Slope, FS: Footslope, VL: Valley, PT: Pit) (:numref:`fig_ten_types_lut`).
.. _fig_ten_types_lut:
.. figure:: _static/ten_types_lut.png
:width: 400px
:align: center
:alt: six types lut
:figclass: aligncenter
The 10type landform classification table. For more details, see :ref:`(Jasiewicz et al., 2013)`.
.. index::
single: classification table, 6type
single: classification table, simplified
* a simplified 6type landformclassification table (FL, RI, SH, SL, FS, VL) (:numref:`fig_six_types_lut`).
.. _fig_six_types_lut:
.. figure:: _static/six_types_lut.png
:width: 400px
:align: center
:alt: six types lut
:figclass: aligncenter
The 6type landform classification table. For more details, see :ref:`(Masetti et al., 2018)`.
.. index::
single: classification table, 5type
single: classification table, simplified
* a simplified 5type landformclassification table (PK, FL, RI, SL, VL) (:numref:`fig_five_types_lut`).
.. _fig_five_types_lut:
.. figure:: _static/five_types_lut.png
:width: 400px
:align: center
:alt: five types lut
:figclass: aligncenter
The 5type landform classification table.
.. index::
single: classification table, 4type
single: classification table, simplified
* a simplified 4type landformclassification table (FL, RI, SL, VL) (:numref:`fig_four_types_lut`).
.. _fig_four_types_lut:
.. figure:: _static/four_types_lut.png
:width: 400px
:align: center
:alt: four types lut
:figclass: aligncenter
The 4type landform classification table.
.. _stats_layers:
Statistical layers
==================
.. index::
single: height
During the calculation of the local ternary patterns, the neighborhood of each grid node is analyzed in the main eight surrounding directions.
The analysis requires the calculation of the local **height**, that is the relative elevation of the neighborhood nodes compared to the node being analyzed.
.. index::
single: patterns polygon
In each direction, the analysis identifies a node (within the *search annulus*) that is used to evaluate the openness of the visible neighborhood.
The **patterns polygon** is constructed by connecting these nodes.
.. index::
single: valid patterns
single: positives
single: negatives
single: average height
single: maximum delta
single: height range
single: height variance
single: average azimuth
single: elongation ratio
single: maximum width
single: area ratio
single: flatness threshold
single: height
single: patterns polygon
single: search annulus
During the analysis, a number of statistics are calculated for each grid node:
* **Local Ternary Pattern** (see :ref:`ltp`).
* **Bathymorphon** (see :ref:`bathymorphons`).
* **Valid Patterns**: the number of valid *LTPs* (that is, number of directions along which the openness can be evaluated).
* **Positives**: the number of directions with zenith angle larger than the selected *flatness threshold*.
* **Negatives**: the number of directions with nadir angle larger than the selected *flatness threshold*.
* **Average Height**: the average *height* of the visible neighborhood.
* **Maximum Delta**: the maximum elevation delta (that is, the absolute value of the *height*) of the visible neighborhood.
* **Height Range**: the *height* range of the visible neighborhood.
* **Height Variance**: the *height* variance (calculated using the *Average Height* as mean value) of the visible neighborhood.
* **Average Azimuth**: the average orientation of the *patterns polygon*.
* **Elongation Ratio**: the ratio between the maximum and the minimum dimensions of the *patterns polygon*.
* **Maximum Width**: the maximum dimension (x vs. ydirection) of the *patterns polygon*.
* **Area Ratio**: the ratio between the area of the *patterns polygon* and its maximum possible extension (based on the *outer search radius*).
.. _area_kernels:
Area kernels
============
.. index::
single: area kernel
An **area kernel** is created by connecting all the adjacent nodes (:numref:`fig_area_kernel`) that have the same landform classification.
.. _fig_area_kernel:
.. figure:: _static/area_kernel.png
:width: 400px
:align: center
:alt: area kernel
:figclass: aligncenter
An example of adjacent nodes classified as "FL" (flat) and thus clusted into the same area kernel.