Have you ever wondered what exactly the difference is between the Terrain Mask and Az-El Mask constraints in STK? Despite the names, both can be used to consider line of sight masking due to surrounding terrain. So, the question becomes, which should you use?
While both constraints account for your terrain data, they use different methods of determining the terrain obstruction. The Az-El Mask constraint works by first extending a number of rays in directions of constant azimuth outwards from your Facility, Place, or Target object. Information for where any terrain obstructions occur is then stored for each ray. Then, when computing access between this object of interest and another object, the obstruction information from the two rays bounding the line between the two is used to compute an interpolated solution. The Az-El Mask constraint therefore requires a larger computation time up-front to create the mask but can then reference that solution and use interpolation to determine visibility over the entire analysis period without additional computations.
The Terrain Mask constraint, on the other hand, works by determining instantaneous visibility by detecting intersections of the instantaneous line of sight with the terrain surface. Therefore, compared to the Az-El Mask the Terrain Mask doesn’t require a large up-front computation but instead conducts computations throughout the entire analysis period.
So, when should you use one mask constraint over the other? There are several factors at play including the length of the analysis period, the position(s) of the object of interest (Are they moving or fixed?), and whether or not you are doing visibility between two objects or between an object and a coverage grid. Check out the section on this Constraints Help Page (scroll to the bottom) for more details on the advantages and disadvantages of each constraint. Here is a list of some sample use cases and which constraint typically works best.
Fixed ground to air. It is generally more efficient to utilize the Az-El Mask constraint when computing visibility between a fixed object and a moving object or objects. In this case, an Az-El Mask is generated up-front at the fixed object’s location which is then used to determine visibility to the moving object over time.
Air to Air. Only the Terrain Mask constraint is available since you need a Facility, Place, or Target object to utilize the Az-El Mask constraint.
Fixed ground to fixed ground. The best option here is to use the Terrain Mask because you only need to look along a single direction connecting the two fixed locations. If using Az-El Mask, a full 360 deg. mask would need to be computed up-front.
Fixed ground to coverage grid. If you want to consider terrain masking at each grid point in a coverage grid it is often much faster to use Terrain Mask. If using Az-El Mask it will compute the up-front mask for every grid point in your coverage definition which can be very expensive.
I decided to test these recommendations by creating an example STK scenario and comparing the difference in runtime between the two constraints. Below are the results!
Fixed ground to air. To test this I inserted a Place object and set its position at the Kaibab Suspension Bridge located in Grand Canyon National Park. I then modeled a helicopter which flies a continuous circle pattern around the bridge at 6000 ft.
I varied the scenario analysis period and captured the computation time for each constraint. The results were:
- At ~8 min flight time:
- Az-El mask runtime = 1.16 sec
- Terrain mask runtime = 4.00 sec
- At ~90 min flight time:
- Az-El mask runtime = 1.87 sec
- Terrain mask runtime = 39.58 sec
- At ~6 hours flight time:
- Az-El mask runtime = 2.34 sec
- Terrain mask runtime = 136.49 sec
Notice how the Az-El Mask runtime only increases slightly. This is because the majority of the computation time goes toward creating the mask up-front. No matter how long the analysis period is, all successive computations are much faster because it’s interpolating the solution from the up-front mask. The computation time for the Terrain Mask however increases near-linearly as it must compute the instantaneous visibility throughout the entire analysis period.
Fixed ground to coverage grid. To test this, I inserted a Place object and set its position at Yavapai Point in Grand Canyon National Park. I then modeled a 5 km circular coverage grid over the canyon below and gave it a grid point distance granularity of 1 km which resulted in 31 unique grid points.
The computation times for the two constraints were:
- Az-El mask runtime = 320.70 sec
- Terrain mask runtime = 67.56 sec
In this case the up-front computation time needed to generate an Az-El mask at each grid point location outweighs the instantaneous visibility computed by the Terrain Mask constraint.
Feel free to experiment on your own with the other use cases! And when in doubt, remember to reference the section on this Constraints Help Page for more details on the advantages and disadvantages of each constraint.