How to Model a Search and Track Radar in a Custom Application

Did you know that STK allows an end user to model objects in space and time?

STK11 included a lot of new features among those an object model paradigm for Communications and Radar objects. In this blog, we are going to focus on the Radar ones.

This is a simple example to show you how to implement a Search and Track Radar into a custom application using the new object model paradigm. References to the full documentation can be found here

First of all you can define a radar object, obviously following the STK desktop paradigm, it needs to be attached to another object, in this case a facility:

//Add a facility to the scenario

AgFacility facility = root.CurrentScenario.Children.New(AgESTKObjectType.eFacility, "MyFacility") as AgFacility;

facility.Position.AssignGeodetic(13, 41, 0);

AgRadar radar = facility.Children.New(AgESTKObjectType.eRadar, "MyRadar") as AgRadar;

You can specify then configuration parameters for the radar object, such as Model, Mode, Antenna type, Orientation, Transmitter Frequency, Transmitter Power and so on.

//Configure the radar object as a monostatic model.


IAgRadarModelMonostatic monostaticModel = radar.Model as IAgRadarModelMonostatic;

//Orient the radar antenna in the direction of the target

radar.Model.AntennaControl.EmbeddedModelOrientation.AssignAzEl(50.9, 36.8, AgEAzElAboutBoresight.eAzElAboutBoresightRotate);

//Set the radar antenna model to parabolic


IAgAntennaModelParabolic parabolic = radar.Model.AntennaControl.EmbeddedModel as IAgAntennaModelParabolic;

//Give the parabolic antenna a 2 deg beamwidth;

parabolic.InputType = AgEAntennaModelInputType.eAntennaModelInputTypeBeamwidth;

parabolic.Beamwidth = 2.0;

//Put the monostatic radar model in Search/Track mode

monostaticModel.SetMode("Search Track");

IAgRadarModeMonostaticSearchTrack searchTrackMode = monostaticModel.Mode as IAgRadarModeMonostaticSearchTrack;

//Set the waveform type to fixed prf


IAgRadarWaveformMonostaticSearchTrackFixedPRF fixedPrf = searchTrackMode.Waveform as IAgRadarWaveformMonostaticSearchTrackFixedPRF;

fixedPrf.PulseDefinition.Prf = 0.002; //2 kHz

//Set the pulse width to 1e-8 sec

fixedPrf.PulseDefinition.PulseWidth = 1.0e-8; //sec

//Set the number of pulses

fixedPrf.PulseDefinition.NumberOfPulses = 25;

//Set the pulse integration strategy to goal SNR

fixedPrf.PulseIntegrationType = gERadarPulseIntegrationType.eRadarPulseIntegrationTypeGoalSNR;

IAgRadarPulseIntegrationGoalSNR pulseIntGoalSNR = fixedPrf.PulseIntegration as IAgRadarPulseIntegrationGoalSNR;

pulseIntGoalSNR.SNR = 40.0; //dB

//Set the transmit frequency

monostaticModel.Transmitter.FrequencySpecification = AgERadarFrequencySpec.eRadarFrequencySpecFrequency;

monostaticModel.Transmitter.Frequency = 2.1; //GHz

//Set the transmit power

monostaticModel.Transmitter.Power = 50.0; //dBW

Then the next step is to compute the access between the radar and the target object, for this you need just these very simple lines:

//Create an access object for the access between the radar and target

IAgStkAccess radarAccess = radarAsStkObject.GetAccessToObject(aircraftAsStkObject);

//Compute access


After this you can follow the usual DataProviders approach to retrieve the values of your interest for this analysis.

And that’s it. It was easy, right?


Roberto Gemma

Roberto manages the international application engineering team.


Automate Systems Tool Kit (STK) and integrate it with other applications to extend its capabilities.


Model and analyze radar systems.