It’s a bird, it’s a plane – it’s a satellite
When you look up at the sky during the daytime, it seems sparse. Sure, there are clouds, maybe a plane or helicopter every now and then – but there are actually many more human-made objects whizzing above your head then you might realize.
In orbit around the earth right now, there are nearly 20,000 artificial objects being tracked (2,218 of which are operational satellites at the time of this post). Random untracked artificial debris is estimated to comprise over 100,000,000 objects.
At any given moment, the chances are high that something’s flying overhead. Here’s a mindblowing snapshot from Celestrak’s orbit visualizer of everything being tracked.
Sensing satellites with Buzz
In the spirit of expanding one’s umwelt in a direct spatial sense, and to provide an appreciation for just how much is orbiting the Earth, we decided to have some fun with the Neosensory SDK for Android.
We built a demo app that lets you feel tracked space objects flying overhead on Neosensory Buzz:
The app leverages the API from N2YO.com to periodically poll for satellites above the user’s location. Upon getting a list of nearby satellites, we then obtain each object’s two-line element (TLE) set from N2YO (the oft-updated full official set is provided by NORAD and distributed on space-track.org and celestrak.com).
Once we have a TLE for an object, we can predict its real-time location. To accomplish all of this in our app, we built two open-source libraries to help streamline this process:
- n2yo-android-lib – is a module for Android for working with the N2YO.com API.
- tle-prediction-engine – is a simple-to-use Java library for decoding TLEs and producing latitude and longitude coordinates for an object at a given point in time. It’s built on top of GitHub user aholinch’s SGP4 multiplatform implementations with much credit going to David Vallado’s original widely used code. The algorithms for converting to geodetic (i.e. latitude/longitude) coordinates are taken from stltracker.com and the algorithm for converting to Julian time is from Bill Jefferys’ Julian dates page.
Sense earth’s orbit
We’ll be posting the app in the coming weeks for the general public to try.
In the meantime, we’ve posted the project on GitHub for interested Android developers. To build and run the app, you’ll just need to obtain your own API key from Google (for Maps) and N2YO.com (note their API rate limits).
We’d love to hear what you think of the app and any projects you’re interested in developing with the Neosensory SDK for Android. Join our developer Slack channel or email us at firstname.lastname@example.org.
By Scott Novich, CTO and Co-founder