Description
Coverage definition properties.
Object Model
Public Methods
ClearAccesses | Remove access information currently maintained in association with each grid point in the coverage area. |
ComputeAccesses | Compute accesses between the grid points and the assigned assets. |
ExportAccessesAsText | Export all computed accesses to an ASCII text file. |
ReloadAccesses | Reload access data that was previously saved with a coverage definition object. |
Public Properties
Advanced | Advanced properties of the coverage definition. |
AssetList | List of assets to use in coverage computations. |
Graphics | 2D Graphics properties of the coverage definition. |
Grid | Definition of the coverage grid. |
GridInspector | The grid inspector tool |
Interval | Coverage interval. |
PointDefinition | Location of points on the coverage grid. |
VO | 3D Graphics properties of the coverage definition. |
Example
Create a coverage definition (on the current scenario central body)
[C#] | Copy Code |
---|
IAgCoverageDefinition cd = root.CurrentScenario.Children.New(AgESTKObjectType.eCoverageDefinition, "cd1") as IAgCoverageDefinition;
|
|
Define a coverage definition by points
[C#] | Copy Code |
---|
IAgCvGrid cvGrid = coverageDefinition.Grid;
cvGrid.BoundsType = AgECvBounds.eBoundsCustomRegions;
IAgCvBoundsCustomRegions oBoundsCustom = cvGrid.Bounds as IAgCvBoundsCustomRegions;
oBoundsCustom.RegionFiles.Add(regionFilePath);
oBoundsCustom.AreaTargets.Add("AreaTarget/AreaTarget1");
Array points = new object[,]
{
{ 6.9346423789e+01, -5.0260748372e+01, 0.0000000000e+00 },
{ 3.9613371741e+01, -6.6285429903e+01, 0.0000000000e+00 },
{ 3.9880319688e+01, -7.3881767479e+01, 0.0000000000e+00 },
{ 4.0700636942e+01, -1.1224999998e+02, 0.0000000000e+00 }
};
coverageDefinition.PointDefinition.SetPointsLLA(ref points);
|
|
Compute a coverage definition access
[C#] | Copy Code |
---|
coverageDefinition.Advanced.AutoRecompute = false;
coverageDefinition.ComputeAccesses();
coverageDefinition.ExportAccessesAsText("MyAccess.txt");
coverageDefinition.ReloadAccesses();
|
|
Define and configure grid constraint options
[C#] | Copy Code |
---|
IAgCvPointDefinition pointDefinition = coverageDefinition.PointDefinition;
pointDefinition.GridClass = AgECvGridClass.eGridClassFacility;
pointDefinition.UseGridSeed = true;
pointDefinition.SeedInstance = "Facility/North";
pointDefinition.AltitudeMethod = AgECvAltitudeMethod.eAltitude;
pointDefinition.Altitude = 0.0;
coverageDefinition.PointDefinition.GroundAltitudeMethod = AgECvGroundAltitudeMethod.eCvGroundAltitudeMethodUsePointAlt;
|
|
Configure a coverage definition fixed step sampling
[C#] | Copy Code |
---|
IAgCvAdvanced advanced = coverageDefinition.Advanced;
IAgAccessSampling sampling = advanced.Sampling;
sampling.SetType(AgESamplingMethod.eSamplingMethodFixedStep);
IAgSamplingMethodFixedStep fixedStep = sampling.Strategy as IAgSamplingMethodFixedStep;
fixedStep.FixedTimeStep = 360.0;
fixedStep.TimeBound = 5.0;
|
|
Configure a coverage definition adaptive sampling
[C#] | Copy Code |
---|
IAgCvAdvanced advanced = coverageDefinition.Advanced;
IAgAccessSampling sampling = advanced.Sampling;
sampling.SetType(AgESamplingMethod.eSamplingMethodAdaptive);
IAgSamplingMethodAdaptive adaptive = sampling.Strategy as IAgSamplingMethodAdaptive;
adaptive.MaxTimeStep = 180.0;
adaptive.MinTimeStep = 1.0;
|
|
Set the coverage analysis time to the asset object time periods.
[C#] | Copy Code |
---|
string currentDateFormat = stkRoot.UnitPreferences.GetCurrentUnitAbbrv("DateFormat");
IAgDate minStartTime = null;
IAgDate maxStartTime = null;
foreach (IAgCvAssetListElement cvAsset in coverage.AssetList)
{
IAgStkObject subAsset = stkRoot.GetObjectFromPath(cvAsset.ObjectName);
if (subAsset.Vgt.EventIntervals.Contains("AvailabilityTimeSpan"))
{
IAgCrdnEventIntervalResult availableTimeSpan = subAsset.Vgt.EventIntervals["AvailabilityTimeSpan"].FindInterval();
IAgDate startDate = stkRoot.ConversionUtility.NewDate(currentDateFormat, availableTimeSpan.Interval.Start.ToString());
if (!(minStartTime != null) || startDate.OLEDate < minStartTime.OLEDate)
{
minStartTime = startDate;
}
IAgDate stopTime = stkRoot.ConversionUtility.NewDate(currentDateFormat, availableTimeSpan.Interval.Stop.ToString());
if (!(maxStartTime != null) || stopTime.OLEDate > maxStartTime.OLEDate)
{
maxStartTime = stopTime;
}
}
}
if (minStartTime != null && maxStartTime != null)
{
coverage.Interval.AnalysisInterval.SetExplicitInterval(minStartTime.Format(currentDateFormat), maxStartTime.Format(currentDateFormat));
}
Console.WriteLine(
"Coverage Analysis Interval, StartTime = {0}, StopTime = {1}",
coverage.Interval.AnalysisInterval.FindStartTime(),
coverage.Interval.AnalysisInterval.FindStopTime());
|
|
Create a coverage definition (on the current scenario central body)
[Visual Basic .NET] | Copy Code |
---|
Dim cd As IAgCoverageDefinition = TryCast(root.CurrentScenario.Children.[New](AgESTKObjectType.eCoverageDefinition, "cd1"), IAgCoverageDefinition)
|
|
Define a coverage definition by points
[Visual Basic .NET] | Copy Code |
---|
Dim cvGrid As IAgCvGrid = coverageDefinition.Grid
cvGrid.BoundsType = AgECvBounds.eBoundsCustomRegions Dim oBoundsCustom As IAgCvBoundsCustomRegions = TryCast(cvGrid.Bounds, IAgCvBoundsCustomRegions) oBoundsCustom.RegionFiles.Add(regionFilePath) oBoundsCustom.AreaTargets.Add("AreaTarget/AreaTarget1")
Dim points As Array = New Object(,) {{69.346423789, -50.260748372, 0}, {39.613371741, -66.285429903, 0}, {39.880319688, -73.881767479, 0}, {40.700636942, -112.24999998, 0}}
coverageDefinition.PointDefinition.SetPointsLLA(points)
|
|
Compute a coverage definition access
[Visual Basic .NET] | Copy Code |
---|
coverageDefinition.Advanced.AutoRecompute = False
coverageDefinition.ComputeAccesses()
coverageDefinition.ExportAccessesAsText("MyAccess.txt") coverageDefinition.ReloadAccesses()
|
|
Define and configure grid constraint options
[Visual Basic .NET] | Copy Code |
---|
Dim pointDefinition As IAgCvPointDefinition = coverageDefinition.PointDefinition
pointDefinition.GridClass = AgECvGridClass.eGridClassFacility pointDefinition.UseGridSeed = True pointDefinition.SeedInstance = "Facility/North"
pointDefinition.AltitudeMethod = AgECvAltitudeMethod.eAltitude pointDefinition.Altitude = 0 coverageDefinition.PointDefinition.GroundAltitudeMethod = AgECvGroundAltitudeMethod.eCvGroundAltitudeMethodUsePointAlt
|
|
Configure a coverage definition fixed step sampling
[Visual Basic .NET] | Copy Code |
---|
Dim advanced As IAgCvAdvanced = coverageDefinition.Advanced Dim sampling As IAgAccessSampling = advanced.Sampling
sampling.SetType(AgESamplingMethod.eSamplingMethodFixedStep) Dim fixedStep As IAgSamplingMethodFixedStep = TryCast(sampling.Strategy, IAgSamplingMethodFixedStep)
fixedStep.FixedTimeStep = 360 fixedStep.TimeBound = 5
|
|
Configure a coverage definition adaptive sampling
[Visual Basic .NET] | Copy Code |
---|
Dim advanced As IAgCvAdvanced = coverageDefinition.Advanced Dim sampling As IAgAccessSampling = advanced.Sampling
sampling.SetType(AgESamplingMethod.eSamplingMethodAdaptive) Dim adaptive As IAgSamplingMethodAdaptive = TryCast(sampling.Strategy, IAgSamplingMethodAdaptive)
adaptive.MaxTimeStep = 180 adaptive.MinTimeStep = 1
|
|
Set the coverage analysis time to the asset object time periods.
[Visual Basic .NET] | Copy Code |
---|
Dim currentDateFormat As String = stkRoot.UnitPreferences.GetCurrentUnitAbbrv("DateFormat")
Dim minStartTime As IAgDate = Nothing Dim maxStartTime As IAgDate = Nothing
For Each cvAsset As IAgCvAssetListElement In coverage.AssetList Dim subAsset As IAgStkObject = stkRoot.GetObjectFromPath(cvAsset.ObjectName) If subAsset.Vgt.EventIntervals.Contains("AvailabilityTimeSpan") Then Dim availableTimeSpan As IAgCrdnEventIntervalResult = subAsset.Vgt.EventIntervals("AvailabilityTimeSpan").FindInterval() Dim startDate As IAgDate = stkRoot.ConversionUtility.NewDate(currentDateFormat, availableTimeSpan.Interval.Start.ToString()) If Not (minStartTime IsNot Nothing) OrElse startDate.OLEDate < minstarttime.oledate="">Then minStartTime = startDate End If
Dim stopTime As IAgDate = stkRoot.ConversionUtility.NewDate(currentDateFormat, availableTimeSpan.Interval.[Stop].ToString()) If Not (maxStartTime IsNot Nothing) OrElse stopTime.OLEDate > maxStartTime.OLEDate Then maxStartTime = stopTime End If End If Next
If minStartTime IsNot Nothing AndAlso maxStartTime IsNot Nothing Then coverage.Interval.AnalysisInterval.SetExplicitInterval(minStartTime.Format(currentDateFormat), maxStartTime.Format(currentDateFormat)) End If
Console.WriteLine("Coverage Analysis Interval, StartTime = {0}, StopTime = {1}", coverage.Interval.AnalysisInterval.FindStartTime(), coverage.Interval.AnalysisInterval.FindStopTime())
|
|
Create a New CoverageDefinition (on the current scenario central body)
[MATLAB] | Copy Code |
---|
% IAgScenario scenario: Scenario object %Create new Coverage Defintion and set the Bounds to an area target coverage = scenario.Children.New('eCoverageDefinition', 'MyCoverage'); coverage.Grid.BoundsType = 'eBoundsCustomRegions'; covGrid = coverage.Grid; bounds = covGrid.Bounds; bounds.AreaTargets.Add('AreaTarget/MyAreaTarget'); %Define the Grid Resolution Res = covGrid.Resolution; Res.LatLon = .5; %deg %Set the satellite as the Asset coverage.AssetList.Add('Satellite/MySatellite'); % Turn off Show Grid Points coverage.Graphics.Static.IsPointsVisible = false;
|
|
Set the Coverage Interval to an object's availability Analysis interval
[MATLAB] | Copy Code |
---|
% IAgSatellite satellite: Satellite object % IAgCoverageDefinition coverage: Coverage object satVGT = satellite.vgt; AvailTimeSpan = satVGT.EventIntervals.Item('AvailabilityTimeSpan'); IntResult = AvailTimeSpan.FindInterval; coverage.Interval.AnalysisInterval.SetStartAndStopTimes(IntResult.Interval.Start,IntResult.Interval.Stop)
|
|
Set Advanced Settings for Coverage
[MATLAB] | Copy Code |
---|
% IAgCoverageDefinition coverage: Coverage object advanced = coverage.Advanced; advanced.AutoRecompute = false; advanced.DataRetention = 'eAllData'; advanced.SaveMode = 'eSaveAccesses';
|
|
Add Grid Constraint to Coverage
[MATLAB] | Copy Code |
---|
% IAgCoverageDefinition coverage: Coverage object coverage.PointDefinition.GridClass = 'eGridClassFacility'; coverage.PointDefinition.UseGridSeed = true; coverage.PointDefinition.SeedInstance = 'Facility/MyFacility';
|
|
Compute Coverage
[MATLAB] | Copy Code |
---|
% IAgCoverageDefinition coverage: Coverage object coverage.ComputeAccesses;
|
|
Create a New CoverageDefinition (on the current scenario central body)
[Python] | Copy Code |
---|
# IAgScenario scenario: Scenario object #Create new Coverage Defintion and set the Bounds to an area target coverage = scenario.Children.New(7, 'MyCoverage') coverage.Grid.BoundsType = 0 # eBoundsCustomRegions covGrid = coverage.Grid bounds = covGrid.Bounds bounds.AreaTargets.Add('AreaTarget/MyAreaTarget') #Define the Grid Resolution Res = covGrid.Resolution Res.LatLon = .5 #deg #Set the satellite as the Asset coverage.AssetList.Add('Satellite/MySatellite') # Turn off Show Grid Points coverage.Graphics.Static.IsPointsVisible = False
|
|
Set the Coverage Interval to an object's availability Analysis interval
[Python] | Copy Code |
---|
# IAgSatellite satellite: Satellite object # IAgCoverageDefinition coverage: Coverage object satVGT = satellite.vgt AvailTimeSpan = satVGT.EventIntervals.Item('AvailabilityTimeSpan') IntResult = AvailTimeSpan.FindInterval() coverage.Interval.AnalysisInterval.SetStartAndStopTimes(IntResult.Interval.Start,IntResult.Interval.Stop)
|
|
Set Advanced Settings for Coverage
[Python] | Copy Code |
---|
# IAgCoverageDefinition coverage: Coverage object advanced = coverage.Advanced advanced.AutoRecompute = False advanced.DataRetention = 0 # eAllData advanced.SaveMode = 2 # eSaveAccesses
|
|
Compute Coverage
[Python] | Copy Code |
---|
# IAgCoverageDefinition coverage: Coverage object coverage.ComputeAccesses()
|
|
CoClasses that Implement IAgCoverageDefinition