pycon logo

PyCon 2011 Atlanta

March 9th–17th

Log in or Sign Up

Creating a Python Framework for Simulating Satellite Geolocation

log in to bookmark this presentaton

Experienced / Poster
This poster illustrates a Python application for simulating satellite geolocation called SatSim. Using all open-source components, SatSim allows the user to explore different satellite constellations and digital filter designs for determining position estimates. Visual outputs show satellite and observer geometry animated on user-customized maps for a high degree of user interaction.


It is hard to imagine daily life without having some sort of electronic indication of one's current location. Whether the purpose is for business or personal use, using in-vehicle systems or smart cell phones, we depend on the Global Positioning System (GPS) to tell us where we are. Yet the availability of the GPS should not be taken for granted. Both environmental (terrain, weather) and intentional interference (jamming) can reduce or deny satellite use. In order to investigate these and other issues as well as to explore possible alternative systems, a Python application called the Satellite Simulation Toolkit (SatSim) was created.

SatSim is a toolkit that integrates a number of functional elements that allow the user to explore different satellite constellations and digital filter designs for determining a position fix for an observer. The simple graphical user interface is broken down into four sections dealing with tasks, applications, resources, and sites using tabs and buttons. Tasks are Python scripts written in the form of wizards that guide a user through a series of steps to perform some sort of analysis, such as plotting the orbits of a satellite constellation or simulating the operation of a Kalman Filter to estimate an observer's position. Applications include standalone codes that perform some useful function like GPS Babel that can be used to interface a GPS receiver. Some applications have open APIs that allow mash-ups to be constructed as part of the task wizards. Resources gather together both web and local reference material, such as satellite ephemeris or data packet descriptions, in one convenient location. Finally, sites are user-customized maps that are used by the task wizards for visualizing simulations like satellite orbits and observer position estimate convergence. The intent is to put in one place all of the functionality needed by the user to investigate this topic.

This project uses the more general Geospatial Integrated Problem Solving Environment (GIPSE, pronounced gypsy) software framework created by the author. GIPSE allows custom applications having a geospatial basis to be developed quickly. It brings together an intuitive graphical user interface, a database, an automatic report generator, and a simple map viewer with markup tools. The GIPSE core is constructed with open-source tools, including Python, wxPython, and PostgreSQL, and uses non-copyrighted map data from NASA, USGS, and OpenStreetMap. Reports may utilize templates in either OpenOffice ODF or Microsoft OOXML.