deathsByRegion = [ {region:"East Asia",rate:62,source:"Coal plants, vehicles, industry"}, {region:"South Asia",rate:58,source:"Vehicles, brick kilns, coal"}, {region:"Eastern Europe",rate:45,source:"Coal, vehicles, industry"}, {region:"Sub-Saharan Africa",rate:38,source:"Vehicles, generators"}, {region:"Western Europe",rate:25,source:"Vehicles, industry"}, {region:"North America",rate:18,source:"Vehicles, power plants"}]Plot.plot({title:"Deaths from Outdoor Air Pollution (per 100,000 people)",subtitle:"Why are some regions hit so much harder?",width:750,height:380,marginLeft:140,x: {label:"Deaths per 100,000",domain: [0,70]},y: {label:null},color: {scheme:"OrRd",legend:false},marks: [ Plot.barX(deathsByRegion, {y:"region",x:"rate",fill:"rate",sort: {y:"-x"},tip:true}), Plot.text(deathsByRegion, {y:"region",x:"rate",text: d =>`${d.rate}`,dx:12,fontSize:14,fontWeight:"bold" }), Plot.ruleX([0]) ]})
34.1.2 📝 Analyze the Data
Look at the chart above. In your notebook:
Which region has the highest death rate from air pollution? Which has the lowest?
East Asia’s rate is about 3.4 times higher than North America’s. What might explain that difference?
What additional data would help you understand why these rates differ so much?
How might income, energy sources, and regulations play a role?
35 Explore 1: Why Does France Have Fewer Deaths Than the US?
35.1 🔬 Investigation: Two Countries, Very Different Outcomes
France and the United States are both wealthy, developed countries. But they have very different energy systems — and very different rates of air pollution deaths. Your job: figure out why.
35.2 The Evidence
Code
energyData = [ {source:"Nuclear",france:70,us:19}, {source:"Natural Gas",france:4,us:40}, {source:"Coal",france:1,us:19}, {source:"Wind",france:8,us:10}, {source:"Hydro",france:12,us:6}, {source:"Solar",france:4,us:4}, {source:"Other",france:1,us:2}]energyLong = energyData.flatMap(d => [ {source: d.source,country:"France",pct: d.france}, {source: d.source,country:"United States",pct: d.us}])Plot.plot({title:"Electricity Generation by Source (%)",subtitle:"France vs. United States — spot the key difference",width:750,height:400,marginLeft:10,fx: {label:null},x: {label:null,axis:null},y: {label:"Percentage of Electricity",domain: [0,75]},color: {domain: ["Nuclear","Natural Gas","Coal","Wind","Hydro","Solar","Other"],range: ["#6c5ce7","#e17055","#2d3436","#00b894","#0984e3","#fdcb6e","#b2bec3"],legend:true },marks: [ Plot.barY(energyLong, {fx:"country",x:"source",y:"pct",fill:"source",tip:true}), Plot.text(energyLong, {fx:"country",x:"source",y:"pct",text: d => d.pct>3?`${d.pct}%`:"",dy:-8,fontSize:11,fontWeight:"bold" }), Plot.ruleY([0]) ]})
35.3 Health Outcomes: Side by Side
Code
healthComparison = [ {metric:"Deaths from air pollution\n(per 100,000)",france:17,us:26,unit:"deaths"}, {metric:"Average PM2.5\n(μg/m³)",france:11,us:15,unit:"μg/m³"}, {metric:"CO₂ per person\n(tons/year)",france:4.5,us:14.7,unit:"tons"}, {metric:"Healthcare costs\nfrom air pollution ($/person)",france:380,us:890,unit:"$"}]healthLong = healthComparison.flatMap(d => [ {metric: d.metric,country:"France",value: d.france}, {metric: d.metric,country:"United States",value: d.us}])Plot.plot({title:"Health & Emissions Comparison: France vs. US",subtitle:"Cleaner energy → healthier people",width:750,height:400,marginLeft:180,fx: {label:null},color: {domain: ["France","United States"],range: ["#0984e3","#e17055"],legend:true },marks: [ Plot.barX(healthLong, {y:"metric",x:"value",fill:"country",fx:"country",tip:true}), Plot.text(healthLong, {y:"metric",x:"value",text: d =>`${d.value}`,dx:12,fontSize:12,fontWeight:"bold" }), Plot.ruleX([0]) ]})
35.3.1 📝 Investigate the Evidence
What percentage of France’s electricity comes from sources that produce zero direct air pollution? What about the US?
If the US had France’s air pollution death rate (17 per 100,000 instead of 26), how many lives would be saved per year? (US population ≈ 330 million)
What’s the biggest difference between the two countries’ energy systems?
France built most of its nuclear plants in the 1970s–80s after the oil crisis. What does that tell you about the role of policy decisions in shaping energy systems?
Nuclear power has zero air pollution but involves other trade-offs (waste, safety). What are those trade-offs?
35.3.2 💡 Key Concept: Energy Choices = Health Outcomes
France and the US have similar levels of wealth, technology, and development. The main difference is how they generate electricity. France chose nuclear + renewables. The US relied more on fossil fuels. The result: the US has significantly higher rates of air pollution deaths.
The takeaway: The health impacts of fossil fuels aren’t inevitable. They’re the result of choices — and different choices lead to different outcomes.
36 Explain 1: Can We Apply France’s Approach to the US?
36.1 🧠 Refining a Solution
France’s clean energy system saves lives. But you can’t just copy-paste it onto the US. The two countries have different geography, politics, economics, and public attitudes. Your job: adapt the solution to work in the US context.
36.2 The Constraints Are Different
Factor
France
United States
Size
248,573 sq mi
3.8 million sq mi
Population
Concentrated in cities
More spread out, suburban
Grid
Centralized, nuclear-heavy
Decentralized, mix of utilities
Politics
Strong central government
Federal/state power split
Fossil fuel reserves
Limited
Abundant (creates economic pressure to use them)
Public opinion on nuclear
Generally accepting
Mixed — many people are nervous about it
36.2.1 📝 Design Your Solution
Adapt France’s approach for the US. Consider:
Where could clean energy be most effectively deployed in the US?
What modifications would be needed given the US is 15× larger?
How would you handle the political and economic challenges?
Rate your refined solution:
Criterion
Score (1–5)
Your Evidence/Reasoning
Effectiveness at reducing emissions
Feasibility in the US
Cost-effectiveness
Timeline for implementation
Political/social acceptability
Co-benefits (jobs, energy security)
37 Explore 2: The Carbon Cycle — Disrupted
37.1 🔬 How Burning Fossil Fuels Breaks a Billion-Year Balance
Carbon has been cycling through Earth’s systems for billions of years. Burning fossil fuels is disrupting that balance in ways that cascade through every Earth system.
37.2 Where Carbon Lives — and How It Moves
Code
carbonReservoirs = [ {reservoir:"Sedimentary Rocks",storage:100000000,color:"#636e72"}, {reservoir:"Deep Ocean",storage:37000,color:"#0984e3"}, {reservoir:"Fossil Fuels",storage:4000,color:"#2d3436"}, {reservoir:"Terrestrial Biosphere",storage:2000,color:"#00b894"}, {reservoir:"Soil",storage:1500,color:"#e17055"}, {reservoir:"Ocean Surface",storage:900,color:"#74b9ff"}, {reservoir:"Atmosphere",storage:850,color:"#fdcb6e"}]Plot.plot({title:"Carbon Reservoirs (Gigatons of Carbon)",subtitle:"Most of Earth's carbon is locked in rocks — but the atmosphere is the most sensitive reservoir",width:750,height:380,marginLeft:160,x: {label:"Gigatons of Carbon (log scale)",type:"log"},y: {label:null},marks: [ Plot.barX(carbonReservoirs, {y:"reservoir",x:"storage",fill:"color",sort: {y:"-x"},tip:true}), Plot.text(carbonReservoirs, {y:"reservoir",x:"storage",text: d => d.storage>=1000?`${(d.storage).toLocaleString()} Gt C`:`${d.storage} Gt C`,dx:5,textAnchor:"start",fontSize:11,fontWeight:"bold" }), Plot.ruleX([1]) ]})
37.3 The Balance Is Broken
Use the slider below to see how human fossil fuel burning tips the carbon cycle out of balance:
{// Natural fluxes stay roughly the same; human emissions add to one sideconst naturalIn =210;// photosynthesis (120) + ocean absorption (90)const naturalOut =210;// respiration/decomp (120) + ocean release (90)const humanIn = fossilBurning +1.5;// fossil fuels + deforestation + cementconst totalIn = naturalOut + humanIn;// total going INTO atmosphereconst totalOut = naturalIn + (fossilBurning *0.25);// oceans/land absorb ~25% extra eachconst netImbalance = totalIn - totalOut;const co2ppm =280+ (fossilBurning *14);// rough approximationconst width =750;const height =400;const svg = d3.create("svg").attr("width", width).attr("height", height); svg.append("rect").attr("width", width).attr("height", height).attr("fill","#f0f4ff").attr("rx",12);// Title svg.append("text").attr("x", width/2).attr("y",25).attr("text-anchor","middle").attr("font-size",16).attr("font-weight","bold").text("Annual Carbon Flows Into & Out of the Atmosphere");// Atmosphere box svg.append("rect").attr("x",200).attr("y",140).attr("width",350).attr("height",80).attr("fill", co2ppm >400?"#ff7675": co2ppm >350?"#fdcb6e":"#55efc4").attr("rx",15).attr("stroke","#2d3436").attr("stroke-width",2); svg.append("text").attr("x",375).attr("y",170).attr("text-anchor","middle").attr("font-size",18).attr("font-weight","bold").text(`🌍 ATMOSPHERE`); svg.append("text").attr("x",375).attr("y",195).attr("text-anchor","middle").attr("font-size",14).text(`≈ ${co2ppm.toFixed(0)} ppm CO₂`);// Arrows IN (going into atmosphere) svg.append("text").attr("x",120).attr("y",60).attr("text-anchor","middle").attr("font-size",12).attr("font-weight","bold").text("Carbon RELEASED"); svg.append("text").attr("x",120).attr("y",78).attr("text-anchor","middle").attr("font-size",11).text(`Natural: ${naturalOut} Gt/yr`); svg.append("text").attr("x",120).attr("y",95).attr("text-anchor","middle").attr("font-size",11).attr("fill","#d63031").attr("font-weight","bold").text(`Human: +${humanIn.toFixed(1)} Gt/yr`); svg.append("line").attr("x1",120).attr("y1",105).attr("x2",270).attr("y2",145).attr("stroke","#d63031").attr("stroke-width",Math.max(2, humanIn/2)).attr("marker-end","url(#arrow)");// Arrows OUT (absorbed from atmosphere) svg.append("text").attr("x",630).attr("y",60).attr("text-anchor","middle").attr("font-size",12).attr("font-weight","bold").text("Carbon ABSORBED"); svg.append("text").attr("x",630).attr("y",78).attr("text-anchor","middle").attr("font-size",11).text(`Natural: ${naturalIn} Gt/yr`); svg.append("text").attr("x",630).attr("y",95).attr("text-anchor","middle").attr("font-size",11).attr("fill","#00b894").text(`Extra sink: +${(fossilBurning *0.5).toFixed(1)} Gt/yr`); svg.append("line").attr("x1",480).attr("y1",145).attr("x2",630).attr("y2",105).attr("stroke","#00b894").attr("stroke-width",3).attr("marker-end","url(#arrowG)");// Net imbalanceconst imbalanceColor = netImbalance >0.5?"#d63031":"#00b894"; svg.append("rect").attr("x",175).attr("y",260).attr("width",400).attr("height",60).attr("fill", imbalanceColor).attr("rx",12).attr("opacity",0.9); svg.append("text").attr("x",375).attr("y",285).attr("text-anchor","middle").attr("font-size",16).attr("font-weight","bold").attr("fill","white").text(`Net imbalance: +${netImbalance.toFixed(1)} Gt C/year accumulating`); svg.append("text").attr("x",375).attr("y",308).attr("text-anchor","middle").attr("font-size",13).attr("fill","white").text(netImbalance >3?"⚠️ Atmosphere gaining carbon rapidly": netImbalance >0.5?"⚠️ Carbon slowly accumulating":"✅ Roughly balanced");// Health impact estimate svg.append("text").attr("x",375).attr("y",360).attr("text-anchor","middle").attr("font-size",13).attr("fill","#636e72").text(`At ${fossilBurning} Gt C/yr burning → est. ${(fossilBurning *0.42).toFixed(1)} million air pollution deaths/year`); svg.append("text").attr("x",375).attr("y",385).attr("text-anchor","middle").attr("font-size",13).attr("fill","#636e72").text(`+ warming of ≈${(co2ppm >280? (co2ppm -280) *0.008:0).toFixed(1)}°C above pre-industrial`);// Arrow markersconst defs = svg.append("defs"); defs.append("marker").attr("id","arrow").attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill","#d63031"); defs.append("marker").attr("id","arrowG").attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill","#00b894");return svg.node();}
37.3.1 📝 Explore the Carbon Cycle
Use the slider above:
Set emissions to 0 (pre-industrial). What happens to the imbalance? What’s the CO₂ level?
Set emissions to 10 (today). How much carbon accumulates in the atmosphere each year?
Increase to 15 or 20. What happens to estimated deaths and warming?
What would emissions need to be to get the atmosphere roughly back in balance?
In your own words, explain why natural carbon sinks (oceans, forests) can’t keep up with human emissions.
38 Explain 2: From Carbon Disruption to Health Impacts
38.1 🧠 Tracing the Cascade: Fossil Fuels → Systems Disruption → Your Health
Burning fossil fuels doesn’t just create air pollution. It disrupts the entire carbon cycle, which cascades through Earth’s systems and ultimately harms human health in multiple ways.
Code
cascadeData = [ {impact:"Heat-related deaths",current:300000,projected2050:700000}, {impact:"Malnutrition (crop failure)",current:250000,projected2050:500000}, {impact:"Diarrheal disease (water)",current:200000,projected2050:350000}, {impact:"Vector-borne diseases",current:60000,projected2050:150000}, {impact:"Extreme weather",current:50000,projected2050:100000}]cascadeLong = cascadeData.flatMap(d => [ {impact: d.impact,period:"Current",deaths: d.current}, {impact: d.impact,period:"Projected 2050",deaths: d.projected2050}])Plot.plot({title:"Climate-Related Deaths: Now vs. 2050 Projections",subtitle:"These are the INDIRECT effects of burning fossil fuels — on top of the 4.2M direct air pollution deaths",width:750,height:400,marginLeft:190,color: {domain: ["Current","Projected 2050"],range: ["#fdcb6e","#d63031"],legend:true },x: {label:"Estimated Annual Deaths"},y: {label:null},marks: [ Plot.barX(cascadeLong, {y:"impact",x:"deaths",fill:"period",fx:"period",sort: {y:"-x"},tip:true}), Plot.text(cascadeLong, {y:"impact",x:"deaths",text: d => d.deaths>=100000?`${(d.deaths/1000).toFixed(0)}K`:`${(d.deaths/1000).toFixed(0)}K`,dx:12,fontSize:11,fontWeight:"bold" }), Plot.ruleX([0]) ]})
38.1.1 💡 Key Concept: Direct AND Indirect Harm
Burning fossil fuels harms health in two ways:
Direct: Air pollution (PM2.5, NOₓ, SO₂) causes respiratory disease, heart disease, and cancer. This kills ~4.2 million people per year RIGHT NOW.
Indirect: CO₂ emissions disrupt the carbon cycle → warming → heat waves, crop failures, new disease patterns, extreme weather, sea level rise. This kills 800,000+ per year now and is projected to grow dramatically.
Together, fossil fuel burning is responsible for more deaths than any other human activity on Earth.
38.1.2 📝 Trace the Pathways
In your notebook, create a diagram showing at least three pathways from “burning fossil fuels” to a specific health outcome. For each pathway:
39 Elaborate: Carbon Removal — Can We Pull CO₂ Back Out?
39.1 🌱 Evaluating Carbon Removal Technologies
Even if we stop all emissions tomorrow, there’s already too much CO₂ in the atmosphere. Scientists are developing technologies to actively remove carbon. But which ones actually work — and at what cost?
Code
carbonTech = [ {tech:"Reforestation",potential:4,costLow:5,costHigh:50,readiness:"Ready now",color:"#00b894"}, {tech:"Direct Air Capture",potential:7.5,costLow:200,costHigh:600,readiness:"Demo stage",color:"#6c5ce7"}, {tech:"BECCS",potential:7.5,costLow:100,costHigh:200,readiness:"Demo stage",color:"#0984e3"}, {tech:"Enhanced Weathering",potential:3,costLow:50,costHigh:200,readiness:"Experimental",color:"#fdcb6e"}, {tech:"Ocean Alkalinity",potential:3.5,costLow:50,costHigh:150,readiness:"Experimental",color:"#74b9ff"}, {tech:"Ocean Iron Fertilization",potential:2,costLow:50,costHigh:200,readiness:"Experimental",color:"#a29bfe"}]Plot.plot({title:"Carbon Removal Technologies: Potential Scale (Gt CO₂/year)",subtitle:"How much carbon could each technology remove annually?",width:750,height:350,marginLeft:170,x: {label:"Potential Removal (Gt CO₂/year)",domain: [0,10]},y: {label:null},marks: [ Plot.barX(carbonTech, {y:"tech",x:"potential",fill:"color",sort: {y:"-x"},tip:true}), Plot.text(carbonTech, {y:"tech",x:"potential",text: d =>`${d.potential} Gt — $${d.costLow}–${d.costHigh}/ton — ${d.readiness}`,dx:8,fontSize:10,fontWeight:"bold" }), Plot.ruleX([0]) ]})
Code
viewof selectedTech = Inputs.select( carbonTech.map(d => d.tech), {label:"Choose a technology to evaluate:",value:"Reforestation"})
You’ve now evaluated solutions across three categories. Estimate their combined impact:
Solution Category
Solution
Est. Lives Saved (US/yr)
Est. CO₂ Reduction
Timeline
Clean energy transition
(from France comparison)
Carbon removal technology
(your assigned tech)
Vehicle emissions
(your chosen approach)
COMBINED
Write a 1-paragraph summary: Which combination of solutions would be most effective and why? Consider effectiveness, speed, cost, and fairness.
🔑 The health impacts of burning fossil fuels are not inevitable — they’re the result of choices about how we produce and use energy. Different choices can save millions of lives.
40.1.2 📋 Keep Track for Your Performance Task!
Record the estimated impact of each solution you evaluated in this chapter. You will need this information for the Performance Task at the end of the unit. Make sure you have data on:
✅ Clean energy transition (effectiveness, lives saved, CO₂ reduction)