Orbital Prediction for Earth Observation


27/12/2017: The Overpass API call now returns czml data for each valid overpass

Contact Details

Comments or feedback are welcome to: shane.carty87(at)gmail.com, or on Twitter: @KujosHeist

I've also started a blog on software development related to space: irishspacehacker.blogspot.com

(Note: Get Location button is currently not working, you can use the Select Location button to select a point on the globe or manually enter the coodinates instead)


The goal of the project is to develop a web service which will allow users to specify an area of the Earth's surface and query when Earth observation satellites will be in position to observe the area, so that they can plan observation campaigns. This includes the visualisation of the satellites orbits, and their instruments footprint, using the digital globe Cesium.js.

It is achieved using SGP4 orbital propagators to predict the satellites future locations based on their latest Two Line Elements (TLE's), sourced from Celestrak. It uses custom algorithms to generate the .czml file to visualize the satellites orbits, to calculate the swath width of the on-board instruments, and to calculate which instruments, on-board which satellites, intersect the area of interest.


User Interface


The left column shows the Cesium globe which is used to visualize the satellites orbits and select locations to query. There's a toolbar button for making this full screen, and you can change the current time and speed of time using the interface along the bottom.

The Select Location, and Select Polygon buttons are used to specify a point/area which you would like to query. When selected, the Select Location button works by left clicking a point on the Earths surface, while the Select Polygon button works by left clicking several points and then right clicking the final point to specify your area of interest. These points should be selected in clockwise or anti-clockwise order (rather than in a zig-zag fashion).

List of Satellites and TLE Source

The middle column shows the list of satellites in the database. If you click on an individual satellites name, it will show you the orbit of the satellite over the next 24 hours. Details about the satellite are shown in the bottom right of the screen, including the TLE used to generate its orbit and the instrument on-board. If you click on the Show Footprint toolbar button, and then click on the satellite's icon as it orbits the globe, it will show the footprint of the satellites on-board instrument.

Below the list of satellites in the middle column is an area where you can update the list of satellites with their latest TLE, or add more satellites to the default list. The list of sources are from the different categories listed on Celestrak. In order to update the list, select the source you like, and click Update TLE's. This will update any existing satellites in the database and add new entries for those not already there. You must create a user account using the button in the top right in order to update the list. The default list is a sample of Earth observation satellites and instruments, as well as the ISS for special interest.

Query Parameters, Satellite Info and Add Your Own Satellite

The right column allows you to manually fill in the coordinates of the point/area you would like to query. This can be for single location or a comma separated list of coordinates. This area is automatically filled in when you use the toolbar buttons to select a location, or polygon. You can also fill in your own location using the Get Location button alongside.

Below this you can set the date range for your query, this is automatically filled in with a date range for the next 24 hours if not selected. Below this are radio buttons to select the query types, which are explained below.

The bottom right of the screen is where the satellites info is displayed. If no satellite is selected, (click the Home button on the top menu bar to reload page), then this section allows you to add a satellite to the database, along with an on-board instrument. To do this you fill in the name and TLE of the satellite you wish to add. This must be in the format specified in this Celestrak article. The satellite number must be unique, which is the 5 digit number at the start of the first and second line. You must create a user account and be logged in to use this feature.


There are two main types of queries:

Orbit Visualisation

Select the checkbox’s of the satellites you are interested in, and click the Show Orbit button, this will display the satellites orbits over the next 24 hours. You can also choose a different time range for the orbits using the date range selector in the right column.

Overpass Queries

There are 3 types of overpass queries, which are selected using the radio buttons in the right column. The different types of overpass query are explained below, however each of them require you to:

  • Select the checkboxes of the satellites you are interested in
  • Select the ground stations by either the Select Location or Select Polygon toolbar buttons or manually entering the coordinates
  • Select the date range for the query, the larger the date range, the longer the query takes, date ranges of 1-2 days are advised.
Finally select the radio button for the query type, and click the Get Over Passes button. The results of the query are shown in the bottom right of the screen. Each satellite which had a valid overpasses is listed, as well as the start time of the overpass. You can visualise the overpass by selecting the radio button and clicking the Show Overpass Button.

Within Instrument Swath

This query returns the satellites whose on-board instruments footprint intersects with the area of interest during the queries specified time frame. The footprint is displayed using a green cone in Cesium. This is more restrictive than the next query, as the instruments footprint is much smaller than the "visible" footprint of the satellite. This would be useful for scientists trying to plan an Earth observation campaign for a specific area of the Earth.

All Passes

This query returns every satellite which passes over the ground station(s) such that it has a direct line of sight to them, during the queries specified time frame. When visualising the orbit in Cesium, the area for which this query is valid is displayed using a red circle. This query is the least restrictive of the 3, and would be useful for amateur radio operators, wishing to know when they are in range of a satellite.

Visible Passes Only

This is a more restrictive version of All Passes, in that it only returns the passes which are at a time of day such that they would be visible to the naked eye. This is usually just after dusk, or just before dawn, when the observer on the ground is still in darkness, yet the satellite is lit by the sun. This would be useful for hobbyists wishing to observe the International Space Station for example.

Other Features


Select API from the top menu bar to see examples of how to make API calls to the web app. This includes a call to generate a CZML file which describes the orbit of a list of satellites, in a specified date range, which you can be used for your own program, or to visualize the orbit by dragging and dropping the file into Cesium Viewer.

You can also make a overpass query call, which returns a JSON encoded list of the overpasses which conform to your query.

Run Previous Queries

When logged in, all your queries are recorded. If you click on your username in the menu bar, you will see a list of the queries in the bottom right of the screen, which you can then select and re-run.

Libraries Used