Quick Start: Creating Your First BurnPlot VisualizationBurnPlot is a purpose-built visualization tool for exploring burn-related datasets — from wildfire incidents and prescribed burns to industrial burn records and experimental combustion data. This guide walks you step-by-step through creating your first BurnPlot visualization: preparing data, choosing the right plot types, building the visualization, and refining it for clarity and sharing.
What you’ll build in this tutorial
You’ll create an interactive BurnPlot dashboard that shows:
- A geographic map of burn locations (latitude/longitude)
- A temporal timeline of incidents (date/time)
- A heatmap showing burn intensity or area over time
- Filters to explore by cause, severity, vegetation type, or region
This combination gives immediate spatial, temporal, and quantitative context — essential for incident response, research, policy-making, and safety audits.
1) Preparing your data
Good visuals start with clean, well-structured data.
Required fields (minimum):
- id — unique identifier per incident
- date — ISO 8601 date/time (e.g., 2024-07-15T14:30:00Z)
- latitude and longitude
- area_ha — burnt area in hectares (or other consistent unit)
- intensity — numeric measure (e.g., fire radiative power, categorical severity) Optional but useful:
- cause — human, lightning, controlled, unknown
- vegetation_type — forest, grassland, agricultural, urban
- region — administrative area
- notes — free text for context
Data format:
- Use CSV or GeoJSON for spatial data. CSV is simplest; GeoJSON preserves geometry and properties.
Quick CSV example:
id,date,latitude,longitude,area_ha,intensity,cause,vegetation_type,region 001,2025-07-01T10:15:00Z,34.1234,-118.1234,12.5,3,human,chaparral,Los Angeles 002,2025-07-02T16:40:00Z,35.2345,-119.2345,250.0,8,lightning,forest,Central Valley
Data cleaning checklist:
- Convert dates to ISO 8601.
- Ensure latitude in [-90,90] and longitude in [-180,180].
- Fill or flag missing area/intensity values.
- Remove duplicates by id.
- Standardize categorical values (cause, vegetation_type, region).
2) Choosing visualization components
BurnPlot supports multiple coordinated views. For a first dashboard, pick a concise combination:
- Map view (choropleth or point layer) — spatial distribution
- Timeline (linked to map) — temporal sequence and filtering
- Heatmap or density layer — concentration and hotspots
- Bar chart or stacked area chart — causes or vegetation-type breakdown
Why these? Map + timeline provide geographic and temporal context; heatmap surfaces hotspots; charts summarize attributes.
3) Building the visualization — step-by-step
Assuming BurnPlot’s interface (web app or library) provides a drag-and-drop canvas plus data import. If you’re using a code-first API, equivalent steps apply.
Step A — Import data
- Upload your CSV or GeoJSON.
- Confirm field types: date parsed as date/time; lat/long recognized as coordinates; numeric fields parsed.
Step B — Create the map view
- Choose a base map (satellite for context; terrain for vegetation features; neutral for print).
- Add a point layer using latitude/longitude.
- Visual encoding:
- Size → area_ha (larger points for larger burns)
- Color → intensity (use sequential color map, e.g., yellow→red)
- Enable popups to show id, date, area_ha, cause, vegetation_type.
Step C — Add a timeline
- Add a time slider linked to the date field.
- Configure binning: day/week/month depending on dataset span.
- Set play control for animation through time.
Step D — Create a heatmap/density layer
- Use area_ha or intensity as weight for the density kernel.
- Adjust radius/smoothing to reveal hotspots at the desired geographic scale.
Step E — Add attribute charts
- Bar chart: count by cause
- Stacked area or bar: area_ha by vegetation_type over time
- Link charts to map and timeline for brushing & filtering.
Step F — Filters and interactions
- Add dropdowns for region, cause, vegetation_type.
- Allow clicking a map point or bar to highlight and filter other views.
- Configure tooltips and legend for clarity.
4) Styling and accessibility
- Color: use colorblind-friendly palettes (e.g., Viridis, ColorBrewer’s ColorBlind-safe schemes).
- Legends: include clear units (ha, intensity scale) and date formats.
- Labels: avoid overlapping labels; cluster or declutter points at high density.
- Accessibility: ensure keyboard navigation works for timeline and filters; provide textual summaries for screen readers.
5) Performance tips for large datasets
- Pre-aggregate by grid tiles or time bins for initial view; load details on demand.
- Use vector tiles or server-side clustering for millions of points.
- Simplify geometries and limit client-side heavy rendering.
- Cache computed heatmaps or density surfaces.
6) Example workflows (short)
- Rapid incident triage: sort by intensity → view on map → zoom to top events → filter by recent 48 hours.
- Research trend analysis: aggregate area_ha monthly → compare by vegetation_type → export CSV of monthly totals.
- Public communication: produce static export of map + timeline snapshot for press release.
7) Exporting, sharing, and reproducibility
- Export options: static PNG/SVG for figures, interactive HTML embed, or data subset CSV/GeoJSON.
- Share dashboards via a persistent link or export an interactive bundle.
- Reproducibility: keep a data version and a saved dashboard configuration (or JSON spec) for audits.
8) Sample code snippet (pseudo) — creating a simple map & timeline via BurnPlot API
import { BurnPlot } from 'burnplot'; const data = await fetch('burns_2025.csv').then(r => r.text()); const bp = new BurnPlot('#canvas'); bp.loadCSV(data, { lat: 'latitude', lon: 'longitude', time: 'date' }); bp.addMapLayer({ type: 'points', sizeField: 'area_ha', colorField: 'intensity', popupFields: ['id','date','area_ha','cause'] }); bp.addTimeline({ field: 'date', bin: 'day' }); bp.addHeatmap({ weightField: 'area_ha', radius: 30 }); bp.addFilterWidget('cause'); bp.render();
9) Troubleshooting common issues
- Dates not parsed: ensure ISO 8601 or set custom parser/format.
- Points overlapping: enable clustering or aggregate by hexbins.
- Slow rendering: reduce point count, enable WebGL renderer if available.
- Heatmap too smooth or noisy: adjust kernel radius and weight field.
10) Next steps & learning resources
- Try adding satellite basemaps and land-cover overlays to link burn patterns with vegetation.
- Integrate weather/wind data to study spread dynamics.
- Automate ingestion from remote sensing feeds (MODIS/VIIRS) for near-real-time monitoring.
This guide sets up a practical, reproducible workflow to create a BurnPlot visualization that’s informative and actionable. If you want, tell me what dataset you have (sample rows or file type) and I’ll produce a tailored step-by-step config or a ready-to-run code snippet.
Leave a Reply