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"');

结果如图:

 

 

 

 

以上代码均经过验证

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值