Skip to main content

Module scale

Module scale 

Source
Expand description

Data scaling and value normalization for visualization.

This module provides methods for mapping raw data values to normalized [0.0, 1.0] range for colormap sampling. It supports multiple scaling strategies:

  • Linear: Direct linear mapping (val - min) / (max - min)
  • Logarithmic: log(val / min) / log(max / min) for positive data with wide dynamic range
  • SymLog: Symmetric logarithm for data containing both positive and negative values
  • Asinh: Inverse hyperbolic sine for data with wide dynamic range
  • Histogram Equalization: Perceptual stretching using histogram distribution

§Handling Invalid Data

The NegMode enum controls treatment of masked/invalid pixels:

§Examples

use map2fig::scale::{scale_value, Scale};
use map2fig::NegMode;

let scaled = scale_value(5.0, 0.0, 10.0, Scale::Linear, NegMode::Zero, None, None);
// Result: PixelValue::Color(0.5)

Structs§

HistogramScale
ScaleCache
Pre-computed scale transformation constants to avoid per-pixel recomputation.

Enums§

HistogramRange
Scale

Functions§

build_histogram_scale
generate_colorbar_ticks
scale_value
unsafe_float_cmp
Direct float comparison using std::cmp for faster sorting. This avoids the NaN check overhead since data is pre-validated.
validate_scale_config
Validate scaling configuration parameters.