JS/WASM library to compute isolines and isobands (using marching squares algorithm)
npm install contour-wasmContour
and contour-isobands rust crates,
compiled to WebAssembly, for use in the browser.
This module exposes two functions:
- isobands(data, width, height, intervals[, options])
- isolines(data, width, height, intervals[, options])
With default values
``js
import * as contours from 'contour-wasm';
const data = [
0, 0, 0, 0,
0, 2, 2, 0,
0, 2, 2, 0,
0, 0, 0, 0,
];
const result = contours.isobands(data, 4, 4, [0, 1.5]);
`
With options
`js
import * as contours from 'contour-wasm';
const data = [
0, 0, 0, 0,
0, 2, 2, 0,
0, 2, 2, 0,
0, 0, 0, 0,
];
const options = {
use_quad_tree: false, // default: true
x_origin: 22.5, // default: 0
y_origin: 22.5, // default: 0
x_step: 45, // default: 1
y_step: -45, // default: 1
}
const result = contours.isobands(data, 4, 4, [0, 1.5], options);
`
With default values
`js
import * as contours from 'contour-wasm';
const data = [
0, 0, 0, 0,
0, 2, 2, 0,
0, 2, 2, 0,
0, 0, 0, 0,
];
const result = contours.isolines(data, 4, 4, [0, 1.5]);
`
With options
`js
import * as contours from 'contour-wasm';
const data = [
0, 0, 0, 0,
0, 2, 2, 0,
0, 2, 2, 0,
0, 0, 0, 0,
];
const options = {
x_origin: 22.5, // default: 0
y_origin: 22.5, // default: 0
x_step: 45, // default: 1
y_step: -45, // default: 1
}
const result = contours.isolines(data, 4, 4, [0, 1.5], options);
`
Performance of isobands function from this module compared to MarchingSquaresJS.isoBands
(which is also the package used internally by turf-isobands).
| Data size (number of points) | Number of intervals | MarchingSquares.js | contour-wasm |
|------------------------------|---------------------|--------------------|--------------|
| 5307 | 23 | 16ms | 12ms |
| 17608 | 15 | 25ms | 15ms |
| 336960 | 14 | 369ms | 186ms |
| 1010880 | 14 | 832ms | 492ms |
`bash`
npm install contour-wasm
> Only for developers. Otherwise, you can use the npm package.
`bash`
wasm-pack build
`bash`
wasm-pack test --headless --firefox
`bash``
wasm-pack publish
Demonstration page is available at https://mthh.github.io/contour-wasm/.