Development & Integration

DSoft Technology has the ability to perform the following types of analyses to provide engineering and technical analysis support for your satellite and space control mission. For additional information and examples of our work, please click here.


Some of the following demos require Java.

Standardized Astrodynamic Algorithms (SAA) Unit Testing

DSoft Technology provided support to AFSPC in conducting unit testing and documentation for the release of new Standardized Astrodynamic Algorithms (SAA) versions. AFSPC personnel created a unit testing framework using Python’s built-in unit testing capabilities to test the SAA DLLs and associated language wrappers. The creation of unit tests for each SAA DLL was assigned to subject matter experts (SMEs). DSoft worked with these SMEs, often in pair-programming situations, providing the SMEs with assistance in unit testing strategies, framework expertise and Python syntax. This collaboration allowed the SMEs to create quality unit tests without being burdened by programming and framework issues that are not related to their core mission. The resulting unit tests have already identified some long-standing issues with the SAA code and will provide a lasting benefit to the SAA program by allowing the unit tests to quickly identify many types of issues before the more labor intensive verification and validation (V&V) tests are run.

Standardized Astrodynamic Algorithms (SAA) Documentation

DSoft Technology revised and updated the documentation provided to users as part of the Standardized Astrodynamic Algorithms (SAA) distribution. In previous versions, the documentation for each SAA module was split into two parts. The API documentation was provided as compiled help files (CHM) which were generated automatically from the SAA source code. Microsoft Word documents (DOC) were also provided which included explanatory information, use cases, and data format descriptions. The DOC files also included duplicate API documentation with added examples and remarks.

DSoft Technology revised the documentation structure to consolidate all the documentation in the CHM files. The API remarks and examples from the DOC files were moved into specially-formatted comments in the SAA source code so they could be extracted as part of generating the CHM version of the API documentation. This eliminated the need for the redundant DOC API documentation, eliminated the possibility that the two versions of API documentation would differ, and put the remarks and examples in the source code where they will be most easily maintained by the programmers as changes are made. The additional content provided in the DOC files was converted to GhostDoc custom content pages and included in the CHM files. This effort puts the documentation in a format more easily maintained by AFSPC and provides SAA users with a single source of documentation for each module.

Standardized Astrodynamic Algorithms (SAA) Distribution on Space/Cyberspace Analysis Resource Portal

Air Force Space Command (AFSPC) distributes the International Traffic in Arms Regulations (ITAR) controlled Standardized Astrodynamic Standards (SAA) on the Space/Cyberspace Analysis Resource Portal (SARP) website. These include SGP4, SP/SPETH, LAMOD, COMBO, BatchDC, FoV, AoF, ROTAS and IOMOD/OpsObs. The request process follows a detailed workflow that complies with AFSPC Instruction 33-105 and ITAR. Automation of the request process has reduced the time for requests to be approved and provides an easy mechanism for users to download the approved software. DSoft Technology designed, developed and deployed the SAA distribution in the SARP application which includes a detailed workflow from a user requesting software, technical review of the request requirements, approval by AFSCP and distribution to users (download). As new releases of the SAA are provided, these are uploaded into SARP and notifications are sent to users who had requested earlier releases.

Public Astrodynamic Standards Distribution (PADS) Website

DSoft Technology created the Public Astrodynamic Standards Distribution Site (PADS) website that augments SARP as a means of providing Standardized Astrodynamic Algorithms (SAA) information and access to the request process to a wider audience at a lower cost. DSoft had previously created and maintains the Space/Cyberspace Analysis Resource Portal (SARP) website which automates the SAA request process. However, access to that site is only available on the Air Force (AF) Non-Secure Internet Protocol Router Network (NIPRNet). Users without access to NIPRNet using a Common Access Card (CAC) have submitted requests via email and SARP administrators manually enter those requests into SARP - a process that was error prone and time consuming resulting in delayed delivery of software to the end customer. The PADS website was designed to alleviate this issue by providing a publically-accessible website which included the complete SAA request wizard process and an automated method for importing these requests into SARP.

Users complete a multi-step wizard designed to collect all the information required for an SAA request, and the SARP website provides the administrators with tools to advance each request through the workflow process to approve, authorize and ultimately distribute requested software to users. The PADS site collects all the information required before the submission process starts and eliminates the manual entry of the request data in SARP. In order to protect the personally-identifiable information (PII) of requestors using PADS, the request data is encrypted with public-key encryption in a format that allows the SARP administrators to automatically decrypt and import the requests into SARP. The PADS website promises to make SAA requests originating from outside AF networks much easier on both the requestors and the SARP administrators, facilitating a wider distribution of SAA to interested users.

In addition to the SAA request wizard, the PADS site includes a frequently-asked questions (FAQ) section that provides a growing repository for information about the use of SAA modules. The FAQ is being created both with documentation and use cases created by SAA maintainers and with real questions submitted by SAA users. The FAQ provides SAA users with a convenient means of finding answers to questions about SAA implementations and removes the burden on AFSPC personnel to continually address the same issues raised by different users.



The Space Analysis INtegration Toolkit (SAINT) is a toolkit and framework that allows a user to create a new application by combining SAINT components, assemblies, and applications. A key element of the framework is the inclusion of the Air Force Space Command (AFSPC) Astrodynamic Standard(s) and Algorithm(s) Library (ASAL), and other algorithms developed by AFSPC. Currently SAINT includes components and assemblies for SGP4 - Satellite General Perturbations 4, SP - Specialized Perturbations, LAMOD - Look Angle Module, SimOrb - Orbit simulation, Decay - Satellite decay & lifetime using King-Hele and BLUE - Bob's Launch Update Ensemble. COMBO - Computation of Miss Between Orbits and ROTAS - Report/Observation Association) algorithms are being added this year. SAINT is the ideal toolkit for building space analysis applications as it is flexible and facilitates the development of tailored applications in a short period (approximately one to three days depending upon the complexity of the application). Built-into the toolkit are data utilities to persist data inputs and outputs in a variety of formats including eXtensible Markup Language (XML) and Microsoft™ Excel. Also included are 2D and 3D visualization components that can be connected to the output of the ASAL components to display sensor coverage and satellite orbits.

Automated Testing Framework


The Automated Testing Framework (ATF) is utility tool used to easily test and verify any Astrodynamic Standard(s) and Algorithm(s) Library (ASAL). It provides a very intuitive user interface where the user can create and manage various test cases and group multiple test cases together in bundles. Tests can then be run against any and/or all cases in a specific bundle. Verification of the test results is performed by comparing output results versus baseline output files. A separate tool called VERDICT is used for this comparison and can be configured as to which accuracy the results have to match. Test cases, bundles and results are stored in XML format so they can be easily shared with other users. The tool can be easily extended to include other types of algorithms.



SATRAK (v7) is the replacement for SATRAK (v6), a legacy DOS application. SATRAK generates ground site look angles and ground traces of earth orbiting satellites. The new version provides a modern and interactive user interface suited for current Windows operating systems. SATRAK (v7) was created using the Space Analysis INtegration Toolkit (SAINT), which demonstrated the complexity of tools that can be built and deployed with SAINT. The new version allows analysts to exercise various Astrodynamic Standards (SGP4 - Satellite General Perturbations 4, LAMOD - Look Angle Module, SimOrb - Orbit simulation, Decay - Satellite decay & lifetime using King-Hele, BLUE - Bob's Launch Update Ensemble, Sensor Coverage) and view the results on 2D & 3D maps, as plain text and/or as tabular data. The tabular data provides advanced sorting, filtering, and grouping capabilities as well as rules based conditional formatting. A graphing tool was also integrated into SATRAK to evaluate changes to a particular satellite's orbit or to perform statistical analysis on the satellite catalogue using Two Line Element (TLE) data. In addition to the integrated 3D view in SATRAK, a NASA WorldWind plug-in has also been developed to show satellite orbits.

Application Template


This is the most basic usage of the SDK. It displays the default globe with its default layers. It includes capabilities such as a compass and status bar that are common to most applications, and presents Earth within a star field and with an atmosphere. It requires only 6 lines of code to instantiate everything seen here.

Space Brawler/ Maneuver Detection and Recovery (MDR)


The Maneuver Detection and Recovery (MDR) is a MATLAB-based set of stand-alone programs that interfaces with Space Brawler to perform explicit frequent revisit, catalogue maintenance, and maneuver detection/recovery on tactically monitored objects. Sensor lists and objects are sent from Space Brawler initially, and when satellite maneuvers take place new position vectors are also sent (these constitute “truth” data). MDR receives these data and, at each time step, schedules the satellites for tracking; determines whether tracking in fact took place, uses the tracking data to perform maneuver detection, and then performs element set differential corrections either to update the standing element set or to begin the maneuver recovery process. The updated states, along with maneuver detection information, are sent back to MDR after each time step; these files constitute “perception” of the situation.

The programs take account of sensor outages, weather outages, probability of detection of targets, sensor priorities, and scheduling limitations (in a simplified manner). They use the AFSPC/A9 Astrodynamic Standards for determining look angles (LAMOD) (and thus unnoised sensor observations), observation association (OBS), calculation of residuals for each observation against the associated element set that determines whether a maneuver has occurred (ROTAS) and batch differential correction (BATCH DC). Because these programs are generic with regard to sensors and satellites used (these items being specified in input files), they can be used for maneuver detection/recovery for either red or blue systems.

The first iteration of MDR in Space Brawler incorporated older versions of the Astrodynamic Standards standalone executables which proved to be problematic as they were slow and didn’t take into account updates made to fix inaccuracies or logic incorporated into new versions of the algorithms. DSoft Technology made significant enhancements to the MDR module in Space Brawler by incorporating the Space Analysis INtegration Toolkit (SAINT) Dynamic Link Libraries (DLLs). The LAMOD executable was replaced with the SAINT LAMOD DLL with significant improvement in performance. The function in BatchDC that generates osculating elements from mean elements was replaced with a call to the SAINT AstroFunc DLL that significantly improved accuracy. The integration of SAINT DLLs into a MATLAB based program proved that the SAINT DLLs could be integrated into applications other than .Net Framework ones.

Future enhancements to MDR include the replacement of OBS, ROTAS and BatchDC standalone executables with the SAINT DLLs.

WMS Layer Manager


This example application demonstrates the SDK WMS capabilities. It features a WMS layer panel that allows you to access any WMS server and layers.

To add a server, click on the “+” tab and enter the server url. After the WMS discovery process, the list of available layers will be displayed. Select one to add it to the current globe layer list. Unselect it to remove it.

Covariance Matrix Visualization (CMV)

Covariance Matrix Visualization (CMV) is a standalone Windows Forms control developed by DSoft Technlogy that allows the user to visualize one or more covariance matrices of the same or different satellite as three-dimensional (3D) ellipsoids. The 3 axes of the ellipsoid represent the XYZ or UVW eigenvalues / eigenvectors derived from each covariance matrix. The ellipsoid can also be scaled based on a user-defined sigma value that will increase/decrease the ellipsoids radius. Calculation of the covariance matrix itself is outside of the scope of the user control but can be accomplished using Astrodynamic Standards suite of DLLs.

The CMV user control has a very simple architecture. The 3D rendering of the ellipsoid is implemented using OpenTK, a free open-source .Net library that wraps around OpenGL. The translation of the covariance matrix into ellipsoid parameters is handled by a custom math class in order to separate user interface logic from business logic.