Revisiting whether STK Engine and STK Components produce the same results
- Jul 27, 2020
- Blog Post
In 2015, I created an application that was performing calculations with STK Engine and STK Components. I was able to demonstrate that when using the same configuration files and inputs, the two products calculate the same access results. Here is a link to my original article.
I recently received a report from a customer that they are seeing different values when calculating access using AER (Azimuth/Elevation/Range). I dusted off my application, upgraded to our latest versions, added code to calculate AER and confidently ran my application. I was shocked to get slightly different results.
The first thing I noticed is that recent version of STK automatically calculate the height of the ground location (e.g., facility, place, etc.) if you have access to the terrain server. To make STK Components and STK Engine match in this regard, you can either get the height from the terrain server in the Components version:
StkTerrainServer terrainServer = new StkTerrainServer(); double height = terrainServer.GetHeight(Trig.DegreesToRadians(m_longitude), Trig.DegreesToRadians(m_latitude)); Cartographic location = new Cartographic(Trig.DegreesToRadians(m_longitude), Trig.DegreesToRadians(m_latitude), height);
or you can turn off analytical terrain for STK Engine:
m_stkRoot.ExecuteCommand("TerrainServer / UseAgiServer No Server \"AGI SEDS/Geospatial Content Server\" Tileset \"world\"");
Addressing that inconsistency fixed the difference in access times, but I was still getting differences in AER. This is because STK uses “pretty time.” If STK finds an access starting 20:15.354 and reports AER at 60 second intervals, the next reported result will be at the 21:15.000 timestamp, while STK Components will calculate values at the 21:15.354 time stamp. Differences of up to a half second may not seem significant, but they can be noticeable, especially if you have LEO satellites.
Both products calculate access by stepping through the analysis period, and both products allow you to modify the step size. Increasing step size would increase performance, but it would also run the risk of “stepping over” access intervals. Conversely, reducing step size would decrease risk at the expense of performance. You are free to decide the best way to configure each product. In STK, an access object’s “Advanced” properties enable you to fine tune precision. STK Components has even more options. Each constraint has a base “sampling” property that controls time aspects of the access calculation. Furthermore, each constraint has individual properties that enable you to change the precision.