STK二次开发之MATLAB 计算对象覆盖率

计算对象覆盖率

% IAgAircraft aircraft: Aircraft object
objCoverage = aircraft.ObjectCoverage;
objCoverage.Assets.RemoveAll;
objCoverage.Assets.Add('Satellite/MySatellite');
objCoverage.UseObjectTimes = true;
objCoverage.Compute;

objCoverageFOM = objCoverage.FOM;
if objCoverageFOM.IsDefinitionTypeSupported('eFmAccessDuration')
    objCoverageFOM.SetDefinitionType('eFmAccessDuration');
    objCoverageFOM.Definition.SetComputeType('eMaximum');
end

加一个覆盖分析的实例

uiap = actxserver('STK11.application');
root = uiap.Personality2;
root.NewScenario('Coverage');
sc = root.CurrentScenario;
sat = sc.Children.New(18,'mysat');
kep = sat.Propagator.InitialState.Representation.ConvertTo('eOrbitStateClassical');
kep.SizeShapeType = 'eSizeShapeAltitude';
kep.SizeShape.ApogeeAltitude = 500;
kep.SizeShape.PerigeeAltitude = 500;
kep.Orientation.Inclination = 50;
sat.Propagator.InitialState.Representation.Assign(kep);
sat.Propagator.Propagate;
sen = sat.Children.New('eSensor','mysen');
sen.CommonTasks.SetPatternSimpleConic(77,1);
sen.VO.ProjectionType = 'eProjectionEarthIntersections';
%新建CoverageDefinition对象
covdef = sc.Children.New('eCoverageDefinition','mycov');
%这里我们选择latlon Region(其他具体类型,可以通过STK软件查看)
covdef.Grid.BoundsType = 'eBoundsLatLonRegion';
covdef.Grid.Bounds.MinLongitude = -120;
covdef.Grid.Bounds.MaxLongitude = 120;
covdef.Grid.Bounds.MinLatitude = -30;
covdef.Grid.Bounds.MaxLatitude = 30;
%网点间隔为1°
covdef.Grid.Resolution.LatLon = 5;
%将自动更新禁掉
covdef.Advanced.AutoRecompute = 0;
%查看可添加的对象,激活mysen对象
covdef.AssetList.AvailableAssets
covdef.AssetList.Add(covdef.AssetList.AvailableAssets{2});
%覆盖性的参数均由figureofmerit对象计算、分析
figmerit1 = covdef.Children.New('eFigureofmerit','revisittime');
figmerit1.SetDefinitionType('eFmrevisittime');
covdef.ComputeAccesses();
root.ExecuteCommand('ReportCreate */CoverageDefinition/mycov/FigureOfMerit/revisittime Type Save Style "Value By Grid Point" File "D:\stk\revis.txt"');

结果如图:

STK二次开发之MATLAB 计算对象覆盖率_第1张图片 

STK二次开发之MATLAB 计算对象覆盖率_第2张图片 

 

 

以上代码均经过验证

你可能感兴趣的:(STK&MATLAB,connect连接,matlab)