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
29Array path_length_to_outlet(const Array &z);
30
44Array path_length_to_sink(const Array &z);
45
68Array local_max(const Array &array, int ir);
69
97Array local_median_deviation(const Array &array, int ir);
98
121Array local_min(const Array &array, int ir);
122
146Array local_mean(const Array &array, int ir);
147
173Array relative_elevation(const Array &array, int ir);
174
196Array ruggedness(const Array &array, int ir);
197
222Array rugosity(const Array &z, int ir, bool convex = true);
223
258Array valley_width(const Array &z, int ir = 0, bool ridge_select = false);
259
260} // namespace hmap
261
262namespace hmap::gpu
263{
264
278Array local_aspect_variance(const Array &array, int ir);
279
296Array local_max(const Array &array, int ir);
297
299Array local_median_deviation(const Array &array, int ir);
300
317Array local_min(const Array &array, int ir);
318
341Array local_relief(const Array &array, int ir);
342
360Array local_variance(const Array &array, int ir);
361
363Array local_mean(const Array &array, int ir);
364
365Array local_skewness(const Array &array, int ir);
366
383Array local_z_score(const Array &array, int ir);
384
401Array topographic_position_index(const Array &array, int ir);
402
404Array relative_elevation(const Array &array, int ir);
405
407Array relative_elevation_square_kernel(const Array &array, int ir);
408
410Array ruggedness(const Array &array, int ir);
411
413Array rugosity(const Array &z, int ir, bool convex = true);
414
416Array valley_width(const Array &z, int ir = 0, bool ridge_select = false);
417
418} // namespace hmap::gpu
419
420// ==========================================================================
421// Wrapper
422// ==========================================================================
423
424namespace hmap::gpu
425{
426
430// clang-format off
448// clang-format on
449
469Array local_metrics(const Array &array, int ir, LocalMetrics metric);
470
471} // 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:225
Array local_median_deviation(const Array &array, int ir)
See hmap::local_median_deviation.
Definition local_metrics_gpu.cpp:91
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:10
Array local_aspect_variance(const Array &array, int ir)
Compute the average local aspect variance of an array.
Definition local_metrics_gpu.cpp:19
Array relative_elevation(const Array &array, int ir)
See hmap::relative_elevation.
Definition local_metrics_gpu.cpp:180
Array local_max(const Array &array, int ir)
Compute the local maximum using a disk kernel.
Definition local_metrics_gpu.cpp:27
Array valley_width(const Array &z, int ir=0, bool ridge_select=false)
See hmap::valley_width.
Definition valley_width.cpp:31
Array local_min(const Array &array, int ir)
Compute the local minimum using a disk kernel.
Definition local_metrics_gpu.cpp:71
Array local_relief(const Array &array, int ir)
Compute the local relief of an array.
Definition local_metrics_gpu.cpp:100
Array ruggedness(const Array &array, int ir)
See hmap::ruggedness.
Definition local_metrics_gpu.cpp:200
Array local_mean(const Array &array, int ir)
See hmap::local_mean.
Definition local_metrics_gpu.cpp:47
Array topographic_position_index(const Array &array, int ir)
Compute the Topographic Position Index (TPI).
Definition local_metrics_gpu.cpp:255
Array local_skewness(const Array &array, int ir)
Definition local_metrics_gpu.cpp:120
Array rugosity(const Array &z, int ir, bool convex=true)
See hmap::rugosity.
Definition local_metrics_gpu.cpp:219
LocalMetrics
Types of local metrics.
Definition local_metrics.hpp:432
@ LM_LOCAL_MIN
Local minimum value.
Definition local_metrics.hpp:436
@ LM_RELATIVE_ELEVATION
Normalized elevation.
Definition local_metrics.hpp:443
@ LM_RUGGEDNESS
Measure of terrain roughness.
Definition local_metrics.hpp:444
@ LM_LOCAL_RELIEF
Diff. between local max & min.
Definition local_metrics.hpp:437
@ LM_LOCAL_ASPECT_VARIANCE
Variance of local slope directions.
Definition local_metrics.hpp:433
@ LM_LOCAL_Z_SCORE
Standardized value.
Definition local_metrics.hpp:441
@ LM_RUGOSITY_CONCAVE
Roughness of concave features.
Definition local_metrics.hpp:445
@ LM_TOPOGRAPHIC_POSITION_INDEX
Topographic index.
Definition local_metrics.hpp:442
@ LM_LOCAL_MAX
Local maximum value.
Definition local_metrics.hpp:434
@ LM_LOCAL_VARIANCE
Variance of local values.
Definition local_metrics.hpp:438
@ LM_RUGOSITY_CONVEX
Roughness of convex features.
Definition local_metrics.hpp:446
@ LM_LOCAL_MEAN
Mean of local values.
Definition local_metrics.hpp:439
@ LM_LOCAL_MEDIAN_DEVIATION
Deviation from local median.
Definition local_metrics.hpp:435
@ LM_LOCAL_SKEWNESS
Skewness.
Definition local_metrics.hpp:440
Array local_z_score(const Array &array, int ir)
Compute the local z-score of an array.
Definition local_metrics_gpu.cpp:160
Array relative_elevation_square_kernel(const Array &array, int ir)
See hmap::relative_elevation.
Definition local_metrics_gpu.cpp:190
Array local_variance(const Array &array, int ir)
Compute the average local variance of an array.
Definition local_metrics_gpu.cpp:140
Definition algebra.hpp:23
Array path_length_to_outlet(const Array &z)
Computes the downstream path length to the domain outlet.
Definition path_length_to_sink.cpp:12
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:158
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:119
Array local_median_deviation(const Array &array, int ir)
Computes the local median deviation of a 2D array.
Definition local_metrics.cpp:110
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:103
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:12
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:87
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:20
Array ruggedness(const Array &array, int ir)
Computes the ruggedness of each element in the input array.
Definition local_metrics.cpp:129
Array path_length_to_sink(const Array &z)
Computes the downstream path length to the nearest sink.
Definition path_length_to_sink.cpp:106