Published
Edited
Sep 16, 2019
10 stars
Hello, A5Chandrupatla’s root-finding methodSidi’s root-finding methodRegular numbersDruidJS workerNatural breaksDistance to a segmentRay out of a convex hullWord Tour: 40k words and their friendsHello, @thi.ng/grid-iteratorsHead/tail breaksPseudo-blue noise shaderHow fast does walk-on-spheres converge?AoC 12: shortest path under constraintsKDE estimationPlot: Correlation heatmapPoisson Finish 2Poisson disk sampling functionsWoS with transportSimple and surprising sortLocal medianTime series topological subsamplingUnion-FindLevel set experiment 1Mean value coordinatesPoisson potentialMiddle-squareWorld of squares (spherical)World of squaresLargest Inscribed SquareHello, PyWaveletsGeothmetic meandianHello, Reorder.jsGeometric MedianImage FFTTransport to a mapDisc TransportTP3: Power Diagram and Semi-Discrete Optimal TransportThe blue waveHello, genetic-jsSliced Optimal TransportDruidJSSelf-Organizing Maps meet DelaunayHello, polygon-clippingseedrandom, minimalWalk on Spheres 2Walk on SpheresHello, AutoencoderKaprekar’s numberVoronoiMap2DHello, ccwt.jsPolygon TriangulationQuantile.invert?Linear congruential generatorHue blurNeedle in a haystackMoving average blurApollo 11 implementation of trigonometric functions, by Margaret H. Hamilton (march 1969)2D curves intersectionThe 2D approximate Newton-Raphson methodInverting Lee’s Tetrahedral projectionLinde–Buzo–Gray stipplingMean shift clustering with kd-tree2D point distributionsShortest pathKahan SummationHello, delatinDijkstra’s algorithm in gpu.jsLloyd’s relaxation on a graphManhattan DiameterManhattan VoronoiMobility landscapes — an introductionDijkstra’s shortest-path treeH3 odditiesProtein MatrixConvex Spectral WeightsSort stuff by similarity
Kriging
Delaunay.findTrianglen-dimensions binning?Travelling with a self-organizing mapUMAP-o-MaticMNIST & UMAP-jsHello UMAP-jsMean shift clusteringLevenshtein transitionRd quasi-random sequencesAutomated label placement (countries)Phyllotaxis explainedMotionrugsPlanar hull (Andrew’s monotone chain algorithm)South Africa’s medial axisTravelling salesperson approximation with t-SNEDistance to shoreWorkerngraph: pagerank, louvain…t-SNE VoronoiCloud ContoursCircular function drawingKruskal MazeMyceliumTravelling salesperson approximation on the globe, with t-SNEtsne.jstsne.js & worker
Also listed in…
Geo
Interpolation
Insert cell
Insert cell
kriging = require("@sakitam-gis/kriging@0.1")
Insert cell
Insert cell
data = {
const n = 300,
t = new Float32Array(n),
x = new Float32Array(n),
y = new Float32Array(n);

for (let i = 0; i < n; i++) {
x[i] = -180 + Math.random() * 360;
y[i] = 90 * (Math.random() - Math.random());
t[i] =
(d3.geoContains(land, [x[i], y[i]]) ? 1 : -1) * (0.05 + Math.random());
}

return { t, x, y };
}
Insert cell
Insert cell
variogram = kriging.train(data.t, data.x, data.y, "exponential", 0, 10)
Insert cell
Insert cell
map = {
const context = DOM.context2d(width, height),
path = d3.geoPath(projection).context(context);

context.save();
context.beginPath();
path({ type: "Sphere" });
context.clip();

for (let x = 0; x < width; x += 5) {
for (let y = 0; y < height; y += 5) {
const p = projection.invert([x - 0.5, y - 0.5]);
context.fillStyle = color(kriging.predict(...p, variogram));
context.fillRect(x, y, 10, 10);
}
}

context.restore();
context.beginPath();
path(land);
context.stroke();

context.beginPath();
path.pointRadius(1.5);
context.fillStyle = "white";
path({ type: "MultiPoint", coordinates: d3.zip(data.x, data.y) });
context.fill();

context.beginPath();
path({ type: "Sphere" });
context.stroke();

return context.canvas;
}
Insert cell
projection = d3.geoEqualEarth()
Insert cell
height = 500
Insert cell
color = d3.scaleSequential(d3.interpolateRdBu).domain([1, -1])
Insert cell
d3 = require("d3@5")
Insert cell
land = d3.json(
"https://unpkg.com/visionscarto-world-atlas@0.0.6/world/110m_land.geojson"
)
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more