StreamingLowess API
See also: fastLowess
When to Use
Section titled “When to Use”- Dataset >100,000 points
- Memory-constrained environments
- Batch processing pipelines
StreamingLowess
Section titled “StreamingLowess”The StreamingLowess class processes data in chunks, suitable for very large datasets or streaming applications.
Constructor:
const { StreamingLowess } = require('fastlowess-wasm');
const stream = new StreamingLowess({ fraction: 0.5 }, { chunk_size: 50, overlap: 10 });console.log("typeof process_chunk:", typeof stream.process_chunk);typeof process_chunk: functionoptions: An object containingLowessOptionsfields.streamingOptions: An object containingStreamingOptionsfields.
Methods:
const { StreamingLowess } = require('fastlowess-wasm');
const n = 100;const x = Float64Array.from({ length: n }, (_, i) => i * 2 * Math.PI / (n - 1));const y = Float64Array.from(x, xi => Math.sin(xi) + 0.1);
const stream = new StreamingLowess({ fraction: 0.5 }, { chunk_size: 50, overlap: 10 });const partialResult = stream.process_chunk(x.slice(0, 50), y.slice(0, 50));console.log("Fraction used:", partialResult.fraction_used);Fraction used: 0.5- Processes a chunk of data. Returns partial results.
const { StreamingLowess } = require('fastlowess-wasm');
const n = 100;const x = Float64Array.from({ length: n }, (_, i) => i * 2 * Math.PI / (n - 1));const y = Float64Array.from(x, xi => Math.sin(xi) + 0.1);
const stream = new StreamingLowess({ fraction: 0.5 }, { chunk_size: 50, overlap: 10 });stream.process_chunk(x.slice(0, 50), y.slice(0, 50));stream.process_chunk(x.slice(50), y.slice(50));const finalResult = stream.finalize();console.log("Fraction used:", finalResult.fraction_used);Fraction used: 0.5- Finalizes the smoothing process and returns any remaining buffered results.
Result Structure
Section titled “Result Structure”LowessResult
Section titled “LowessResult”Returned by process_chunk() and finalize().
| Field | Type | Description |
|---|---|---|
x | Float64Array | Sorted x values |
y | Float64Array | Smoothed y values |
fraction_used | number | Fraction used |
iterations_used | number | undefined | Robustness iterations actually performed |
residuals | Float64Array | undefined | Residuals (if return_residuals) |
robustness_weights | Float64Array | undefined | Robustness weights (if return_robustness_weights) |
diagnostics | Diagnostics | undefined | Fit metrics (if return_diagnostics) |
dimensions | number | Number of predictor dimensions |
See wasm.md for the full LowessResult field reference.
Options Structure
Section titled “Options Structure”StreamingOptions (inherits LowessOptions)
Section titled “StreamingOptions (inherits LowessOptions)”| Field | Type | Default | Description |
|---|---|---|---|
chunk_size | number | 5000 | Data chunk size |
overlap | number | 500 | Overlap between chunks |
merge_strategy | string | "weighted_average" | Strategy for blending overlap regions |
Options
Section titled “Options”merge_strategy
Section titled “merge_strategy”See: Merge Strategies
| Strategy | Alias | Behavior |
|---|---|---|
"weighted_average" (default) | "weighted" | Distance-weighted blend |
"average" | "mean" | Average overlapping values |
"take_first" | "first" | Keep left chunk values |
"take_last" | "last" | Keep right chunk values |