Description
AgAccessConstraint used to access the AccessConstraint attributes.
Public Properties
ConstraintName | Property used to access the constraint name. |
ConstraintType | Property used to access the constraint type. |
Enabled | Indicates whether the constraint should be considered (true) or ignored (false) in access computations. |
ExclIntvl | Exclude Time Intervals. |
IsPlugin | Returns true if the access constraint is a plugin. |
MaxRelMotion | Maximum relative motion used in adaptive sampling. |
MaxTimeStep | Maximum time step used in adaptive sampling. |
CoClasses that Implement IAgAccessConstraint
Example
Return a list of available constraints
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
constraintArray = accessConstraints.AvailableConstraints;
disp('List of Available Constraints:');
for i=1:length(constraintArray)
disp(constraintArray{i, 1});
end
|
|
Add and configure a lighting condition access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
% Condition constraint
light = accessConstraints.AddConstraint('eCstrLighting');
light.Condition = 'eDirectSun';
|
|
Add and configure a LOS sun exclusion access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
% To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
% Angle constraint
cnstrAngle = accessConstraints.AddConstraint('eCstrLOSSunExclusion');
cnstrAngle.Angle = 176.0;
|
|
Add and configure a lunar elevation angle access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
% To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
minmax = accessConstraints.AddConstraint('eCstrLunarElevationAngle');
minmax.EnableMin = true;
minmax.Min = 11.1;
minmax.EnableMax = true;
minmax.Max = 88.8;
|
|
Add and configure a sun elevation angle access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
% To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
minmax = accessConstraints.AddConstraint('eCstrSunElevationAngle');
minmax.EnableMin = true;
minmax.Min = 22.2;
minmax.EnableMax = true;
minmax.Max = 77.7;
|
|
Add and configure a central body obstruction access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
% Get IAgAccessCnstrCbObstruction interface
cbObstrConstraint = accessConstraints.AddConstraint('eCstrCbObstruction');
% AvailableObstructions returns a one dimensional array of obstruction paths
availableArray = cbObstrConstraint.AvailableObstructions;
% In this example add all available obstructions
disp('Available obstructions');
for i=1:length(availableArray)
disp(availableArray{i, 1});
cbObstrConstraint.AddObstruction(availableArray{i, 1});
end
% AssignedObstructions returns a one dimensional array of obstruction paths
assignedArray = cbObstrConstraint.AssignedObstructions;
disp('Assigned obstructions');
for i=1:length(assignedArray)
disp(assignedArray{i, 1});
end
|
|
Add and configure an altitude access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
% To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
% Attitude constraint
altitude = accessConstraints.AddConstraint('eCstrAltitude');
altitude.EnableMin = true;
altitude.Min = 20.5; % km
|
|
Add multiple access constraints of the same type to an STK Object
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
objExcl1 = accessConstraints.AddConstraint('eCstrObjectExclusionAngle');
objExcl2 = accessConstraints.AddConstraint('eCstrObjectExclusionAngle');
|
|
Add an Exclusion Zone access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
excludeZone = accessConstraints.AddNamedConstraint('ExclusionZone');
excludeZone.MaxLat = 45;
excludeZone.MinLat = 15;
excludeZone.MinLon = -75;
excludeZone.MaxLon = -35;
|
|
Remove all access constraints except for Line Of Sight
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
for i=accessConstraints.Count - 1:-1:0
constraint = accessConstraints.Item(i).ConstraintName;
if (strcmp(constraint, 'LineOfSight')) == false
if (strcmp(constraint, 'ExclusionZone'))
accessConstraints.GetActiveNamedConstraint('ExclusionZone').RemoveAll;
else
accessConstraints.RemoveNamedConstraint(constraint);
end
end
end
|
|
Remove Line of Sight access constraint
[MATLAB] |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection
accessConstraints.RemoveNamedConstraint('LineOfSight');
|
|
Configure the access interval to the availability time span of the object where access is being computed to.
[MATLAB] |
---|
% IAgStkObjectRoot root: STK Object Model root
satellite = root.GetObjectFromPath('Satellite/MySatellite');
facility = root.GetObjectFromPath('Facility/MyFacility');
access = satellite.GetAccessToObject(facility);
access.AccessTimePeriod = 'eUserSpecAccessTime';
accessTimePeriod = access.AccessTimePeriodData;
if (satellite.Vgt.EventIntervals.Contains('AvailabilityTimeSpan'))
availabilityTimeSpan = satellite.Vgt.EventIntervals.Item('AvailabilityTimeSpan');
accessTimePeriod.AccessInterval.SetImplicitInterval(availabilityTimeSpan);
end
|
|
GetAccessBetweenObjectsByPath using the output of GetExistingAccesses
[MATLAB] |
---|
% IAgStkObjectRoot root: STK Object Model root
scenario = root.CurrentScenario;
accesses = scenario.GetExistingAccesses();
[row, col] = size(accesses); % number of accesses
object1 = accesses{1, 1}; % e.g. "Satellite/MySatellite"
object2 = accesses{1, 2}; % e.g. "Facility/MyFacility"
computed = accesses{1, 3}; % e.g. true (if access has been computed)
access = scenario.GetAccessBetweenObjectsByPath(object1, object2);
|
|