Conrecはこれを行います。もともとはFortranで書かれていたため、何度か移植されています。
私がnode.jsで作業しているライブラリturfは、このアルゴリズムを使用して、ポイントベクトルデータに基づいてこれらの輪郭を作成します。これを行うスクリプトは非常に単純で、基本的に次のようになります。
var t = require('turf')
var fs = require('fs')
var z = 'elevation'
var resolution = 15
var breaks = [.1, 22, 45, 55, 65, 85, 95, 105, 120, 180]
t.load('./path/to/points.geojson', function(err, points){
t.contour(points, z, resolution, breaks, function(err, contours){
if(err) throw err
fs.writeFileSync('.path/to/output.geojson', contours)
})
})
特定の休憩がない場合は、ジャンク自然休憩を生成することもできます。
var t = require('turf')
var propertyName = 'elevation'
var num = 10
t.load('./path/to/points.geojson', function(err, pts){
if(err) throw err
t.jenks(pts, 'elevation', num, function(err, breaks){
if(err) throw err
console.log(breaks) // [ 11, 12, 18, 25, 29, 41, 50, 55, 76, 90, 143 ]
})
})