FreeFlyer 7.4 Feature Highlights
FreeFlyer® 7.4 is packed with over 160 new features; here are just a few of the powerful changes you can find in this release:
- Organize and optimize your scripting with new Structs, object removal in Lists, and built-in garbage collection
- Generate SPICE SPK ephemerides for interplanetary analysis
- Use DSN/3-Way Doppler tracking data support in FreeFlyer Orbit Determination
- Experience FreeFlyer Output Visualizations on the Linux platform
- Specify the timing precision mode of a RuntimeApiEngine class and interact with TimeSpan objects via the Runtime API
FreeFlyer 7.4 Feature Specifications
FreeFlyer Visualizations on Linux
- Mission Plans executed on Linux either through the command line or the runtime API can now generate output visualizations.
- ViewWindow, GridWindow, ConsoleWindow, DataTableWindow, and WatchWindow output objects are all supported in this initial implementation of output support on Linux.
- All Viewpoint types are supported.
New features in FreeFlyer Scripting
- FreeFlyer script now allows users to define Structs, which are collections of related FreeFlyer objects. Unlike Lists, Structs can contain many objects of different types.
- FreeFlyer Structs are designed to allow users to easily import and export JSON-formatted data.
- The number of elements in a List or Formation can now be increased or decreased at any time. In previous versions of FreeFlyer, users were not allowed to remove objects from Lists.
- FreeFlyer script now provides a reference assignment operator.
- Behind the scenes, FreeFlyer now has a garbage collector for cleaning up memory for objects that are no longer being used.
- The “step” keyword is no longer necessary in the syntax for For loops. The default “step” increment is 1.
- The “then” keyword is no longer necessary in the syntax for If statements.
New features for Interplanetary Analysis
- FreeFlyer now supports writing of SPICE ephemerides (SPK files in the .bsp format).
- Users can now easily change the propagator and orbital elements of CelestialObjects.
- The CelestialObject.SetPropagatorType() method can be used to set the propagator to TwoBody, SpiceEphemeris, or reset to the default DE propagator.
- The CelestialObject.SetCartesianState() and CelestialObject.SetKeplerianState() methods can be used to easily set a planet or moon’s orbital state in any of FreeFlyer’s built-in reference frames.
- This allows users to “downgrade” the fidelity of the FreeFlyer solar system model, making it much easier to model idealized trajectories for early mission design (e.g. Hohmann transfers, CRTBP dynamics).
- Added new reference frames for analysis beyond Earth orbit:
- Moon Frames:
- Added support for velocity vector conversions in the Moon Fixed (Principal Axis Rotating, or PA) frame.
- Moon PA – Inertial at J2000 frame.
- Moon PA – Inertial at Epoch frame.
- Moon Mean Earth Rotating (or Moon ME) frame.
- Moon ME – Inertial at J2000 frame.
- Moon ME – Inertial at Epoch frame.
- Generic CelestialObject Frames:
- Body Fixed frame.
- Inertial Equatorial J2000 frame.
- Inertial Equatorial At Epoch frame.
- These new frames are supported by the PositionConvert, VelocityConvert, and PositionVelocityConvert functions, as well as methods like Spacecraft.SetKeplerianState() and CelestialObject.GetCartesianStateAtEpoch().
- Added new Spacecraft properties:
- C3 (characteristic energy).
- Hyperbolic Excess Velocity.
- Moon Frames:
DSN/3-Way Doppler Tracking Data Support
- Added support for processing 3-way ground-based tracking data where the transmitting and receiving stations are different.
- Improved and added additional support for processing Deep Space Network (DSN) data, including native processing of Trk 2-34 formatted data files, frequency ramping management, and range disambiguation.
Runtime API Improvements
- The timing precision mode of a RuntimeApiEngine class can now be specified in the constructor for the engine.
- TimeSpan objects are now a natively supported expression type that can be moved between an instance of FreeFlyer and an external application using the runtime API.
Miscellaneous Improvements
- The play and pause buttons on the main FreeFlyer GUI have been combined for ease of use.
- Useful new properties and methods:
- Added methods to easily set or get a Spacecraft’s Keplerian or Cartesian state in any built-in reference frame (e.g. Spacecraft.SetKeplerianState(), Spacecraft.GetCartesianState()).
- Added GroundStation.InShadow() method and Spacecraft.SubSatellitePointInShadow() method.
- Added Sensor.AttitudeMatrix and Sensor.ObscurationAttitudeMatrix properties to access the direction cosine matrix representing the sensor’s orientation.
- The SetFullCovariance method has been added to all OD estimators to support assigning the full covariance directly.
- Visualization enhancements:
- The ViewWindow.MouseInteractionEnabled property has been added to disable Viewpoint manipulation for a particular ViewWindow.
- Added properties for PointGroup.PointOpacity and PointGroup.PointSize to control the display of PointGroups.
- Added GraphicsOverlay.Shapes[i].PointWidth property to control the display of GraphicsOverlay points.
- Scripting language enhancements:
- Added support CoordinateSystems with the literal matrix operator. The syntax [CoordinateSystem] can now be used to return a literal matrix..
- Whitespace is now allowed before and after description comment slashes (///).
- Added method versions of various commands:
- Object.Save() can now be used in place of the Save command.
- Object.Restore() can now be used in place of the Restore command.
- Ephemeris.GenerateEphemeris() and Ephemeris.AddVectorData() can now be used in place of the Put command.
- Console.Write() method can now be used in place of the Report command.
- Enhanced user support:
- The UserInterface, FileInterface, FileProperties, and StringTokenizer objects are all now available in the Engineer license tier.
- 90 minutes of introductory FreeFlyer Fundamentals Training now available on YouTube.