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;
|
|
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")
#If Not CSToJava Then
#Else
#End If
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}}
#If Not CSToJava Then
coverageDefinition.PointDefinition.SetPointsLLA(points)
#Else
#End If
|
|
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
|
|
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';
|
|
Compute Coverage
[MATLAB] |
Copy Code
|
% IAgCoverageDefinition coverage: Coverage object
coverage.ComputeAccesses;
|
|
CoClasses that Implement
IAgCoverageDefinition