Return a list of available constraints
[MATLAB] | Copy Code |
---|
% 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] | Copy Code |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection % Condition constraint light = accessConstraints.AddConstraint('eCstrLighting'); light.Condition = 'eDirectSun';
|
|
Add and configure a LOS sun exclusion access constraint
[MATLAB] | Copy Code |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection % Angle constraint cnstrAngle = accessConstraints.AddConstraint('eCstrLOSSunExclusion'); cnstrAngle.Angle = 176.0;
|
|
Add and configure a lunar elevation angle access constraint
[MATLAB] | Copy Code |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection 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] | Copy Code |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection minmax = accessConstraints.AddConstraint('eCstrSunElevationAngle'); minmax.EnableMin = true; minmax.Min = 22.2; minmax.EnableMax = true; minmax.Max = 77.7;
|
|
Add and configure a third body obstruction access constraint
[MATLAB] | Copy Code |
---|
% IAgAccessConstraintCollection accessconstraints: Access Constraint collection % Get IAgAccessCnstrThirdBody interface thirdBodyConstraint = accessConstraints.AddConstraint('eCstrThirdBodyObstruction'); % AvailableObstructions returns a one dimensional array of obstruction paths availableArray = thirdBodyConstraint.AvailableObstructions; % In this example add all available obstructions disp('Available obstructions'); for i=1:length(availableArray) disp(availableArray{i,1}); thirdBodyConstraint.AddObstruction(availableArray{i,1}); end % AssignedObstructions returns a one dimensional array of obstruction paths assignedArray = thirdBodyConstraint.AssignedObstructions; disp('Assigned obstructions'); for i=1:length(assignedArray) disp(assignedArray{i,1}); end
|
|
Add and configure an altitude access constraint
[MATLAB] | Copy Code |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection % 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] | Copy Code |
---|
% IAgAccessConstraintCollection accessConstraints: Access Constraint collection % Add constraints % Only the eCstrApparentTime, eCstrDuration, eCstrGMT, eCstrIntervals, eCstrLocalTime constraint % types can be added multiple times to the constraint collection. time1 = accessConstraints.AddConstraint('eCstrLocalTime'); time1.Min = '00:00:00.000'; time1.Max = '23:00:00.000';
|
|
Add a Exclusion Zone access constraint
[MATLAB] | Copy Code |
---|
% 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 LOS
[MATLAB] | Copy Code |
---|
% 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,'ThirdBodyObstruction')) thirdBodyConstraint = accessConstraints.GetActiveNamedConstraint('ThirdBodyObstruction'); assignedArray = thirdBodyConstraint.AssignedObstructions; for j=1:length(assignedArray) thirdBodyConstraint.RemoveObstruction(assignedArray{j}); end elseif (strcmp(constraint,'ExclusionZone')) accessConstraints.GetActiveNamedConstraint('ExclusionZone').RemoveAll; else accessConstraints.RemoveNamedConstraint(constraint); end end end
|
|
Configure the access interval to the availability time span of the object where access is being computed to.
[MATLAB] | Copy Code |
---|
% 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] | Copy Code |
---|
% 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);
|
|
Return a list of available constraints
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection constraintArray = accessConstraints.AvailableConstraints() print('List of Available Constraints:') for i in range(0,len(constraintArray)): print(constraintArray[i])
|
|
Add and configure a lighting condition access constraint
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection # Condition constraint light = accessConstraints.AddConstraint(25) # eCstrLighting light.Condition = 0 # eDirectSun
|
|
Add and configure a LOS sun exclusion access constraint
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection # Angle constraint cnstrAngle = accessConstraints.AddConstraint(29) # eCstrLOSSunExclusion cnstrAngle.Angle = 176.0
|
|
Add and configure a lunar elevation angle access constraint
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection minmax = accessConstraints.AddConstraint(30) # eCstrLunarElevationAngle minmax.EnableMin = True minmax.Min = 11.1 minmax.EnableMax = True minmax.Max = 88.8
|
|
Add and configure a sun elevation angle access constraint
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection minmax = accessConstraints.AddConstraint(58) # eCstrSunElevationAngle minmax.EnableMin = True minmax.Min = 22.2 minmax.EnableMax = True minmax.Max = 77.7
|
|
Add and configure a third body obstruction access constraint
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessconstraints: Access Constraint collection # Get IAgAccessCnstrThirdBody interface thirdBodyConstraint = accessConstraints.AddConstraint(61) # eCstrThirdBodyObstruction # AvailableObstructions returns a one dimensional array of obstruction paths availableArray = thirdBodyConstraint.AvailableObstructions # In this example add all available obstructions print('Available obstructions') for i in range(0,len(availableArray)): print(availableArray[i]) thirdBodyConstraint.AddObstruction(availableArray[i]) # AssignedObstructions returns a one dimensional array of obstruction paths assignedArray = thirdBodyConstraint.AssignedObstructions print('Assigned obstructions') for i in range(0,len(assignedArray)): print(assignedArray[i])
|
|
Add and configure an altitude access constraint
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection # Attitude constraint altitude = accessConstraints.AddConstraint(2) # eCstrAltitude altitude.EnableMin = True altitude.Min = 20.5 # km
|
|
Add multiple access constraints of the same type to an STK Object
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection # Add constraints # Only the eCstrApparentTime (4), eCstrDuration (13), eCstrGMT (16), eCstrIntervals (22), eCstrLocalTime (27) constraint # types can be added multiple times to the constraint collection. time1 = accessConstraints.AddConstraint(27) # eCstrLocalTime time1.Min = '00:00:00.000' time1.Max = '23:00:00.000'
|
|
Add an Exclusion Zone access constraint
[Python] | Copy Code |
---|
# 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 LOS
[Python] | Copy Code |
---|
# IAgAccessConstraintCollection accessConstraints: Access Constraint collection for i in range(accessConstraints.Count-1,0,-1): constraint = accessConstraints.Item(i).ConstraintName if (constraint == 'LineOfSight') == False: if (constraint == 'ThirdBodyObstruction'): thirdBodyConstraint = accessConstraints.GetActiveNamedConstraint('ThirdBodyObstruction') assignedArray = thirdBodyConstraint.AssignedObstructions for j in range (0,len(assignedArray)): thirdBodyConstraint.RemoveObstruction(assignedArray[j]) end elif (constraint == 'ExclusionZone'): accessConstraints.GetActiveNamedConstraint('ExclusionZone').RemoveAll() else: accessConstraints.RemoveNamedConstraint(constraint)
|
|
Configure the access interval to the availability time span of the object where access is being computed to.
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root satellite = root.GetObjectFromPath('/Satellite/MySatellite') facility = root.GetObjectFromPath('/Facility/MyFacility') access = satellite.GetAccessToObject(facility) access.AccessTimePeriod = 2 # eUserSpecAccessTime accessTimePeriod = access.AccessTimePeriodData if (satellite.Vgt.EventIntervals.Contains('AvailabilityTimeSpan')): availabilityTimeSpan = satellite.Vgt.EventIntervals.Item('AvailabilityTimeSpan') accessTimePeriod.AccessInterval.SetImplicitInterval(availabilityTimeSpan)
|
|
GetAccessBetweenObjectsByPath using the output of GetExistingAccesses
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root scenario = root.CurrentScenario accesses = scenario.GetExistingAccesses() size = len(accesses) # number of accesses object1 = accesses[0][0] # e.g. "Satellite/MySatellite" object2 = accesses[0][1] # e.g. "Facility/MyFacility" computed = accesses[0][2] # e.g. True (if access has been computed) access = scenario.GetAccessBetweenObjectsByPath(object1, object2)
|
|