HighMap library (C++)
Loading...
Searching...
No Matches
local_metrics.hpp
Go to the documentation of this file.
1/* Copyright (c) 2023 Otto Link. Distributed under the terms of the GNU General
2 Public License. The full license is in the file LICENSE, distributed with
3 this software. */
4
9#pragma once
10
11#include "highmap/array.hpp"
12
13namespace hmap
14{
15
38Array local_max(const Array &array, int ir);
39
67Array local_median_deviation(const Array &array, int ir);
68
91Array local_min(const Array &array, int ir);
92
116Array local_mean(const Array &array, int ir);
117
143Array relative_elevation(const Array &array, int ir);
144
166Array ruggedness(const Array &array, int ir);
167
192Array rugosity(const Array &z, int ir, bool convex = true);
193
228Array valley_width(const Array &z, int ir = 0, bool ridge_select = false);
229
230} // namespace hmap
231
232namespace hmap::gpu
233{
234
248Array local_aspect_variance(const Array &array, int ir);
249
266Array local_max(const Array &array, int ir);
267
269Array local_median_deviation(const Array &array, int ir);
270
287Array local_min(const Array &array, int ir);
288
311Array local_relief(const Array &array, int ir);
312
330Array local_variance(const Array &array, int ir);
331
333Array local_mean(const Array &array, int ir);
334
335Array local_skewness(const Array &array, int ir);
336
353Array local_z_score(const Array &array, int ir);
354
371Array topographic_position_index(const Array &array, int ir);
372
374Array relative_elevation(const Array &array, int ir);
375
377Array relative_elevation_square_kernel(const Array &array, int ir);
378
380Array ruggedness(const Array &array, int ir);
381
383Array rugosity(const Array &z, int ir, bool convex = true);
384
386Array valley_width(const Array &z, int ir = 0, bool ridge_select = false);
387
388} // namespace hmap::gpu
389
390// ==========================================================================
391// Wrapper
392// ==========================================================================
393
394namespace hmap::gpu
395{
396
400// clang-format off
418// clang-format on
419
439Array local_metrics(const Array &array, int ir, LocalMetrics metric);
440
441} // namespace hmap::gpu
Declaration of the Array class for 2D floating-point arrays with various mathematical operations and ...
Array class, helper to manipulate 2D float array with "(i, j)" indexing.
Definition array.hpp:32
Definition blending.hpp:186
Array local_median_deviation(const Array &array, int ir)
See hmap::local_median_deviation.
Definition local_metrics_gpu.cpp:77
Array local_metrics(const Array &array, int ir, LocalMetrics metric)
Compute a local metric on the input array using a square neighborhood.
Definition local_metrics_wrapper.cpp:11
Array local_aspect_variance(const Array &array, int ir)
Compute the average local aspect variance of an array.
Definition local_metrics_gpu.cpp:13
Array relative_elevation(const Array &array, int ir)
See hmap::relative_elevation.
Definition local_metrics_gpu.cpp:156
Array local_max(const Array &array, int ir)
Compute the local maximum using a disk kernel.
Definition local_metrics_gpu.cpp:19
Array valley_width(const Array &z, int ir=0, bool ridge_select=false)
See hmap::valley_width.
Definition valley_width.cpp:33
Array local_min(const Array &array, int ir)
Compute the local minimum using a disk kernel.
Definition local_metrics_gpu.cpp:59
Array local_relief(const Array &array, int ir)
Compute the local relief of an array.
Definition local_metrics_gpu.cpp:84
Array ruggedness(const Array &array, int ir)
See hmap::ruggedness.
Definition local_metrics_gpu.cpp:178
Array local_mean(const Array &array, int ir)
See hmap::local_mean.
Definition local_metrics_gpu.cpp:37
Array topographic_position_index(const Array &array, int ir)
Compute the Topographic Position Index (TPI).
Definition local_metrics_gpu.cpp:229
Array local_skewness(const Array &array, int ir)
Definition local_metrics_gpu.cpp:102
Array rugosity(const Array &z, int ir, bool convex=true)
See hmap::rugosity.
Definition local_metrics_gpu.cpp:195
LocalMetrics
Types of local metrics.
Definition local_metrics.hpp:402
@ LM_LOCAL_MIN
Local minimum value.
Definition local_metrics.hpp:406
@ LM_RELATIVE_ELEVATION
Normalized elevation.
Definition local_metrics.hpp:413
@ LM_RUGGEDNESS
Measure of terrain roughness.
Definition local_metrics.hpp:414
@ LM_LOCAL_RELIEF
Diff. between local max & min.
Definition local_metrics.hpp:407
@ LM_LOCAL_ASPECT_VARIANCE
Variance of local slope directions.
Definition local_metrics.hpp:403
@ LM_LOCAL_Z_SCORE
Standardized value.
Definition local_metrics.hpp:411
@ LM_RUGOSITY_CONCAVE
Roughness of concave features.
Definition local_metrics.hpp:415
@ LM_TOPOGRAPHIC_POSITION_INDEX
Topographic index.
Definition local_metrics.hpp:412
@ LM_LOCAL_MAX
Local maximum value.
Definition local_metrics.hpp:404
@ LM_LOCAL_VARIANCE
Variance of local values.
Definition local_metrics.hpp:408
@ LM_RUGOSITY_CONVEX
Roughness of convex features.
Definition local_metrics.hpp:416
@ LM_LOCAL_MEAN
Mean of local values.
Definition local_metrics.hpp:409
@ LM_LOCAL_MEDIAN_DEVIATION
Deviation from local median.
Definition local_metrics.hpp:405
@ LM_LOCAL_SKEWNESS
Skewness.
Definition local_metrics.hpp:410
Array local_z_score(const Array &array, int ir)
Compute the local z-score of an array.
Definition local_metrics_gpu.cpp:138
Array relative_elevation_square_kernel(const Array &array, int ir)
See hmap::relative_elevation.
Definition local_metrics_gpu.cpp:167
Array local_variance(const Array &array, int ir)
Compute the average local variance of an array.
Definition local_metrics_gpu.cpp:120
Definition algebra.hpp:23
Array rugosity(const Array &z, int ir, bool convex=true)
Estimates the rugosity of a surface by analyzing the skewness of the elevation data,...
Definition local_metrics.cpp:116
Array relative_elevation(const Array &array, int ir)
Calculates the relative elevation within a specified radius, helping to identify local highs and lows...
Definition local_metrics.cpp:78
Array local_median_deviation(const Array &array, int ir)
Computes the local median deviation of a 2D array.
Definition local_metrics.cpp:71
Array local_min(const Array &array, int ir)
Return the local minima based on a maximum filter with a square kernel.
Definition local_metrics.cpp:66
Array valley_width(const Array &z, int ir=0, bool ridge_select=false)
Measures the valley width by calculating the distance from each point in a concave region to the fron...
Definition valley_width.cpp:16
Array local_mean(const Array &array, int ir)
Return the local mean based on a mean filter with a square kernel.
Definition local_metrics.cpp:52
Array local_max(const Array &array, int ir)
Return the local maxima based on a maximum filter with a square kernel.
Definition local_metrics.cpp:15
Array ruggedness(const Array &array, int ir)
Computes the ruggedness of each element in the input array.
Definition local_metrics.cpp:89