在进行可见性分析时,需要考虑很多约束条件,比如光照条件、与某个目标的角度、最小可见时长等等。这些都可以通过代码实现。下面我们就来探索一下如何添加约束条件。本文的所有内容,都可以在帮助文档中查到,有不正确的地方大家可以在评论区指出来。
老规矩,先上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘access’);
sc = root.CurrentScenario;
sat = sc.Children.New(18,‘mysat’);
sat.Propagator.Propagate;
fac = sc.Children.New(‘eFacility’,‘myfac’);
ac = sat.GetAccessToObject(fac);
ac.ComputeAccess();
没有加约束的可见性效果如下图
%获取卫星的可见性约束控制句柄
accessConstraints = sat.AccessConstraints;
(1)约束条件1:排除指定区域
%设置某区域,将该区域的可见弧段从结果中去掉
excludeZone = accessConstraints.AddNamedConstraint(‘ExclusionZone’);
excludeZone.MaxLat = 40;
excludeZone.MinLat = 25;
excludeZone.MaxLon = -60;
excludeZone.MinLon = -75;
约束设置完成后,获得如下效果图:
%去除所有“排除指定区域”的约束
accessConstraints.GetActiveNamedConstraint(‘ExclusionZone’).RemoveAll
执行完该语句,则可见性效果恢复,无需其他命令。该程序代码,可在帮助文档中获取。