# CLAUDE.md - Globe Visualization 2: Temperature Heatmap ## Project Context This is iteration 2 in a progressive Mapbox globe visualization learning series. Each iteration builds upon previous knowledge while introducing new web-learned techniques. ## Learning Methodology: Web-Enhanced Progressive Development ### Research Source - **URL**: https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/ - **Topic**: Heatmap layers for density-based visualization - **Method**: WebFetch tool used to retrieve and analyze documentation - **Application**: Heatmap techniques applied to climate data on globe projection ### Techniques Extracted from Documentation 1. **Heatmap Weight System** - Documentation showed how to use data properties to drive heatmap density - Applied to temperature anomalies: higher anomalies = higher weight - Interpolation from -1°C (0.1 weight) to +3°C (1.0 weight) 2. **Zoom-Based Intensity** - Learned intensity multiplier varies by zoom level - Implemented 0.8 (global) → 1.2 (regional) → 1.5 (local) - Ensures visibility at all scales 3. **Color Gradient Configuration** - Documentation demonstrated density-to-color mapping - Created diverging scheme: blue (cold) → green (neutral) → red (hot) - Applied to temperature anomaly visualization 4. **Radius Adaptation** - Learned radius controls point influence spread - Configured 15-35px range based on zoom - Balances smoothness vs precision 5. **Layer Transitions** - Documentation showed opacity management for layer switching - Implemented heatmap fade-out + circle fade-in - Seamless transition from density to detail view ## Improvement Over Iteration 1 ### Iteration 1 Recap - 100 population circles sized/colored by population - Globe projection with auto-rotation - Basic circle layer visualization ### Iteration 2 Advancements - 280 temperature anomaly stations - Primary heatmap layer for density visualization - Secondary circle layer for detail - Multi-scale visualization strategy - Climate-focused data theme - Zoom-responsive layer transitions ### Why Heatmap > Circles for This Data **Circles (Iteration 1)**: - Good: Precise individual values - Limited: Pattern recognition requires mental work - Best for: Discrete entities (cities, points of interest) **Heatmap (Iteration 2)**: - Good: Immediate pattern recognition - Advanced: Shows regional trends and gradients - Best for: Continuous phenomena (temperature, density, intensity) ## Technical Architecture ### File Structure ``` mapbox_globe_2/ ├── index.html # Main page with UI panels ├── src/ │ ├── index.js # Map initialization and heatmap configuration │ └── data/ │ └── temperature-data.js # 280 stations GeoJSON ├── README.md # User documentation └── CLAUDE.md # This file - development context ``` ### Data Design **GeoJSON Features**: Each station includes: - `station`: Location name - `temperature`: 2023 measured temperature - `anomaly`: Deviation from 1951-1980 baseline - `baseline`: Historical average temperature - `year`: Data year (2023) **Geographic Coverage**: - North America: 20 stations - South America: 10 stations - Europe: 50 stations (showing high warming) - Asia: 40 stations (mixed patterns) - Middle East: 12 stations (extreme warming) - Africa: 30 stations - Oceania: 18 stations - Russia/Arctic: 20 stations (extreme warming) - Additional key locations: 80 stations ### Heatmap Paint Properties Explained ```javascript // Weight: How much each point contributes 'heatmap-weight': Uses 'anomaly' property -1°C anomaly → 0.1 weight (minimal contribution) +3°C anomaly → 1.0 weight (maximum contribution) // Intensity: Global multiplier by zoom Zoom 0: 0.8 (subtle at global view) Zoom 10: 1.5 (prominent at local view) // Color: Density mapped to temperature gradient 0 density: Transparent Low density: Blue (cooling) Medium density: Yellow (moderate warming) High density: Red (extreme warming) // Radius: Point influence spread Zoom 0: 15px (broad patterns) Zoom 10: 35px (precise local density) // Opacity: Layer visibility by zoom Zoom 0-7: 0.9 (heatmap dominant) Zoom 7-15: 0.9 → 0 (fade to circles) ``` ### Circle Layer Strategy - **Activation**: minzoom 7 (regional scale) - **Purpose**: Show individual stations when zoomed in - **Radius**: Based on anomaly magnitude (3-18px) - **Color**: Matches heatmap gradient for consistency - **Opacity**: 0 → 0.85 as heatmap fades - **Stroke**: White outline for visibility ## Climate Data Patterns The visualization reveals scientifically accurate patterns: 1. **Arctic Amplification**: Polar regions +2.5°C to +3.6°C (documented phenomenon) 2. **Continental vs Oceanic**: Land warming faster (thermal inertia effect) 3. **Latitude Gradient**: Higher latitudes showing greater warming 4. **Regional Hotspots**: Middle East, Central Asia, Mediterranean 5. **Tropical Moderation**: Equatorial regions showing less warming ## Development Notes ### Design Decisions 1. **Dark Theme**: Maximizes data visibility, reduces eye strain 2. **Diverging Colors**: Blue-to-red familiar from climate visualizations 3. **Auto-Rotation**: Reveals global patterns without user effort 4. **Smart Pause**: Rotation stops during interaction, resumes after 5. **Dual Layers**: Heatmap for patterns, circles for precision ### Performance Optimizations - Heatmap rendering is GPU-accelerated via WebGL - GeoJSON pre-loaded (no async data fetching) - Layer visibility controlled by zoom (not rendering unused features) - Popup generation on-demand (not pre-rendered) ### User Experience Enhancements - **Legend**: Color scale shows anomaly meaning - **Statistics**: Aggregate data provides context - **Info Panel**: Explains methodology and data source - **Popups**: Detailed station data on interaction - **Controls**: Easy toggling between views - **Fullscreen**: Immersive exploration mode ## Learning Outcomes ### Web Documentation Research Skills - Successfully fetched and analyzed Mapbox heatmap documentation - Extracted key paint properties and their usage patterns - Applied documentation examples to novel use case (climate data) ### Mapbox Technique Mastery - **New**: Heatmap layer type and all paint properties - **Advanced**: Multi-layer visualization with zoom transitions - **Refined**: Globe projection styling with atmosphere - **Maintained**: Auto-rotation from iteration 1 ### Climate Data Visualization - Understood diverging color schemes for anomaly data - Applied density visualization to continuous phenomena - Designed multi-scale approach (global patterns → local detail) ## Future Enhancement Ideas 1. **Temporal Animation**: Show anomaly progression over decades 2. **Multiple Variables**: Precipitation, sea level, ice coverage 3. **3D Terrain**: Elevation-aware temperature visualization 4. **Real-time Data**: Integration with climate APIs 5. **Comparison Mode**: Side-by-side historical vs current 6. **Regional Focus**: Drill-down into specific areas 7. **Export Functionality**: Save visualizations as images ## Iteration Success Criteria ✅ **Web Learning**: Fetched and applied heatmap documentation ✅ **Heatmap Implementation**: All key paint properties configured correctly ✅ **Climate Data**: Realistic 280-station global dataset ✅ **Pattern Visibility**: Arctic amplification and regional trends clear ✅ **Multi-Scale**: Heatmap (global) + circles (local) working seamlessly ✅ **Globe Features**: Atmosphere, rotation, controls maintained ✅ **Documentation**: README explains heatmap advantages over circles ✅ **Code Quality**: Well-commented, organized, production-ready ## Connection to Learning Series This iteration demonstrates: - **Progressive complexity**: Building on globe 1's foundation - **Web-enhanced learning**: Real documentation informing development - **Technique diversity**: Different visualization for different data types - **Professional quality**: Production-ready implementation The series showcases how web research + iterative development = rapid skill acquisition in geospatial visualization.