Developing an API for NASA
For the last 2 years as I’ve served as NASA Space Apps Challenge local lead in Belgrade, Serbia, I had the chance to observe the struggle our participants have confronted with during their search for open data. Although the amount and diversity of data available on the internet are immense, it’s often delivered in formats that are either impractical for use in applications, or completely foreign to our participants.
To overcome this situation I came to an idea to start an open data initiative with the goal to deliver up-to-date, quality data, suitable for use in web and mobile applications. The workflow was simple – collect, transform and provide.
The first data source I realized would benefit from this project were TLE data sets provided by CelesTrak. TLE – the Two Line Element is encoded data of orbital parameters for Earth-orbiting satellites which can be used to determine the satellite’s position and velocity at any given time. CelesTrak provides the data in textual format spread over several dozens of text files which make searching for desired satellite rather challenging.
My main goal was to collect the data by using a backend process of the system that visited CelesTrak on a daily basis, merged all of their data source files, and stored them in a database. Such data, now structured in relational tables, was suitable for delivery via REST API. The API responses then get encoded in widely used JSON format enriched with Hydra vocabulary instead of raw text files.
Once the API was developed it was ready to be published and used by the members of the space community. The best place for that was NASA API portal. Having carefully read the “Contributing” section of the portal, I initiated contact via email with NASA’s person in charge. After giving a brief explanation of the API’s capabilities and data it provides, API’s usefulness was evaluated and approved by NASA officials, and I was given the instruction to fill in the template for API documentation that will be displayed in the listing. It took some time since the API was officially recognized and listed on the NASA website where it now stands hopefully for the benefit of all the scientific community.
If you happen to have a similar problem with any data source, you can contact me on [email protected], and I will gladly help with developing a solution that serves the public interest.