mapLayers["stateFuels"] = map.select("#stateFuels")
.selectAll("g")
.data(usstateCentroids)
.join("g")
.each((d,i,nodes) => {
let stateAbbr = usStateCodes.find(c => c.NAME == d.name).ABBR;
let location = projection([d.lon,d.lat]);
let sizeRadius = rFromArea(stateGenTotals.get(stateAbbr)) * 0.004;
let sizeDiameter = sizeRadius * 2;
let svgX = location[0]-sizeRadius;
let svgY = location[1]-sizeRadius;
let svgCoords = svgX + "," + svgY;
let stateFuels = d3.rollups(powerplants_2021.filter(d=>d["Plant state abbreviation"]==stateAbbr), v => d3.sum(v, d => toNum(d["Plant annual net generation (MWh)"])), d => d["Plant state abbreviation"], d => d["Plant primary fuel category"]);;
let stateFuelsLayoutHierarchy = layoutChildren("pp", stateFuels);
let nodeElem = d3.select(nodes[i]);
dvPackCircles(nodeElem, stateFuelsLayoutHierarchy, sizeDiameter, sizeDiameter,'', {classField: "Plant primary fuel generation category"});
nodeElem.attr("transform", "translate(" + svgCoords + ")");
})