Using the AzEl Mask Tool

STK Pro, STK Premium (Air), STK Premium (Space), or STK Enterprise
You can obtain the necessary licenses for this tutorial by contacting AGI Support at support@agi.com or 1-800-924-7244.

The results of the tutorial may vary depending on the user settings and data enabled (online operations, terrain server, dynamic Earth data, etc.). It is acceptable to have different results.

Capabilities covered

This lesson covers the following capability of the Ansys Systems Tool Kit® (STK®) digital mission engineering software:

  • STK Pro

Problem statement

Engineers and operators need a quick way to determine if structures or vehicles affect visibility between sites, vehicles, or satellites. This gives insight into communications, imaging, radar, and general situational awareness. You are testing a satellite tracking sensor, which is being deployed on board a ship. You need to determine how much of the sensor is blocked by the ship's superstructure and that will affect the sensor's performance.

Solution

Use the AzEl Mask tool to determine the extent to which the ship's superstructure interferes with the sensor's access to the satellite.

What you will learn

Upon completion of this tutorial, you will understand how to:

  • Create a body mask file with the AzEl Mask tool
  • Use a body mask file for a sensor AzEl Mask constraint
  • Visualize the sensor AzEl Mask constraint in the 3D Graphics window

Creating a new scenario

First, you must create a new STK scenario, then build from there.

  1. Launch the STK application ().
  2. Click Create a Scenario in the Welcome to STK dialog box.
  3. Enter the following in the STK: New Scenario Wizard:
  4. Option Value
    Name AzElMaskTool
    Location Default
    Start 24 Jul 2024 16:00.00.000 UTCG
    Stop + 1 day
  5. Click OK when you finish.
  6. Click Save () when the scenario loads.
  7. A folder with the same name as your scenario is created for you.

  8. Verify the scenario name and location in the Save As dialog box.
  9. Click Save.

Save () often during this lesson!

Disabling streaming terrain

By default, the STK application connects to the Ansys Geospatial Data Cloud to distribute Earth terrain data for analysis and visualization. Turn off streaming terrain, as it is not required for your analysis.

  1. Right-click on AzElMaskTool () in the Object Browser.
  2. Select Properties () in the shortcut menu.
  3. Select the Basic - Terrain page when the Properties Browser opens.
  4. Clear the Use terrain server for analysis check box in the Terrain Server panel.
  5. Click OK to confirm your change and to close the Properties Browser.

Modeling the satellite

For this scenario, you will model a notional satellite in a circular orbit. Circular orbits have a constant radius.

Inserting a Satellite object

A Satellite object models the properties and behavior of a vehicle in orbit around a central body.

  1. Bring the Insert STK Objects tool () to the front.
  2. Select Satellite () in the Select An Object To Be Inserted list.
  3. Select the Orbit Wizard () in the Select A Method list.
  4. Click Insert....

Using the Orbit Wizard

The Orbit Wizard is a satellite-level tool designed to assist you in creating any one of several standard orbits, or designing your own satellite orbit.

  1. Enter TestSat in the Satellite Name field when the Orbit Wizard opens.
  2. Enter 750 km in the Altitude field in the Definition panel.
  3. Click OK to propagate the satellite and to close the Orbit Wizard.

Modeling the test ship

The test ship is holding a stationary position in the North Atlantic Ocean.

Inserting a Ship object

A Ship object models the properties and behavior of a ship.

  1. Bring the Insert STK Objects tool () to the front.
  2. Insert a Ship object () using the Insert Default () method.
  3. Right-click on Ship1 () in the Object Browser.
  4. Select Rename in the shortcut menu.
  5. Rename Ship1 () TestShip.

Defining the ship's route options

Manually define the ship's route by providing the waypoints, the altitude reference, and all other values that define its route.

  1. Open TestShip's () Properties ().
  2. Select the Basic - Route page when the Properties Browser opens.
  3. Keep the Propagator set to the default GreatArc method.
  4. The Great Arc Propagator defines the route of a vehicle that follows a point-by-point path along, over, or below the surface of the Earth at a given altitude or depth.

  5. Open the Route Calculation Method drop-down list.
  6. Select Specify Time.
  7. The Specify Time method allows you to set the Time properties of each waypoint forming the ship's route.

  8. Open the Reference drop-down list in the Altitude Reference panel.
  9. Select WGS84.
  10. Since you've disabled analytical terrain, you want the ship to sit on the surface of the WGS84 ellipsoid.

Defining the ship's waypoints

The waypoints that comprise the great arc route are contained in a table that displays each point, along with all of its properties, in sequence.

  1. Click Insert Point.
  2. Set the following options for the first waypoint:
    OptionValue
    Latitude31.0 deg
    Longitude-70.5 deg
  3. Click Insert Point again.
  4. The Latitude and Longitude will be duplicated for the second waypoint.

  5. Set the second waypoint's Time to 25 Jul 2024 16:00.00.000 UTCG.
  6. You want to be sure the ship remains stationary for the duration of your one-day analysis period.

  7. Click OK to confirm your changes and to close the Properties Browser.

Modeling the ship's satellite tracking sensor

The tracking sensor is mounted in a radome atop the ship's superstructure.

Inserting a Sensor object

A Sensor object models the field of view and other properties of a sensing device attached to another STK object.

  1. Bring the Insert STK Objects tool () to the front.
  2. Insert a Sensor () object using the Insert Default () method.
  3. Select TestShip () when the Select Object dialog box opens.
  4. Click OK to confirm your selection and to close the Select Object dialog box.
  5. Rename Sensor1 () SatTracker.

Viewing TestShip in the 3D Graphics window

Zoom to TestShip in the 3D Graphics window, which will allow you to view changes to SatTracker.

  1. Bring the 3D Graphics window to the front.
  2. Right-click on TestShip () in the Object Browser.
  3. Select Zoom To in the shortcut menu.

TestShip and attached tracking sensor

By default, SatTracker is attached to TestShip's center point. To model SatTracker correctly using the AzEl Mask tool, you need to move it to the location on TestShip where it is actually located.

Positioning the sensor on the model

The sensor's Location properties enable you to position a sensor with respect to its parent object.

  1. Open SatTracker's () Properties ().
  2. Select the Basic - Location page when the Properties Browser opens.
  3. Open the Location Type drop-down list.
  4. Select Fixed.
  5. With a fixed location type, the location of the sensor is defined using a fixed displacement vector with respect to the parent object's body frame. The displacement can be defined using either Cartesian or Spherical coordinates, which are in the sensor's parent body frame.

  6. Leave the Type set to Cartesian in the Fixed Location panel.
  7. Set the following Cartesian coordinates:
  8. Option Value
    X 25 m
    Y -3.5 m
    Z 21.3 m
  9. Click Apply to confirm your changes and to keep the Properties Browser open.
  10. You could also select 3D Model as the Location Type and use the ship model's attach points or the sensor's 3D Graphics Vertex Offset properties to position the sensor.

  11. Bring the 3D Graphics window to the front to view the new location of SatTracker ().

New sensor location

You can see that SatTracker is now located at the correct position on TestShip.

When you position a sensor origin, make certain that it is outside the shell of the 3D model; otherwise the AzEl Mask tool will not work.

Using a Complex Conic sensor type

Complex Conic sensor patterns are defined by the inner and outer half angles and minimum and maximum clock angles of the sensor's cone. The clock angles define the range of rotation about the boresight relative to the up vector.

  1. Return to SatTracker's () Properties ().
  2. Select the Basic - Definition page.
  3. Open the Sensor Type drop-down list.
  4. Select Complex Conic.
  5. Enter 180 deg in the Outer field in the Half Angles panel.
  6. Click OK to confirm your changes and to close the Properties Browser.

Creating a baseline Access report

Use the Access tool to compute access and to create an Access report from SatTracker to TestSat to serve as a baseline, which does not take the ship's 3D model into consideration.

  1. Right-click on SatTracker () in the Object Browser.
  2. Select Access... () in the shortcut menu.
  3. Select TestSat () in the Associated Objects list when the Access tool opens.
  4. Click .
  5. Click Access. . . in the Reports panel.
  6. Note the Total Duration when the Access report opens.
  7. This number is your benchmark.

  8. Keep the Access report open.
  9. Close the Access tool.

Creating a body mask with the AzEl Mask tool

There are several ways of applying an azimuth-elevation mask to a sensor. For this tutorial, you will create a body mask. The term body masking refers to the line-of sight-obstruction caused by the three-dimensional model of the parent object of the sensor or other objects in the scenario. A body mask file (*.bmsk) file represents obstructions to visibility from the point of view of the sensor. It is an ASCII text file formatted for compatibility with the STK application that ends in a .bmsk extension. It provides data used to restrict visibility to a sensor. Use the AzEl Mask tool to generate a body mask file. The tool builds the body mask from images of 3D object models and central body shapes as seen from the center of the sensor via perspective projection. It relates the mask by processing images on all six sides of a 3D cube, which overlap slightly to ensure correct processing at the boundaries. The mask consists of one or several contours encoded in AzEl space on each side of the cube, where each contour follows along the boundary of the image of an obstruction. The AzEl mask is built by observing in all directions around the sensor regardless of its field of view. The obscuration contours are constructed using an edge-detection algorithm and stored along with information describing the orientation of the view from which they were constructed. This permits independent setting of visibility limitations in the Access tool calculations using Field of View and Sensor AzEl Mask constraints.

Opening the AzEl Mask tool

You can access the AzEl Mask tool from the Sensor menu in the Menu Bar.

  1. Select SatTracker () in the Object Browser.
  2. Select the Sensor menu in the Menu Bar.
  3. Select AzEl Mask....

Using the AzEl Mask tool

Start by setting up the AzEl Mask tool prior to creating a body mask file. The AzEl Mask tool contains two parts:

  • The Az/El Mask View window allows you to see the obscuring objects in the six views used in generating the contours.
  • The AzEl Mask dialog box enables you to identify obscuring objects and define the instant in time at which obscuration contours are computed. The time at which obscuration contours are computed is independent of the current animation time and may be important in cases where the parent body has articulating parts or if objects other than the sensor parent body are considered as obstructions.

Select TestShip as the obscuring object and set the Az/El Mask View window's dimensions to 500 pixels per side.

  1. Move the AzEl Mask for SatTracker dialog box to the right so that it isn't on top of the Az/El Mask View window, if needed.
  2. Select TestShip () in the Obscuring Objects list.
  3. Enter 500 in the Window Dim field in the Data panel.
  4. This is the height and width, in pixels, of the window used to generate the body mask. Larger window sizes produce more accurate masks, which require more access computation time.

    A mask file cannot be generated if the window dimensions are too small or if they are larger than the STK workspace. If a Window Dim value of 500 places this window outside of your STK workspace — for example, if you have a small screen size — decrease the value until it fits inside the STK workspace.

  5. Leave the Do not render normal 3D windows while computing check box selected in the Rendering panel.
  6. This will stop the rendering in the 3D Graphics window when the tool is computing data, which can improve the speed of the computations.

  7. Click Apply to confirm your changes and to keep the AzEl Mask tool open.

Creating a body mask file

You can now create a static body mask file to use for visualization and analysis.

  1. Click Compute. . ..
  2. Ensure your body mask file will be saved in your scenario folder (for example, C:\Users\<username>\Documents\STK_ODTK 13\AzElMaskTool) when the Select Body Mask File dialog box opens.
  3. Use the default File name (SatTracker.bmsk).
  4. Click Save.
  5. The six views used to construct the mask will be shown in successive fashion when you save your body mask file. You can see outlines of the ship's mast and radar dish.

    AzEl Mask View Window

  6. Close () the Az/El Mask View window when the computations are complete to close both it and the AzEl Mask dialog box.

Viewing the body mask file

Take a look at the contents of your body mask file to better understand what it will do. The file contains data groups and data elements to ensure that the data contained in the file can be read by the STK application. A data group identifies a group of related quantities that are specified on the same time grid. The information contained in each data group consists of keywords their associated values, which are called keyword phrases. Individual values are specified using data elements.

  1. Open Windows File Explorer.
  2. Navigate to your scenario folder (for example, C:\Users\<username>\Documents\STK_ODTK 13\AzElMaskTool).
  3. Open SatTracker.bmsk with the text editor of your choice (for example, Windows Notepad or Notepad++).
  4. Scroll through the file contents.
  5. Body Mask File Contents

  6. Note the MaxAngleBetweenSamples data element is specified as 5.0000000000000000e+00, the default value.
  7. Additional points on the obstruction boundary, as determined using the interpolation method, were added whenever the angular separation between points in the file was greater than this setting. The additional points provide better accuracy in access computations using the body mask constraint.

  8. Note the Exclusion and Inclusion data groups.
  9. Whereas an azimuth-elevation mask file (*.aem) only identifies areas of exclusion, a body mask file identifies areas of inclusion and exclusion for the relative position vector from the sensor to a target of interest, expressed using azimuth and elevation angles. These angles are measured by specifying a pole axis and reference axis in the frame of some reference axes. When the mask file itself does not specify the reference axes, the STK application assumes the axes are the sensor parent's body axes. The azimuth angle is measured in the plane perpendicular to the pole axis from a reference axis in that plane to the projection of the relative position vector into the plane. The elevation angle is measured from the plane to the relative position vector. When using a body mask file, the pole axis is the +Z axis and the reference axis is the +X axis. Azimuth is measured positively using the right-hand rule about the +Z axis, and elevation is measured positively toward the +Z axis from the X-Y plane. These data groups specify the actual inclusion and exclusion zones.

  10. Note the comments in each of these data groups indicating along which direction the inclusion and exclusion zones are generated and the LocalZ and LocalX keyword phrases.
  11. The latter keyword phrases specify the relationship between the Z and X axes used in the description of the Az/El coordinates and the body frame of the parent object of the sensor. Elevation is measured as the angle out of the local X-Y plane, positive in the direction of +Z. Azimuth is measured as the angle in the local X-Y plane from X positive in the direction of Y.

  12. Note the NumAzElPairs keyword phrases and the AzElPairs data groups.
  13. Points along an exclusion or inclusion boundary are identified by groups of azimuth/elevation coordinate pairs, where the angles are measured in a local reference frame that is related to the mask references axes frame by the local axis directions specified with the contour. The NumAzElPairs data element specifies the maximum number of azimuth/elevation coordinate sets to follow in the respective AzElPairs data group.

  14. Close your text editor without making any changes when you are finished.
  15. Return to the STK application.

Applying the body mask file to SatTracker

You can apply the body mask file to SatTracker as an access constraint by updating the Sensor AzEl Mask properties. Then, modify SatTracker's 2D and 3D Projection graphics properties to visualize the AzEl Mask constraint in the 3D Graphics window.

Constraining SatTracker with the body mask file

Apply the body mask file as an access constraint.

  1. Open SatTracker's () Properties ().
  2. Select the Basic - Sensor AzEl Mask page when the properties browser opens.
  3. Open the Use drop-down list.
  4. Select MaskFile.
  5. Click the Mask File ellipsis ().
  6. Browse to your scenario folder (for example, C:\Users\<username>\Documents\STK_ODTK 13\AzElMaskTool) when the Select File dialog box opens.
  7. Select SatTracker.bmsk.
  8. Click Open to confirm your selection and to close the Select File dialog box.
  9. Select the Use Mask for Access Constraint check box.
  10. This will enable the Sensor Az-El Mask constraint, which you can confirm is selected on the Constraints - Basic properties page.

  11. Click Apply to confirm your changes and to keep the Properties Browser open.

Visualizing SatTracker's AzEl Mask constraint

In order to visualize the constraint that SatTracker is using, you have to define which constraint is used to modify its field of view. Use SatTracker's 2D Graphics Projection Graphics properties to control the display of its projection graphics in the 2D and 3D Graphics windows.

  1. Select the 2D Graphics - Projection page.
  2. Select the Use Constraints check box in the Field of View panel.
  3. Select SensorAzElMask in the list.
  4. Click Apply to confirm your changes and to keep the Properties Browser open.

Defining the 3D Graphics Projection properties

SatTracker's 3D Graphics Projection properties are used to control the display of its cone into space as well as the its extension into space. This is a visualization property, not an analytical property.

  1. Select the 3D Graphics - Projection page.
  2. Enter 30 m in the Space Projection field in the Extension Distances panel.
  3. Extension distances define the length of SatTracker's projection. In this case, the distance is computed so that the projection of the outermost point on the contour along the bore sight is equal to the distance entered.

  4. Click OK to confirm your changes and to close the Properties Browser.

Visualizing the body mask in the 3D Graphics window

You can now view the body mask in the 3D Graphics window.

  1. Bring the 3D Graphics window to the front.
  2. Maximize your 3D Graphics window.
  3. Zoom to TestShip ().
  4. Use your mouse to zoom out until you can the whole ship and some of the body mask.

TestShip body mask

You can see that SatTracker's field of view is being blocked by elements of TestShip's superstructure.

Refreshing the Access report

Refresh your Access report to take into account the constraints imposed by the body mask file.

  1. Bring your Access report to the front.
  2. Click Refresh (F5) () on the report toolbar.
  3. Note the Total Duration.

    Without taking the ship's superstructure into account, the original total access was nearly a quarter of an hour longer. It is evident the superstructure reduces the amount of time that you can track the satellite by a significant extent.

  4. Close the Access report when finished.

Saving your work

Clean up your workspace and close out your scenario.

  1. Close any open reports, properties and tools.
  2. Save () your work.

Summary

You modeled a ship deploying a sensor that tracks satellites. You propagated a single, notional satellite, then you used a Sensor object to model the field of view of the sensor and attached it to a 3D model of the ship. You then generated an Access report between the sensor and the satellite to create a benchmark access duration. You then used the AzEl Mask tool to create a body mask file to account for ship's superstructure, which obscured portions of the sensor's field of view. Finally, you refreshed your access report, which allowed you to determine the extent to which the ship's superstructure affected your overall access duration.