AGI Components
What's New?
AGI Components 2008 r8
  • New Features
    • Added three Coverage Figures of Merit to Navigation Accuracy Library: DilutionOfPrecisionFigureOfMerit, NavigationAccuracyAssessedFigureOfMerit, and NavigationAccuracyPredictedFigureOfMerit. These new figures of merit are used with TimeSampledValues and GridTimeSampledValues.
  • Improvements
    • Spatial Analysis Library now multithreads the creation of creation of grid points in order to improve performance on multi-core and hyperthreaded hardware.
    • AGI Components is now built using Visual Studio 2008. This change should be transparent as Visual Studio 2005 and .NET 2.0 are still fully supported in this release.
    • Numerous documentation improvements.
  • Bug Fixes
    • Fixed a bug in the constructor for Waypoint that takes a previous waypoint. The bug would result in an exception ("The waypoint collection does not model constant accelerations between the waypoints") when attempting to use the waypoints with WaypointPropagator.
    • Fixed a bug in the Clone method of GpsReceiver that resulted in the new GpsReceiver and the original one sharing their lists of SatelliteConstraints and ReceiverConstraints.
AGI Components 2008 r7
  • New Features
    • Terrain Analysis Library now has the ability to read terrain data in the AGI PDTT format using AGIProcessedDataTerrain.
    • Navigation Accuracy Library now has the ability to read RINEX Observation files using RinexObservation.
    • Added a LinearApproximation type which has a static method for doing simple linear interpolation and also implements IInterpolator.
    • VectorDifferentiator and PointDifferentiator now have a DerivativeToCompute property. Previously, these types always computed the next derivative after the highest available from the underlying vector or point.
    • Added an EllipsoidGridSpecified type that makes it easy for the grid points used in a coverage computation to be given explicitly by the user.
  • Improvements
    • Addressed a difference between the convention used to represent rotational motion in an StkAttitudeFile and that used in the rest of AGI Components. This could cause rotational motion interpolated from an attitude file to be interpreted incorrectly. See AttitudeData for more information.
    • EarthGravitationalModel1996 now has unnormalized versions of the J2, J3, and J4 constants. Also, the documentation for J2Propagator and J4Propagator has been updated to refer users to these constants.
    • The YearMonthDay type can now be constructed directly from a JulianDate.
    • Numerous documentation improvements.
  • Bug Fixes
    • Fixed a bug in the Satellite Tracker demo application that could cause it to fail to invoke Google Earth when exporting KML.
    • Fixed a bug in StkEphemerisFile that caused it to throw an exception when encountering an .E file with comments.
    • Several Ellipsoid methods now check to see if they are operating on a point that is very close to the center of the ellipsoid and throw an exception if this is the case. Previously, these methods could, in rare situations, get stuck in an endless loop.
AGI Components 2008 r6
  • New Features
    • Evaluators now have overloaded Evaluate methods that sample the evaluator at a fixed step over an entire interval. The sampling is automatically performed in multiple threads, as appropriate, for best performance on multi-core systems.
    • Added a new type, TerrainAlongLine, which provides a simple way to determine terrain obscuration between two points.
    • Added GTOPO30Terrain to read terrain data in the GTOPO30 format.
    • Added a DegreesMinutesSeconds type to work with angles represented as these three components.
  • Improvements
    • The StartAngle and StopAngle properties of CircularAccessConstraint are now settable directly.
    • Made it much easier to construct a PointInterpolator to interpolate over a set of position and velocity data. New constructors accept the required information directly rather than requiring the construction of several additional objects.
    • Simplified the use of LagrangePolynomialApproximation and HermitePolynomialApproximation by adding InterpolateWithDegree methods. These methods interpolate over an appropriate subset of the data, chosen based on the degree of interpolation and the x-value at which to interpolate.
    • GeometryTransformer.ObservePoint is now smarter about avoiding unnecessary transformations. In particular, it will now perform only a trivial operation if asked to observe a point in a reference frame that has that point as its origin.
    • SatelliteGlobalUserRangeError now exposes clock phase error.
    • Numerous documentation improvements.
  • Bug Fixes
    • StkEphemerisFile no longer fails with an exception when reading a .E file with covariance data.
    • Fixed a problem where TerrainLineOfSightConstraint could miss obstructing terrain when the two objects are far apart and the "lower" object is in a very flat region of terrain.
    • Fixed a problem where an EllipsoidRhumbLine could travel the long way around the ellipsoid.
    • The RINEX file readers now allow blanks, representing data that was unknown when the files were created. Previously, the readers threw an exception when they encountered a blank.
    • Fixed a problem in NgaDigitalTerrainElevationData that caused the reader to report unknown heights for certain cells even though the cells existed and had valid data.
AGI Components 2008 r5
  • Breaking Changes
    • Please contact us at support@agi.com and we will be glad to help you update your existing code to work with this release.
    • Custom access constraints written for previous releases will not work in this release.
    • Classes implementing IFunctionSamplingStrategy are now also required to implement the methods of IThreadAware.
  • New Features
    • A new library has been added, Spatial Analysis Library. It provides several major new capabilities:
      • Define a set of assets that can cover a region. An asset can be a spacecraft, aircraft, constellation, chain, or any boolean combination of these.
      • Define and discretize a region using one of several gridding algorithms.
      • Determine the coverage of the region by the assets.
      • Compute statistical information (Figures of Merit) related to the coverage of the region.
      Effectively, Spatial Analysis Library brings many of the capabilities of STK/Coverage to AGI Components. For more information, see the Coverage overview topic.
    • Access Queries enable the modeling of sophisticated intervisibility problems involving any number of objects. Access constraints on one or many objects can be combined using boolean operators such as And, Or, Not, AtLeastN, AtMostN, and ExactlyN. Access queries can be used to model a chain and will account for light-time delay between each hop. Access queries bring many of the capabilities of the STK Chain and Constellation objects to AGI Components, and in fact enable many use cases that STK cannot support.
    • The Iau2000Orientation and Iau2006Orientation types now provide the orientation of all of the major planets, Earth's Moon, and the Sun. Previously only the Sun and Earth's Moon were available.
  • Improvements
    • Numerous documentation improvements.
    • GlobalPositioningSystemDate now has a constructor that allows an instance to be created directly from a DateTime.
  • Bug Fixes
    • Previously, EllipsoidGeodesic could get stuck in an endless loop when given certain ambiguous cases. Now, it will instead throw an exception explaining the problem.
    • StkEphemerisFile and StkAttitudeFile now provide an interpolator matching the default used by STK even if the source file does not explicitly specify an interpolator.
    • The GPSNavAccuracyWebServiceJavaClient example now includes the necessary Eclipse project files.
    • Fixed a number of bugs in TimeIntervalCollection that could yield incorrect results for certain operations in unusual cases.
AGI Components 2008 r4
  • New Features
    • Several new navigation-related access constraints were added to Navigation Accuracy Library:
      • Dilution of precision (DOP) - DilutionOfPrecisionConstraint
      • Assessed navigation accuracy - NavigationAccuracyAssessedConstraint
      • Predicted navigation accuracy - NavigationAccuracyPredictedConstraint
    • Navigation Accuracy Library can now operate in a 'diligent' or 'lazy' mode when computing accuracy using Prediction Support File (PSF) data. Previously this option was only available when computing accuracy using Performance Assessment File (PAF) data.
    • Added an analytical model for the positions of the planets and Earth's moon based on a paper by Simon et al. This new model, found in Simon1994PlanetaryPositions, is now the default model used by all central bodies. This means that it is no longer necessary to load and configure JPL DE data before performing computations that depend on planetary positions. However, you may still want to use JPL DE data because it is more accurate than this analytical model.
  • Improvements
    • The orbital element types now take optional tolerance parameters, where appropriate. Also, these types now throw more reasonable and consistent exceptions when given invalid input.
    • Numerous documentation improvements.
  • Bug Fixes
    • Fixed a bug in PointVectorToPoint that resulted in one less than the highest requested derivative being returned. If no derivatives were requested, the returned position would be incorrect as well.
AGI Components 2008 r3
  • New Features
    • Support for two new terrain formats has been added to Terrain Analysis Library:
      • AGI World Terrain - AGIWorldTerrain
      • GEODAS Gridded Data Format (GRD98) - GeodasGriddedTerrain
    • STK's Facility and City databases are now supported using the StkFacilityDatabase and StkCityDatabase types.
    • TerrainAzimuthElevationMask.Compute now optionally takes an ITrackCalculationProgress instance which allows cancellation and progress reporting of the computation.
  • Improvements
    • The name has been changed from AGI Component Technology to AGI Components.
    • Numerous documentation improvements.
    • The CHM documentation will now remember the language selection made with the drop-down list in the upper right-hand corner.
    • This release of AGI Components is now tested against Mono v1.9.
    • Some changes to evaluators and evaluator groups have been implemented to improve performance and to simplify the task of writing a new evaluator. If you have written your own evaluator or if you are using evaluator groups to improve performance, please see the Evaluators and Evaluator Groups topic for a description of the changes.
  • Bug Fixes
    • Fixed a bug in EarthCentralBody.FixedFrame where values computed prior to the J2000 epoch were computed incorrectly. This could affect the transformation between the Earth Fixed and Earth Inertial reference frames.
    • Fixed several bugs in RinexNavigation that could cause certain files to fail to parse.
    • Fixed a bug in GpsRinexPropagator that could cause it to miss the first time step when evaluating.
    • Fixed a bug in the RectangularPyramid sensor type that could cause the enclosure function to compute NaNs in very specific circumstances.
    • Fixed a bug in AzimuthElevationRange.ConvertMotion that caused the range-rate to be computed incorrectly.
    • Fixed a bug in ScalarDihedralAngle where the dihedral angle would not be computed correctly if the vectors used to measure the angle were expressed in different axes.
AGI Component Technology 2008 r2
  • New Features
    • A new interface has been added, IIsTimeVarying, which allows evaluators to report whether or not they have a different value as a function of time. All evaluators implement this interface and by default they return true. For best performance, the IsTimeVarying method should be overridden to return false when the evaluator is known not to change with time.
    • PointEvaluator, AxesEvaluator, ScalarEvaluator, and VectorEvaluator now have a SimplifyIfNotTimeVarying method. By calling it in the GetEvaluator-type methods after obtaining the evaluator, the evaluator complexity can be substantially reduced. This is done for many of the evaluators included in the library and results in a substantial performance improvement when, for example, computing Access to a stationary facility.
    • EarthCentralBody now has a SlowChangingAxesUpdateInterval. By default, this interval is used by Iau1976Precession and Iau1980Nutation for their CacheSeconds value. It is still possible to set the CacheSeconds property explicitly to override this value. It is also used for updating pole wander during the Earth Fixed<->Inertial transformation. The default value is 0, indicating that the values should be computed every time, so previous results should be unaffected. However, increasing this value will result in a significant performance improvement for many use cases with little to no difference in results.
    • CartographicZoneConstraint now offers the ability to obtain the zone parameters from the constraint after they have been set. Previously they were write-only.
    • PerformanceAssessmentFile now has a GetSatelliteGlobalUserRangeErrorEvaluator method that can be used to obtain global URE.
    • A new service interface has been added, IGpsPrnService, which allows the user to obtain the PRN associated with a GPS satellite. GpsSatelliteExtension provides this service.
    • SatelliteOutageFile now has several FindOutages methods to find the outages corresponding to a particular PRN or interval.
  • Improvements
    • CentralBodyObstructionConstraint will now yield better performance when not considering light-time delay.
    • The documentation has been improved in several places.
    • The performance of Dilution of Precision (DOP) and RAIM calculations has been substantially improved.
  • Bug Fixes
    • Fixed a serious race condition in TranslationalMotionInterpolator and RotationalMotionInterpolator that could cause them to report wrong numbers when used from multiple threads simultaneously even after doing a CopyForAnotherThread.
    • Fixed a serious race condition in DefaultAccessSamplingStrategy that could cause incorrect sampling of constraint functions during Access computations. The incorrect sampling could cause missed intervals of access or, under certain circumstances, unexpected exceptions.
    • AccessComputation now works correctly if ComputeIntervals is called with an open interval. Previously it threw an unexpected exception.
    • KeplerianElements and ModifiedKeplerianElements now verify that the inclination is within the valid range of 0 to Pi radians.
AGI Component Technology 2008 r1
The first release of AGI Component Technology!