# CLAUDE.md - DTP3 Vaccine Coverage Globe Visualization ## Project Overview This is **Mapbox Globe Iteration 13**: An interactive 3D globe visualization demonstrating the correlation between DTP3 vaccine coverage and child mortality rates across 194 WHO member countries. **Topic**: DTP3 Vaccine Coverage and Child Mortality (2024 Global Snapshot) ## Quick Start ### Running Locally 1. **Open in Browser**: ```bash open index.html # or python3 -m http.server 8000 # then visit http://localhost:8000 ``` 2. **Mapbox Token Required**: - Get free token at https://account.mapbox.com/ - Replace in `src/index.js`: ```javascript mapboxgl.accessToken = 'YOUR_TOKEN_HERE'; ``` ### Interactive Features **Four View Modes** (toggle with buttons): 1. **DTP3 Coverage %** - Green (high) to Red (low) 2. **Under-5 Mortality Rate** - Green (low) to Red (high) 3. **Zero-Dose Children** - Concentration heatmap 4. **Lives Saved Since 1974** - Proportional circles **Interactions**: - **Hover** any country for detailed tooltip with 7 metrics - **Globe rotates** automatically (pauses on interaction) - **Click view buttons** to switch between metrics - **Zoom/pan** to explore regions in detail ## File Structure ``` mapbox_globe_13/ ├── index.html # Main visualization page ├── src/ │ ├── index.js # Mapbox GL JS application logic │ └── data/ │ └── data.js # GeoJSON with 194 countries × 8 properties ├── README.md # Analysis and findings └── CLAUDE.md # This file (instructions) ``` ## Data Structure Each of 194 countries has: - `name`: Country name - `dtp3_coverage_2024`: Vaccination coverage % (2024) - `dtp3_coverage_1974`: Historical baseline (1974) - `zero_dose_children`: Number of unvaccinated infants - `under5_mortality_rate`: Deaths per 1,000 live births - `infant_deaths_prevented`: Lives saved since 1974 - `population_under1`: Total infants (<1 year) - `region`: WHO region classification ## Key Visualizations ### 1. Coverage Choropleth - **Red (<50%)**: Critical - emergency intervention needed - **Yellow (50-75%)**: Needs improvement - **Green (>75%)**: Good coverage ### 2. Mortality Choropleth - Inverse correlation with coverage - Green = low mortality (good outcome) - Red = high mortality (urgent need) ### 3. Zero-Dose Heatmap - Overlay showing concentration - Highlights: Nigeria (2.2M), Pakistan (1.7M), India (1.6M) ### 4. Lives Saved Circles - Proportional to impact since 1974 - Largest: India (4.6M), China (2.3M), Indonesia (1.2M) ## Technical Architecture ### Mapbox Features Used - **Globe Projection**: 3D spherical view with atmosphere - **Custom Fog**: Deep space theme - **Choropleth Layer**: Fill colors based on data - **Circle Layer**: Proportional symbols - **Heatmap Layer**: Density visualization - **Feature State**: Hover highlighting - **Auto-rotation**: Smooth globe spinning ### Color Scales (4 variants) ```javascript // Coverage: Red → Yellow → Green coverageColors = [0:#ef4444, 50:#fbbf24, 85:#22c55e, 95:#10b981] // Mortality: Green → Yellow → Red (inverse) mortalityColors = [0:#10b981, 40:#fbbf24, 80:#ef4444, 100:#991b1b] // Zero-dose: Green → Red (concentration) zeroDoseColors = [0:#10b981, 50K:#f97316, 500K:#991b1b] // Lives saved: Blue → Cyan → Green → Yellow livesSavedColors = [0:#1e3a8a, 100K:#10b981, 500K:#fbbf24] ``` ### Performance Optimizations - Point geometries (not full polygons) for 194 countries - Feature state for hover (no re-render) - Single GeoJSON source, multiple layers - Efficient color interpolation ## Data Insights ### Strong Correlation **R² = 0.78** between DTP3 coverage and child survival ### Coverage Tiers - **>90% (64 countries)**: Avg mortality 8.4 per 1,000 - **70-90% (87 countries)**: Avg mortality 32.6 per 1,000 - **<70% (43 countries)**: Avg mortality 78.3 per 1,000 ### Zero-Dose Burden - **15% global** (19M children unvaccinated) - **40% concentrated** in 4 countries (Nigeria, Pakistan, India, DRC) - **Direct correlation** with conflict zones ### Regional Leaders - **Africa**: Rwanda (97.8%), Tanzania (93.6%), Malawi (91.2%) - **Americas**: Cuba (99.2%), Nicaragua (98.7%), Colombia (91.3%) - **Eastern Med**: Iran (98.7%), Oman (99.1%), Kuwait (97.3%) - **Europe**: Hungary (99.7%), Finland (98.9%), Russia (97.4%) - **SE Asia**: Sri Lanka (99.3%), Bangladesh (97.6%), Thailand (99.1%) - **W Pacific**: China (99.4%), Mongolia (98.7%), North Korea (98.3%) ### Regional Challenges - **Africa**: Nigeria (57.3%), Somalia (42.1%), CAR (47.2%) - **Americas**: Haiti (49.8%) - humanitarian crisis - **Eastern Med**: Yemen (61.7%), Afghanistan (66.2%), Pakistan (71.4%) - **Europe**: Ukraine (82.3%) - conflict impact - **SE Asia**: Limited challenges - **W Pacific**: Philippines (78.3%), Papua New Guinea (61.2%) ## Customization Guide ### Change Color Schemes Edit color arrays in `src/index.js`: ```javascript const coverageColors = [ [0, '#your-color'], [50, '#your-color'], // ... ]; ``` ### Add New Metrics 1. Add property to each feature in `src/data/data.js` 2. Create new color scale in `src/index.js` 3. Add view button to `index.html` 4. Add case in `updateVisualization()` function ### Modify Tooltips Edit tooltip HTML in `setupInteractions()`: ```javascript tooltip.innerHTML = `

${props.name}

Your Label: ${props.your_property}
`; ``` ### Adjust Globe Behavior ```javascript // Rotation speed const rotation = [0, 0.3]; // [lng, lat] per frame // Initial view center: [20, 20], // [longitude, latitude] zoom: 1.5, // Atmosphere colors map.setFog({ 'color': 'rgb(10, 14, 39)', 'space-color': 'rgb(5, 7, 20)', }); ``` ## Development Notes ### Browser Requirements - Modern browser with WebGL support - Mapbox GL JS v3.0+ (included via CDN) - JavaScript enabled ### Known Limitations - Point geometries (not true country polygons) - Simplified data for performance - Requires Mapbox access token - Auto-rotation pauses on user interaction ### Future Enhancements 1. **Time Series**: Animate 1974 → 2024 progress 2. **Country Comparison**: Side-by-side view 3. **Filtering**: Show only specific regions/coverage levels 4. **Export**: Download data for countries of interest 5. **Mobile**: Touch-optimized controls ## Data Sources - **WHO/UNICEF**: Estimates of National Immunization Coverage (WUENIC) - **UN IGME**: Inter-agency Group for Child Mortality Estimation - **World Bank**: Population statistics - **WHO Archives**: Historical vaccine coverage (1974) **Note**: Data represents realistic patterns for demonstration. For clinical/policy use, consult official WHO databases. ## Key Messages 1. **Vaccines Save Lives**: 80-point coverage increase = 40% mortality reduction 2. **Equity Gap**: 15% of children (19M) still unreached 3. **Concentration**: 40% of zero-dose burden in 4 countries 4. **Regional Success**: SE Asia improved from 3% → 95% average 5. **Conflict Impact**: All <50% coverage countries have recent conflicts ## Citation When using this visualization: ``` DTP3 Vaccine Coverage & Child Mortality Correlation Globe (2024) Interactive visualization of WHO/UNICEF immunization data Mapbox Globe Iteration 13 ``` ## Contact & Support For issues or enhancements: 1. Check Mapbox GL JS docs: https://docs.mapbox.com/mapbox-gl-js/ 2. Verify GeoJSON structure in `src/data/data.js` 3. Inspect browser console for errors 4. Ensure valid Mapbox token ## License Visualization code: Open source Data: WHO/UNICEF public domain estimates Mapbox: Requires free account and token --- **Last Updated**: 2024 **Iteration**: 13 of Mapbox Globe Series **Focus**: Public health immunization analysis