Description
Represents a collection of data providers.
Object Model
Public Methods
Public Properties
Count | returns number of elements in the collection. |
Item | Given an index, returns the element in the collection. If the index is an integer, then method returns the element in the collection at the given position. If the index is a string, then the method returns the element with the specified name. |
Example
Using an interval Data Provider
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgSatellite satellite: Satellite object % IAgFacility facility: Facility object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); %Get the current scenario scenario = root.CurrentScenario; %Set up the access object access = satellite.GetAccessToObject(facility); access.ComputeAccess; %Get the Access AER Data Provider accessDP = access.DataProviders.Item('Access Data').Exec(scenario.StartTime, scenario.StopTime); %DP results return cell data types. cell2mat accessStartTimes = cell2mat(accessDP.DataSets.GetDataSetByName('Start Time').GetValues); accessStopTimes = cell2mat(accessDP.DataSets.GetDataSetByName('Stop Time').GetValues);
|
|
Using an Time Dependent Data Provider and requesting only specified elements
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgSatellite satellite: Satellite object % IAgScenario scenario: Scenario object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); elems = {'Time';'q1';'q2';'q3';'q4'}; satDP = satellite.DataProviders.Item('Attitude Quaternions').ExecElements(scenario.StartTime, scenario.StopTime, 60, elems); %Whenever you pass an index to an array, you need to cast it to a long %equivalent (int32) satTime = cell2mat(satDP.DataSets.Item(cast(0,'int32')).GetValues); satq1 = cell2mat(satDP.DataSets.Item(cast(1,'int32')).GetValues); satq2 = cell2mat(satDP.DataSets.Item(cast(2,'int32')).GetValues); satq3 = cell2mat(satDP.DataSets.Item(cast(3,'int32')).GetValues); satq4 = cell2mat(satDP.DataSets.Item(cast(4,'int32')).GetValues);
|
|
Using an Time Independent Data Provider
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgFacility facility: Facility object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); facDP = facility.DataProviders.Item('Cartesian Position').Exec; facx = cell2mat(facDP.DataSets.GetDataSetByName('x').GetValues); facy = cell2mat(facDP.DataSets.GetDataSetByName('y').GetValues); facz = cell2mat(facDP.DataSets.GetDataSetByName('z').GetValues);
|
|
Extracting Elements from Data Providers with Groups
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgSatellite satellite: Satellite object % IAgScenario scenario: Scenario object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); satPosDP = satellite.DataProviders.Item('Cartesian Position').Group.Item('ICRF').Exec(scenario.StartTime,scenario.StopTime,60); satx = cell2mat(satPosDP.DataSets.GetDataSetByName('x').GetValues); saty = cell2mat(satPosDP.DataSets.GetDataSetByName('y').GetValues); satz = cell2mat(satPosDP.DataSets.GetDataSetByName('z').GetValues); satVelDP = satellite.DataProviders.GetDataPrvTimeVarFromPath('Cartesian Velocity/ICRF').Exec(scenario.StartTime,scenario.StopTime,60); %There are 4 Methods to get DP From a Path depending on the kind of DP: % GetDataPrvTimeVarFromPath % GetDataPrvIntervalFromPath % GetDataPrvInfoFromPath % GetDataPrvFixedFromPath satvx = cell2mat(satVelDP.DataSets.GetDataSetByName('x').GetValues); satvy = cell2mat(satVelDP.DataSets.GetDataSetByName('y').GetValues); satvz = cell2mat(satVelDP.DataSets.GetDataSetByName('z').GetValues);
|
|
Extracting Elements from Data Providers with PreData
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgFacility facility: Facility object % IAgScenario scenario: Scenario object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); facChooseDP = facility.DataProviders.Item('Points Choose System'); dataProvCenter = facChooseDP.Group.Item('Center'); %Choose the referense system you want to report the Center point in dataProvCenter.PreData = 'CentralBody/Earth TOD'; rptElems = {'Time';'x';'y';'z'}; results = dataProvCenter.ExecElements(scenario.StartTime, scenario.StopTime, 60, rptElems); datasets = results.DataSets; Time = cell2mat(datasets.GetDataSetByName('Time').GetValues); facTODx = cell2mat(datasets.GetDataSetByName('x').GetValues); facTODy = cell2mat(datasets.GetDataSetByName('y').GetValues); facTODz = cell2mat(datasets.GetDataSetByName('z').GetValues);
|
|
Getting Data for a Single Point in Time
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgSatellite satellite: Satellite object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); satPassDP = satellite.DataProviders.Item('Precision Passes').ExecSingle(2600); pass = cell2mat(satPassDP.DataSets.GetDataSetByName('Precision Pass Number').GetValues);
|
|
Getting Data for Specific Points and Elements
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgSatellite satellite: Satellite object %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); times = {0;15000;20000;55000}; elems = {'Time';'Precision Pass Number'}; satPassesDP = satellite.DataProviders.Item('Precision Passes').ExecSingleElementsArray(times,elems); passes = cell2mat(satPassesDP.GetArray(cast(1,'int32')));
|
|
Getting Time Dependent Data that's broken into Sections
[MATLAB] | Copy Code |
---|
% IAgStkObjectRoot root: STK Object Model root % IAgScenario scenario: Scenario object % IAgStkAccess access: Access calculation %Change DateFormat dimension to epoch seconds to make the data easier to handle in %MATLAB root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec'); accessAER = access.DataProviders.Item('AER Data').Group.Item('BodyFixed').Exec(scenario.StartTime, scenario.StopTime,60); AERTimes = cell2mat(accessAER.Interval.Item(cast(0,'int32')).DataSets.GetDataSetByName('Time').GetValues); Az = cell2mat(accessAER.Interval.Item(cast(0,'int32')).DataSets.GetDataSetByName('Azimuth').GetValues); El = cell2mat(accessAER.Interval.Item(cast(0,'int32')).DataSets.GetDataSetByName('Elevation').GetValues); for i = 1:1:accessAER.Interval.Count-1 AERTimes = [AERTimes; cell2mat(accessAER.Interval.Item(cast(i,'int32')).DataSets.GetDataSetByName('Time').GetValues)]; Az = [Az; cell2mat(accessAER.Interval.Item(cast(i,'int32')).DataSets.GetDataSetByName('Azimuth').GetValues)]; El = [El; cell2mat(accessAER.Interval.Item(cast(i,'int32')).DataSets.GetDataSetByName('Elevation').GetValues)]; end
|
|
Using an interval Data Provider
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root # IAgSatellite satellite: Satellite object # IAgFacility facility: Facility object #Change DateFormat dimension to epoch seconds to make the data easier to handle in #Python root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec') #Get the current scenario scenario = root.CurrentScenario #Set up the access object access = satellite.GetAccessToObject(facility) access.ComputeAccess() #Get the Access AER Data Provider accessDP = access.DataProviders.Item('Access Data').Exec(scenario.StartTime, scenario.StopTime) accessStartTimes = accessDP.DataSets.GetDataSetByName('Start Time').GetValues accessStopTimes = accessDP.DataSets.GetDataSetByName('Stop Time').GetValues
|
|
Using an Time Dependent Data Provider and requesting only specified elements
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root # IAgSatellite satellite: Satellite object # IAgScenario scenario: Scenario object #Change DateFormat dimension to epoch seconds to make the data easier to handle in #Python root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec') elems = [ ['Time'],['q1'],['q2'],['q3'],['q4'] ] satDP = satellite.DataProviders.Item('Attitude Quaternions').ExecElements(scenario.StartTime, scenario.StopTime, 60, elems) #Whenever you pass an index to an array, you need to cast it to a long #equivalent (int32) satTime = satDP.DataSets.Item(0).GetValues satq1 = satDP.DataSets.Item(1).GetValues satq2 = satDP.DataSets.Item(2).GetValues satq3 = satDP.DataSets.Item(3).GetValues satq4 = satDP.DataSets.Item(4).GetValues
|
|
Extracting Elements from Data Providers with Groups
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root # IAgSatellite satellite: Satellite object # IAgScenario scenario: Scenario object #Change DateFormat dimension to epoch seconds to make the data easier to handle in #Python root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec') satPosDP = satellite.DataProviders.Item('Cartesian Position').Group.Item('ICRF').Exec(scenario.StartTime,scenario.StopTime,60) satx = satPosDP.DataSets.GetDataSetByName('x').GetValues saty = satPosDP.DataSets.GetDataSetByName('y').GetValues satz = satPosDP.DataSets.GetDataSetByName('z').GetValues satVelDP = satellite.DataProviders.GetDataPrvTimeVarFromPath('Cartesian Velocity/ICRF').Exec(scenario.StartTime,scenario.StopTime,60) #There are 4 Methods to get DP From a Path depending on the kind of DP: # GetDataPrvTimeVarFromPath # GetDataPrvIntervalFromPath # GetDataPrvInfoFromPath # GetDataPrvFixedFromPath satvx = satVelDP.DataSets.GetDataSetByName('x').GetValues satvy = satVelDP.DataSets.GetDataSetByName('y').GetValues satvz = satVelDP.DataSets.GetDataSetByName('z').GetValues
|
|
Extracting Elements from Data Providers with PreData
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root # IAgFacility facility: Facility object # IAgScenario scenario: Scenario object #Change DateFormat dimension to epoch seconds to make the data easier to handle in #Python root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec') facChooseDP = facility.DataProviders.Item('Points Choose System') dataProvCenter = facChooseDP.Group.Item('Center') #Choose the referense system you want to report the Center point in dataProvCenter.PreData = 'CentralBody/Earth TOD' rptElems = [ ['Time'],['x'],['y'],['z'] ] results = dataProvCenter.ExecElements(scenario.StartTime, scenario.StopTime, 60, rptElems) datasets = results.DataSets Time = datasets.GetDataSetByName('Time').GetValues facTODx = datasets.GetDataSetByName('x').GetValues facTODy = datasets.GetDataSetByName('y').GetValues facTODz = datasets.GetDataSetByName('z').GetValues
|
|
Getting Data for a Single Point in Time
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root # IAgSatellite satellite: Satellite object #Change DateFormat dimension to epoch seconds to make the data easier to handle in #Python root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec') satPassDP = satellite.DataProviders.Item('Precision Passes').ExecSingle(2600) pass = satPassDP.DataSets.GetDataSetByName('Precision Pass Number').GetValues
|
|
Getting Data for Specific Points and Elements
[Python] | Copy Code |
---|
# IAgStkObjectRoot root: STK Object Model root # IAgSatellite satellite: Satellite object #Change DateFormat dimension to epoch seconds to make the data easier to handle in #Python root.UnitPreferences.Item('DateFormat').SetCurrentUnit('EpSec') times = [ [0],[15000],[20000],[55000] ] elems = [ ['Time'],['Precision Pass Number'] ] satPassesDP = satellite.DataProviders.Item('Precision Passes').ExecSingleElementsArray(times,elems) passes = satPassesDP.GetArray(1)
|
|
See Also