newmana / chroma-elm / Chroma.Limits.Jenks

Jenks natural breaks optimization is a clustering algorithm scheme for data to reduce the variance within classes and maximize the variance between classes.

Definition

binned : Basics.Int -> Chroma.Limits.Analyze.Scale -> List.Nonempty.Nonempty (Array Basics.Float)

Return the values in Scale into the given number of bins.

Analyze.analyze (Nonempty.Nonempty 3 [1,3,4,3])
|> binned 3
-->  Nonempty.Nonempty [1] [[3,3,3], [4]]

limit : Basics.Int -> Chroma.Limits.Analyze.Scale -> List.Nonempty.Nonempty Basics.Float

Create bins number of results using the given scale.

Analyze.analyze (Nonempty.Nonempty 3 [1,3,4,3])
|> limit 3
-->  Nonempty.Nonempty 1 [3,4]

Helpers

initVarianceCombinations : Basics.Int -> Basics.Int -> Basics.Int -> Basics.Int -> Basics.Float

TBD

initLowerClassLimits : Basics.Int -> Basics.Int -> Basics.Int -> Basics.Int

TBD

getMatrix : Basics.Int -> Chroma.Limits.Analyze.Scale -> ( Basics.Int, JenksResult )

TBD


type alias JenksResult =
{ lowerClassLimits : Array (Array Basics.Int)
, varianceCombinations : Array (Array Basics.Float) 
}

TBD