No progress worthy of reporting on current projects, so I thought I’d do a plug for a program I wrote several years ago that I still like to run on occasion.
One of the IT operational problems at my last company was if something bad happened at a branch, it might just disappear from the network with no explanation and it could take hours (and a few times days in the really remote branches) to find out there was a local disaster that brought the branch down. Since I managed the network there for many years, my department was typically the first to see the problem, and start trying to determine what was wrong.
While looking at the USGS.GOV website I noticed that they keep data for all recent earthquakes in a spreadsheet file which is updated close to real time. Just looking at the data it seemed I could at least detect if an earthquake might impact a branch and report it.
There were 3 unknowns to this program for me.
- Given latitude and longitude how do I plot a point on a map in a window?
- How do I measure the distance between two points on the surface of a sphere (the earth)?
- How do I determine the strength of an earthquake at various distances?
In ye olde days, I pretty much would have been forced to figure these problems out myself, or visit the library and hope I could find some references that could help; however, with Google, answers were quick in coming. The first two problems were solved in minutes. Determining the third was more difficult and required reading some research paper as I recall to get the appropriate equations.
Although earthquake magnitude is reported on the Richter scale, that is based at the point of the earthquake. I needed to know how strong the earthquake is at distant locations. That is measured using the MMI (Modified Mercali Intensity) Scale.
Once I solved these unknowns, I was able to write a program that would monitor earthquakes and report any that might have noticeable impact on a branch.
If you just want to see earthquakes and their magnitudes, you can go to the USGS website and there are links to Google earth that will bring up the world and all of the recent earthquakes:
These are really cool and look far better than anything I could do, BUT I wanted a program that didn’t just show earthquakes, but allowed Operations to see how the earthquakes impacted our branches.
The program, EarthShaker, is designed to run on a 55″+ monitor at 1920×1080 resolution in the operations center, so this is a bit hard to read, but here is what the program looks like (click on it to enlarge it):
The company’s branches are blue dots. Hovering over a dot shows the branch id:
Earthquakes are shown using size to indicate magnitude and color to indicate the length of time since the earthquake occurred (the MMI scale designators are also illustrated):
If you hold the cursor over an earthquake, it will report the USGS id, date and time of the occurrence, and its magnitude. In parenthesis, the nearest branch is listed, its distances from the earthquake, and the intensity of the earthquake on the MMI scale):
If you click on an earthquake, it will bring up detailed information for that earthquake at the USGS.GOV website.
So the program monitors earthquakes and displays them on screen. When a new earthquake of significant size occurs (user defined),a marquee will scroll at the bottom with stats on the earthquake and play a warning sound as well.
Besides displaying earthquake impacts, it will also email a list of people if an earthquake’s intensity at a branch exceeds a user defined MMI level. That way if a large earthquake impacts a branch heavily, people across the company can be notified quickly to react to the possible threat.
This was a really fun program to write because it allowed me to do some completely new things. After writing it, I started trying to find a more comprehensive data set that would tell us about disasters besides earthquakes.
I eventually stumbled on the UN website gdacs.org. With their data I was able to write another program that reports almost all natural disasters that could impact our branches (tornadoes are the only thing missed). I reported on this last year: