Sunday, June 2, 2013

The beginnings of Aurora Alert

On the evening of October 24, 2011 an incredible event occurred; something I was not even aware as being possible at the time. I, of course, found out about it the next day. That previous day, Earth was impacted with a huge cloud of plasma from the sun traveling somewhere in the neighborhood of a couple million miles per hour. This is known as a coronal mass ejection, and it happens quite often. It also happens to be one of the main causes of the phenomenon known as the aurora borealis (or aurora australis). It was on that night of October 24 that the aurora put on a huge light display that stretched as far south as states such as Alabama and Oklahoma.

Up until reading a news article the next day, I had no idea the aurora could ever be seen in my location (Northeast U.S.), let alone that far south (and even further). Reading that news article begged the question: why wasn't there more widespread news about this the day before? A little research will show anyone that predicting displays of the aurora is incredibly difficult. For those who get snowfall where they live, I would liken it to predicting snowfall totals a week in advance. A similar analogy would be predicting the path of a hurricane a week in advance, with 20 year old technology. While difficult, the task is not impossible by any means. You just need to be ready to accept a wider margin of error.

Around the same time I was looking to get into mobile app development, so one could say this idea more or less fell into my lap. My initial research provided me with tons of websites and information regarding the forecasting of aurora. At first I thought this would be an easy task when I found NOAA's website that showed a relationship between the Kp Index, geomagnetic latitude, and visible aurora. In the most basic sense I wanted to make an app that would alert me when the Kp Index was high enough for me to see the aurora. As it turns out, it's just not that easy, and there's more to it than that. There are many apps and services out there that do this already, but many fall short.

Checking a website is fine for awhile, and you can bet I was refreshing some of them multiple times a day to check forecasts and data. Eventually, that gets tiring as you'll mostly find a quiet forecast. The apps I've found that will check the forecast for you appeared to be after a quick sale, rather than robust application. NOAA has a lot of data available, but not all of it is very reliable. The worst that I've found was the "Activity Level", which seems to be used by almost all the space weather apps out there, and in my opinion, is essentially useless. It's rated on a 1-10 scale with two huge problems. One, that the margin of error they publish is incredibly large--as in it could easily show high activity where there is none. And two, 1-7 on the scale are virtually indistinguishable, with the difference between 8, 9, and 10 not being much better. The auroral maps for the activity level never show the aurora as far south as it usually is, which made it an easy decision to discard it.

Another thing that others seem to forget is that programming is hard, but that doesn't mean it's okay to take shortcuts. This is really a general statement about apps out on the market. There are quite a few apps out there with glaring problems that seem to take forever to be fixed. This served as an excellent example of what not to do.

With Aurora Alert, I set out to make the most accurate and robust aurora app available. I did my homework on the aurora borealis, making sure I'd get the best forecasts and data available, as well as fall-backs. With my biggest goal being accuracy and reliability, my other main focus was making it useful to everyone. I took my time digging into the science and mathematics to make the app as dynamic as possible, to serve all around the globe. My only regret would be that I can't personally translate to every language, but I certainly want to do the best I can to make it accessible to non-English speaking users.

As of now, my work is far from over. Currently, user requests are being taken to add additional features to the app.