{
let canvas = d3.create("canvas").node()
canvas.width = width
canvas.height = height
let ctx = canvas.getContext("2d")
let path = d3.geoPath(projection)
.context(ctx)
ctx.strokeStyle = "black"
ctx.beginPath()
path(states)
ctx.stroke()
let i, p
for(i = 0; i < smokes.length; i++) {
if(smokes[i] < 0.0001) continue;
p = projection([lons[i], lats[i]])
if(!p) continue;
ctx.fillStyle = color(smokes[i])
ctx.fillRect(p[0], p[1], 1, 1)
}
return canvas
}