Contour 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
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
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
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
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 |
npm install contour-wasmOnly for developers. Otherwise, you can use the npm package.
wasm-pack buildwasm-pack test --headless --firefoxwasm-pack publishDemonstration page is available at https://mthh.github.io/contour-wasm/.