Mapping the Graveyard

High-Level Project Summary

We have developed an open source geospatial web application to track every known space trash in real time, relative to a virtual Earth. The application enables the user to view the orbiting debris by selection of a class from the catalogue. It facilitates the user to view the immediate complete orbit of the debris, with inclusion of the phase difference. Occurrences of a particular Space Trash above a user provided location is also predicted by the app. The debris creates hinderance in space missions, hence our tracker provides insights on their orbits. It informs about the time at which the debris will pass over a certain location, which is beneficial in deciding launch trajectories.

Link to Project "Demo"

Detailed Project Description

The application developed by us maps almost every known major debris cloud relative to the geodetic coordinates of the Earth. We achieved this by means of the TLE sets provided by Celestrak. We, then processed the datasets using satellite.js, an open source library that helped us convert TLE into latitude, longitude and altitude (LLA) via the ECF coordinate system. Ultimately the debris cloud obtained was plotted on a geospatial virtual globe provided to us by NASA Web WorldWind. The computation had become too complex to be performed in the browser environment hence the client i.e. the browser was continuously polling the server and fetching updated data and displaying it onto the virtual globe. This gave our application real time capabilities.


Firstly, TLE data was processed into a convenient format. We converted the TLE text file to JSON data. This is because look-up is quicker in JSON format as compared to linear search in a list. We mapped the common names of the debris particles against the ids of the debris particles that share that common name. Then we mapped the unique id of the debris particle against its common name, line1 of TLE and line2 of TLE. This made look-up quicker. The files obtained from processing are placed at both, the client side and server side. The data preprocessing can be difficult. But we have prepared some scripts that might help you. Sometimes, the data may not be in correctly formatted. However, this can be taken care of using some shortcuts in IDEs like removing all occurrences.

You might want to update the TLE file. Don't worry we have got you covered. In the README section of the project we have added all documentation we find helpful in accomplishing this task.


Next, we built the front end using ReactJS, an open source library to build user interfaces. with JavaScript We wanted our application to continuously update state (periodically) so as to add real time capabilities. The ReactJS frontend consisted of three main components. A clock that showed the local time, a panel from where the user could select the common name of the debris he intended to track and a canvas component that held our virtual globe. When the user selected the common name of the debris, the debris would be immediately plotted on the map. The initial computation was done client-side using satellite.js. The browsers are capable of executing such computation. Moreover, faster initial loads can greatly enhance the UX. The debris particles were represented using a renderable canvas component of gray color. On clicking on a debris, the user would be able to see its trajectory (in green). A popup would open that displayed the spatial coordinates of the user's selection. Moreover, an input field was provided where the user could enter a set of coordinates and see the predicted time when the debris would be above that location. We made use of the useInterval hook so that we could continuously poll the server and ensure fresh data being displayed on the virtual globe in the front end.


We developed two servers for the application. The space apps serverlistened to requests on port 3000 and sent back data for the selected common name at the given time. This server was continuously polled. The server was written in NodeJS environment using ExpressJS. It consisted of a get request handler the accepted data in the form of path parameters. The common name was extracted from the path parameters and the computations for predicting the current position were performed. Again satellite.js was used in the NodeJS environment for converting TLE data of a given debris to its coordinates at a given time. The predict server was also written in JavaScript NodeJS environment. This server was a POST handler accepting JSON body and handled the task of prediction of occurrence a debris above a ground station. The library jspredict was used for this task. This library is based on satellite.js. The server returned JSON response which was parsed and shown at the front end.


The project maps the debris and shows their intermediate orbit in an epoch. This aims to benefit the space mission planners to plan, since the debris can prove to be an obstacle in the trajectories of launch vehicles. Also the debris predict the time of occurrence over a user mentioned location, which helps in choosing a non-collision trajectory.

Space Agency Data

A Worldwind Mapping Library - The library was used to simulate a virtual earth, since the orbiting debris had to be tracked relative to the earth.

Celestrak space debris TLE-Fengyun 1C debris, Iridium 33 debris, COSMOS 2251 debris - The TLE sets were required to obtain the orbital parameters for space debris object in Earth orbit, using which the latitude, longitude and altitude could be obtained.

Hackathon Journey

NASA Space Apps challenges introduced us to a wide variety of possible opportunities in the space sector. It taught us that "good things take time". The challenge of Mapping Space Debris in Real time was interesting because it threw light on the persistent problem of increasing space trash. The challenge was innovative and had a lot of scope for development. It directed us towards a lot of useful resources from various Space Agency partners. The approach in developing this project was to first process the TLE sets and then plot the orbits. Then using the orbits, the prediction of time of occurrence of the debris over user selected location could be deduced. To resolve setbacks, we explored multiple resources to code for the same application. One or the other thing definitely worked. We look forward to future NASA space app challenges and keep looking for more such innovative challenges.

References

NASA WorldWind Mapping Library - Web WorldWind/NASA WorldWind

Celestrak Space Debris TLE Sets - CelesTrak: Current NORAD Two-Line Element Sets

WorldWindJs- https://worldwind.earth/worldwindjs/ a fork of NASA Web WorldWind library.

satellite.js - shashwatak/satellite-js: Modular set of functions for SGP4 and SDP4 propagation of TLEs. (github.com)

jspredict - jspredict - npm (npmjs.com) :- This was used to Add satellite tracking capabilities i.e predict when a particular object is going to pass over a user-selected location on Earth's surface.

The IDE used throughout the development of the project was VS Code. The entire project has been made in JavaScript. The React application consisted of ES6 syntax while the servers were built in NodeJS environment. We selected NodeJS as it is lightweight, fast, robust yet simple. It was a perfect blend. This is a visual from our project: https://drive.google.com/file/d/1hw3zQ6vIKV7CIYRJrZNWXDzCP4B8et3E/view?usp=sharing which we created in the course of this challenge.

Tags

#space_debris, #software #webdesign #ReactJS #NodeJS #NASA Web WorldWind

Global Judging

This project has been submitted for consideration during the Judging process.