Sonification of global climate data using Python
David Radcliffe
dradcliffe@gmail.com
Background
- Most climate scientists agree that global warming is real, and due to human activity.
- Main cause: Excess atmospheric carbon dioxide due to the burning of fossil fuels.
- Global average surface temperatures have increased by 0.6 to 0.9 degrees Celsius in the past 100 years.
Impact of global warming
- Changes in precipitation
- More hot days and fewer cold days
- More extreme weather events
- Rising sea levels
- Ocean acidification
Idea
- Ed Hawkins' animation is really cool!
- But it doesn't have a sound track...
- Can I create a "musical" representation?
- Is there a magic R package to create music from data?
Mingus
- Mingus is a music theory package for Python
- The basic object is a Note.
- Notes are grouped into containers.
- NoteContainer
- Bar
- Track
- Composition
- Suite
Python Code
import pandas as pd
from mingus.containers import Note, NoteContainer, Bar, Track
from mingus.midi import midi_file_out
data = pd.read_csv('temp-anomaly-annual.csv')
track = Track()
# The track begins with 11 bars of rests, in 4/4 time.
for _ in range(11):
bar = Bar()
bar.place_rest(1) # Whole rest
track.add_bar(bar)
for value in data.Anomaly:
note = Note()
pitch = int(36*value + 48)
note.from_int(pitch)
note.velocity = 127
bar = Bar('C', (1, 4))
bar.place_notes(note, 4)
track.add_bar(bar)
midi_filename = "temp-anomaly.mid"
bpm = 600 # 10 beats per second. Each beat represents 1 year.
midi_file_out.write_Track(midi_filename, track, bpm)
My workflow
- Download animation (MP4)
- Download climate data
- Aggregate data to year level
- Save to CSV file
- Use Python script to generate MIDI
- Convert MIDI to MP3 (using zamzar.com)
- Attach audio to video using Windows Movie Maker
- Upload video to YouTube
- ...
- PROFIT!
Did it work?
- Soundtrack gives an impression of short-term randomness but long term increase.
- What are some other ways to represent climate change through music?
- What are some other tools that I could have used?
Sonification of global climate data using Python
By David Radcliffe
Sonification of global climate data using Python
- 1,256