{
let width = 960;
let height = 600;
let svg = d3.select(DOM.svg(width, height));
let g = svg.append("g");
const OPTbyMSA = {};
opt.forEach(d => (OPTbyMSA[d["Metro area"]] = +d["Total number who worked in area following school"]));
g.selectAll("path")
.data(topojson.feature(us, us.objects.msa).features)
.enter().append("path")
.attr("d", path)
.style("fill", d => colorScale(OPTbyMSA[d.properties.name]))
.style("stroke", "white")
.on("mouseover", d => tooltip.style("visibility", "visible").text(d.properties.name + " " + OPTbyMSA[d.properties.name]))
.on("mousemove", d => tooltip.style("top", (d3.event.pageY-10)+"px").style("left",(d3.event.pageX+10)+"px").html(d.properties.name + " " + OPTbyMSA[d.properties.name]))
.on("mouseout", d => tooltip.style("visibility", "hidden"));
g.append("path")
.datum(topojson.mesh(us, us.objects.states, (a, b) => a !== b))
.attr("fill", "none")
.attr("stroke", "black")
.attr("d", path);
return svg.node();
}