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

By: Roberto Gemma

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?

Posted: 4/19/2017 7:12:46 PM