AGI STK Objects 11 Send comments on this topic.
IAgRadar Interface





Description

Provides access to the properties and methods defining an Radar object.

Object Model





Public Methods

Public Method IsRefractionTypeSupported Gets a value indicating whether the specified type can be used
Public Method SetModel Sets the current radar model by name.

Public Properties

Public Property Graphics Get the 2D Graphics properties for the radar.
Public Property Model Gets the current radar model.
Public Property Refraction Refraction method, a member of the AgESnRefractionType enumeration.
Public Property RefractionModel Gets a refraction model
Public Property RefractionSupportedTypes Returns an array of valid choices
Public Property SupportedModels Gets an array of supported model names.
Public Property UseRefractionInAccess Flag controls whether refraction is applied when computing relative position in Access
Public Property VO Get the 3D Graphics properties for the radar.

Example

Compute the probability of detection of a target for a monostatic search/track radar
[C#] Copy Code
IAgStkObject rdrAsStkObject = radar as IAgStkObject; 
IAgStkObject tgtAsStkObject = targetAircraft as IAgStkObject; 
 
//Enable the rain loss computation on the scenario RF environment 
scenarioRFEnv.PropagationChannel.EnableRainLoss = true
 
//Configure the radar object as a monostatic model. 
radar.SetModel("Monostatic"); 
IAgRadarModelMonostatic monostaticModel = radar.Model as IAgRadarModelMonostatic; 
 
//Orient the radar antenna in the direction of the target 
radar.Model.AntennaControl.EmbeddedModelOrientation.AssignAzEl(50.936.8, AgEAzElAboutBoresight.eAzElAboutBoresightRotate); 
 
//Set the radar antenna model to parabolic 
radar.Model.AntennaControl.SetEmbeddedModel("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 
searchTrackMode.SetWaveformType(AgERadarWaveformSearchTrackType.eRadarWaveformSearchTrackTypeFixedPRF); 
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 = AgERadarPulseIntegrationType.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 
 
//Enable rain loss computation on the receiver 
monostaticModel.Receiver.UseRain = true
monostaticModel.Receiver.RainOutagePercent = 0.001
 
//Enable the receiver system noise temperature computation. 
monostaticModel.Receiver.SystemNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate; 
 
//Enable the antenna noise temperature computation 
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate; 
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.UseRain = true
 
//Don't inherit the radar cross section settings from the scenario 
targetAircraft.RadarCrossSection.Inherit = false
IAgRadarCrossSectionModel rcs = targetAircraft.RadarCrossSection.Model as IAgRadarCrossSectionModel; 
 
//Set the radar cross section compute strategy to constan value 
rcs.FrequencyBands[0].SetComputeStrategy("Constant Value"); 
IAgRadarCrossSectionComputeStrategyConstantValue constValRcs = 
    rcs.FrequencyBands[0].ComputeStrategy as IAgRadarCrossSectionComputeStrategyConstantValue; 
 
//Set the constant radar cross section to 0.5 dBsm 
constValRcs.ConstantValue = 0.5//dBsm 
 
//Create an access object for the access between the radar and target 
IAgStkAccess radarAccess = rdrAsStkObject.GetAccessToObject(tgtAsStkObject); 
 
//Compute access 
radarAccess.ComputeAccess(); 
 
// Get the access intervals 
IAgIntervalCollection accessIntervals = radarAccess.ComputedAccessIntervalTimes; 
 
// Extract the access intervals and the range information for each access interval 
Array dataPrvElements = new object[] { "Time""S/T SNR1""S/T PDet1""S/T Integrated SNR""S/T Integrated PDet" }; 
 
IAgDataPrvTimeVar dp = radarAccess.DataProviders["Radar SearchTrack"as IAgDataPrvTimeVar; 
 
for (int index0 = 0; index0 < accessIntervals.Count; ++index0) 

    object startTime = null, stopTime = null
    accessIntervals.GetInterval(index0, out startTime, out stopTime); 
 
    IAgDrResult result = dp.ExecElements(startTime, stopTime, 60ref dataPrvElements); 
 
    Array timeValues = result.DataSets.GetDataSetByName("Time").GetValues(); 
    Array snr1 = result.DataSets.GetDataSetByName("S/T SNR1").GetValues(); 
    Array pdet1 = result.DataSets.GetDataSetByName("S/T PDet1").GetValues(); 
    Array integSnr = result.DataSets.GetDataSetByName("S/T Integrated SNR").GetValues(); 
    Array integPdet = result.DataSets.GetDataSetByName("S/T Integrated PDet").GetValues(); 
 
    for (int index1 = 0; index1 < timeValues.GetLength(0); ++index1) 
    { 
        string time = (string)timeValues.GetValue(index1); 
        double snr1Val = (double)snr1.GetValue(index1); 
        double pdet1Val = (double)pdet1.GetValue(index1); 
        double integSnrVal = (double)integSnr.GetValue(index1); 
        double integPdetVal = (double)integPdet.GetValue(index1); 
        Console.WriteLine("{0}: SNR1={1} PDet1={2} Integrated SNR={3} Integrated PDet={4}", time, snr1Val, pdet1Val, integSnrVal, integPdetVal); 
    } 
 
    Console.WriteLine(); 

 

Compute the probability of detection of a target for a monostatic search/track radar
[Visual Basic .NET] Copy Code
Dim rdrAsStkObject As IAgStkObject = TryCast(radar, IAgStkObject)
Dim tgtAsStkObject As IAgStkObject = TryCast(targetAircraft, IAgStkObject)

'Enable the rain loss computation on the scenario RF environment
scenarioRFEnv.PropagationChannel.EnableRainLoss = True

'Configure the radar object as a monostatic model.
radar.SetModel("Monostatic")
Dim monostaticModel As IAgRadarModelMonostatic = TryCast(radar.Model, 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
radar.Model.AntennaControl.SetEmbeddedModel("Parabolic")
Dim parabolic As IAgAntennaModelParabolic = TryCast(radar.Model.AntennaControl.EmbeddedModel, IAgAntennaModelParabolic)

'Give the parabolic antenna a 2 deg beamwidth;
parabolic.InputType = AgEAntennaModelInputType.eAntennaModelInputTypeBeamwidth
parabolic.Beamwidth = 2

'Put the monostatic radar model in Search/Track mode
monostaticModel.SetMode("Search Track")
Dim searchTrackMode As IAgRadarModeMonostaticSearchTrack = TryCast(monostaticModel.Mode, IAgRadarModeMonostaticSearchTrack)

'Set the waveform type to fixed prf
searchTrackMode.SetWaveformType(AgERadarWaveformSearchTrackType.eRadarWaveformSearchTrackTypeFixedPRF)
Dim fixedPrf As IAgRadarWaveformMonostaticSearchTrackFixedPRF = TryCast(searchTrackMode.Waveform, IAgRadarWaveformMonostaticSearchTrackFixedPRF)
fixedPrf.PulseDefinition.Prf = 0.002
'2 kHz
'Set the pulse width to 1e-8 sec
fixedPrf.PulseDefinition.PulseWidth = 1E-08
'sec
'Set the number of pulses
fixedPrf.PulseDefinition.NumberOfPulses = 25

'Set the pulse integration strategy to goal SNR
fixedPrf.PulseIntegrationType = AgERadarPulseIntegrationType.eRadarPulseIntegrationTypeGoalSNR
Dim pulseIntGoalSNR As IAgRadarPulseIntegrationGoalSNR = TryCast(fixedPrf.PulseIntegration, IAgRadarPulseIntegrationGoalSNR)
pulseIntGoalSNR.SNR = 40
'dB
'Set the transmit frequency
monostaticModel.Transmitter.FrequencySpecification = AgERadarFrequencySpec.eRadarFrequencySpecFrequency
monostaticModel.Transmitter.Frequency = 2.1
'GHz
'Set the transmit power
monostaticModel.Transmitter.Power = 50
'dBW
'Enable rain loss computation on the receiver
monostaticModel.Receiver.UseRain = True
monostaticModel.Receiver.RainOutagePercent = 0.001

'Enable the receiver system noise temperature computation.
monostaticModel.Receiver.SystemNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate

'Enable the antenna noise temperature computation
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.UseRain = True

'Don't inherit the radar cross section settings from the scenario
targetAircraft.RadarCrossSection.Inherit = False
Dim rcs As IAgRadarCrossSectionModel = TryCast(targetAircraft.RadarCrossSection.Model, IAgRadarCrossSectionModel)

'Set the radar cross section compute strategy to constan value
rcs.FrequencyBands(0).SetComputeStrategy("Constant Value")
Dim constValRcs As IAgRadarCrossSectionComputeStrategyConstantValue = TryCast(rcs.FrequencyBands(0).ComputeStrategy, IAgRadarCrossSectionComputeStrategyConstantValue)

'Set the constant radar cross section to 0.5 dBsm
constValRcs.ConstantValue = 0.5
'dBsm
'Create an access object for the access between the radar and target
Dim radarAccess As IAgStkAccess = rdrAsStkObject.GetAccessToObject(tgtAsStkObject)

'Compute access
radarAccess.ComputeAccess()

' Get the access intervals
Dim accessIntervals As IAgIntervalCollection = radarAccess.ComputedAccessIntervalTimes

#If Not CSToJava Then
' Extract the access intervals and the range information for each access interval
Dim dataPrvElements As Array = New Object() {"Time", "S/T SNR1", "S/T PDet1", "S/T Integrated SNR", "S/T Integrated PDet"}
#Else
#End If

Dim dp As IAgDataPrvTimeVar = TryCast(radarAccess.DataProviders("Radar SearchTrack"), IAgDataPrvTimeVar)

Dim index0 As Integer = 0
While index0 <>
    Dim startTime As Object = Nothing, stopTime As Object = Nothing
    #If Not CSToJava Then
    accessIntervals.GetInterval(index0, startTime, stopTime)
    #Else
    #End If

    #If Not CSToJava Then
    Dim result As IAgDrResult = dp.ExecElements(startTime, stopTime, 60, dataPrvElements)
    #Else
    #End If

    Dim timeValues As Array = result.DataSets.GetDataSetByName("Time").GetValues()
    Dim snr1 As Array = result.DataSets.GetDataSetByName("S/T SNR1").GetValues()
    Dim pdet1 As Array = result.DataSets.GetDataSetByName("S/T PDet1").GetValues()
    Dim integSnr As Array = result.DataSets.GetDataSetByName("S/T Integrated SNR").GetValues()
    Dim integPdet As Array = result.DataSets.GetDataSetByName("S/T Integrated PDet").GetValues()

    Dim index1 As Integer = 0
    While index1 <>
        Dim time As String = DirectCast(timeValues.GetValue(index1), String)
        Dim snr1Val As Double = DirectCast(snr1.GetValue(index1), Double)
        Dim pdet1Val As Double = DirectCast(pdet1.GetValue(index1), Double)
        Dim integSnrVal As Double = DirectCast(integSnr.GetValue(index1), Double)
        Dim integPdetVal As Double = DirectCast(integPdet.GetValue(index1), Double)
        Console.WriteLine("{0}: SNR1={1} PDet1={2} Integrated SNR={3} Integrated PDet={4}", time, snr1Val, pdet1Val, integSnrVal, integPdetVal)
        System.Threading.Interlocked.Increment(index1)
    End While

    Console.WriteLine()
    System.Threading.Interlocked.Increment(index0)
End While

CoClasses that Implement IAgRadar

Name
AgRadar
© 2016 Analytical Graphics, Inc. All Rights Reserved.

STK Programming Interface 11.0.1