Japan earthquake data

After a big earthquake, I’m always tempted to pull some data from various sources and see what kind of graphs I can produce. My friend Charlie found the NOAA tide data by station, once again driving home the point that NOAA (and USGS, to a lesser extent) is great at collecting data but not that great about indexing it in a way that makes it easy to find by a casual user.

USGS, however, publishes a catalog of earthquakes in various formats; they offer a list of the last earthquakes >= 2.5 Mw in the last week: in Atom/RSS if you’d like to track it in a feedreader, or in CSV for more base crunching. I decided to use R for the more base crunching. But first, a little bash:

#!bash
curl -s 
"http://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-M2.5.txt" 
   | grep -Ee '^(.*Japan|Src,)' | sed -En 
   -e '1,/05:46:23 UTC/ p' > ~/japan-earthquakes.csv

Then opened R, and ran:

earthquakes <- read.csv(file="~/japan-earthquakes.csv",head=TRUE,
    sep=",")
times <- strptime(earthquakes$Datetime,
    format="%A, %B %d, %Y %H:%M:%S UTC", tz="UTC")
times <- times - times[350]distances <- ((earthquakes$Lat -
    earthquakes$Lat[350]) ** 2 + (earthquakes$Lon - 
    earthquakes$Lon[294]) ** 2) ** 0.5

Having all of the data now compiled, we can do things like produce a histogram, demarcated at every 24 hours, of frequency with time:

Histogram of time

hist(times, freq=F, breaks=0:60 * 3600, col=heat.colors(24),
    main="Histogram of time", xlab="time (in seconds)", 
    ylab="frequency")

or a histogram of magnitude:

Histogram of magnitude

hist(earthquakes$Magnitude, freq=F, breaks=45:90/10,
   col=heat.colors(45), main="Histogram of earthquake magnitude", 
    xlab="magnitude (Mw)")

or a histogram of distances:

Histogram of distance

hist(distances,freq=F,breaks=0:50/10,col=heat.colors(50),
    xlab='distances (in degrees)',main='Histogram of distances')