Stellarium  HEAD
Data Structures | Typedefs | Enumerations | Functions
Satellites Plug-in

Data Structures

class  gTimeSpan
 
class  gSatWrapper
 Wrapper allowing compatibility between gsat and Stellarium/Qt. More...
 
class  SatellitesCommDialog
 
class  SatellitesDialog
 Main configuration window of the Satellites plugin. More...
 
class  SatellitesFilterDialog
 
class  SatellitesImportDialog
 
struct  TleData
 Data structure containing unvalidated TLE set as read from a TLE list file. More...
 
struct  TleSource
 TLE update source, used only internally for now. More...
 
class  SatellitesListFilterModel
 Custom proxy model allowing filtering by satellite group and flag. More...
 
class  SatellitesListModel
 A model encapsulating a satellite list. More...
 
class  gSatTEME
 Sat position and velocity predictions over TEME reference system. More...
 
class  Satellite
 A representation of a satellite in Earth orbit. More...
 
class  Satellites
 Main class of the Satellites plugin. More...
 

Typedefs

typedef QSet< QString > GroupSet
 Type for sets of satellite group IDs.
 
typedef QList< TleDataTleDataList
 
typedef QHash< QString, TleDataTleDataHash
 
typedef QList< TleSourceTleSourceList
 

Enumerations

enum  SatelliteDataRole {
  SatIdRole = Qt::UserRole , SatCosparIDRole , SatDescriptionRole , SatStdMagnitudeRole ,
  SatRCSRole , SatPerigeeRole , SatApogeeRole , SatPeriodRole ,
  SatTLEEpochRole , SatFlagsRole , SatGroupsRole , FirstLineRole ,
  SecondLineRole
}
 Description of the data roles used in SatellitesListModel.
 
enum  SatFlag {
  SatNoFlags = 0x00000000 , SatDisplayed = 0x00000001 , SatNotDisplayed = 0x00000002 , SatUser = 0x00000004 ,
  SatOrbit = 0x00000008 , SatNew = 0x00000010 , SatError = 0x00000020 , SatSmallSize = 0x00000040 ,
  SatMediumSize = 0x00000080 , SatLargeSize = 0x00000100 , SatLEO = 0x00000200 , SatMEO = 0x00000400 ,
  SatGSO = 0x00000800 , SatHEO = 0x00001000 , SatHGSO = 0x00002000 , SatPolarOrbit = 0x00004000 ,
  SatEquatOrbit = 0x00008000 , SatPSSO = 0x00010000 , SatHEarthO = 0x00020000 , SatOutdatedTLE = 0x00040000 ,
  SatCustomFilter = 0x00080000 , SatCommunication = 0x00100000 , SatReentry = 0x00200000 , SatActiveOS = 0x00400000 ,
  SatOperationalOS = 0x00800000 , SatNonoperationalOS = 0x01000000 , SatPartiallyOperationalOS = 0x02000000 , SatStandbyOS = 0x04000000 ,
  SatSpareOS = 0x08000000 , SatExtendedMissionOS = 0x10000000 , SatDecayedOS = 0x20000000
}
 Flag type reflecting internal flags of Satellite.
 

Functions

double Sqr (double arg)
 Returns square of a double.
 

Detailed Description

The Satellites plugin displays the positions of artificial satellites in Earth orbit based on a catalog of orbital data.

The Satellites class is the main class of the plug-in. It manages a collection of Satellite objects and takes care of loading, saving and updating the satellite catalog. It allows automatic updates from online sources and manages a list of update file URLs.

To calculate satellite positions, the plugin uses an implementation of the SGP4/SDP4 algorithms (J.L. Canales' gsat library).

Satellite Properties

Name and identifiers

Each satellite has a name. It's displayed as a label of the satellite hint and in the list of satellites. Names are not unique though, so they are used only for presentation purposes.

In the Satellite Catalog satellites are uniquely identified by their NORAD number, which is encoded in TLEs.

Grouping

A satellite can belong to one or more groups such as "amateur", "geostationary" or "navigation". They have no other function but to help the user organize the satellite collection.

Group names are arbitrary strings defined in the Satellite Catalog for each satellite and are more similar to the concept of "tags" than a hierarchical grouping. A satellite may not belong to any group at all.

By convention, group names are in lowercase. The GUI translates some of the groups used in the default catalog.

Satellite Catalog

The satellite catalog is stored on the disk in JSON format, in a file named "satellites.json". A default copy is embedded in the plug-in at compile time. A working copy is kept in the user data directory.

Configuration

The plug-ins' configuration data is stored in Stellarium's main configuration file.


Data Structure Documentation

◆ gTimeSpan

class gTimeSpan

Public Member Functions

 gTimeSpan (double timeSpanSrc=0)
 
 gTimeSpan (long lDays, int nHours, int nMins, double nSecs)
 
 gTimeSpan (const gTimeSpan &timeSpanSrc)
 
const gTimeSpanoperator= (const gTimeSpan &timeSpanSrc)
 
const gTimeSpanoperator= (const double &timeSpanSrc)
 
long getDays () const
 Operation: getDays() This method returns the integer days number stored in the gTimeSpan object. More...
 
int getHours () const
 Operation: getHours() This method returns the integer hours number stored in the gTimeSpan object. More...
 
int getMinutes () const
 Operation: getMinutes() This method returns the integer Minutes number stored in the gTimeSpan object. More...
 
int getSeconds () const
 Operation: getSeconds() This method returns the integer seconds number stored in the gTimeSpan object. More...
 
double getDblSeconds () const
 Operation: getDblSeconds() This method returns the total seconds number stored in the gTimeSpan object. More...
 
double getDblDays () const
 Operation: getDblDays() This method returns the total days number stored in the gTimeSpan object. More...
 
gTimeSpan operator- (gTimeSpan timeSpan) const
 
gTimeSpan operator+ (gTimeSpan timeSpan) const
 
const gTimeSpanoperator+= (gTimeSpan timeSpan)
 
const gTimeSpanoperator-= (gTimeSpan timeSpan)
 
bool operator== (gTimeSpan timeSpan) const
 
bool operator!= (gTimeSpan timeSpan) const
 
bool operator< (gTimeSpan timeSpan) const
 
bool operator> (gTimeSpan timeSpan) const
 
bool operator<= (gTimeSpan timeSpan) const
 
bool operator>= (gTimeSpan timeSpan) const
 

Member Function Documentation

◆ getDays()

long gTimeSpan::getDays ( ) const

Operation: getDays() This method returns the integer days number stored in the gTimeSpan object.

Returns
long Total number of days

◆ getDblDays()

double gTimeSpan::getDblDays ( ) const

Operation: getDblDays() This method returns the total days number stored in the gTimeSpan object.

Returns
double Total number of days in days and fraction of day.

◆ getDblSeconds()

double gTimeSpan::getDblSeconds ( ) const

Operation: getDblSeconds() This method returns the total seconds number stored in the gTimeSpan object.

Returns
double Total number of seconds in seconds and fraction of second.

◆ getHours()

int gTimeSpan::getHours ( ) const

Operation: getHours() This method returns the integer hours number stored in the gTimeSpan object.

Returns
int This is a value between 0 and 23 hours

◆ getMinutes()

int gTimeSpan::getMinutes ( ) const

Operation: getMinutes() This method returns the integer Minutes number stored in the gTimeSpan object.

Returns
int This is a value between 0 and 59 minutes.

◆ getSeconds()

int gTimeSpan::getSeconds ( ) const

Operation: getSeconds() This method returns the integer seconds number stored in the gTimeSpan object.

Returns
int This is a value between 0 and 59 seconds

◆ gSatWrapper

class gSatWrapper

Wrapper allowing compatibility between gsat and Stellarium/Qt.

Public Types

enum  Visibility {
  UNKNOWN = 0 , RADAR_SUN = 1 , VISIBLE = 2 , RADAR_NIGHT = 3 ,
  PENUMBRAL = 4 , ANNULAR = 5 , BELOW_HORIZON = 6
}
 

Public Member Functions

 gSatWrapper (QString designation, QString tle1, QString tle2)
 
void setEpoch (double ai_julianDaysEpoch)
 This operation update Epoch timestamp for gSatTEME object from Stellarium Julian Date.
 
Vec3d getTEMEPos () const
 This operation isolate gSatTEME getPos operation. More...
 
Vec3d getTEMEVel () const
 This operation isolate gSatTEME getVel operation. More...
 
Vec3d getSubPoint () const
 This operation isolate getSubPoint method of gSatTEME object. More...
 
Vec3d getAltAz () const
 This operation compute the coordinates in StelCore::FrameAltAz. More...
 
void getSlantRange (double &ao_slantRange, double &ao_slantRangeRate) const
 This operation compute the slant range (distance between the satellite and the observer) and its variation/seg. More...
 
Visibility getVisibilityPredict () const
 This operation predicts the satellite visibility contidions. More...
 
double getPhaseAngle () const
 
double getOrbitalPeriod () const
 Get orbital period in minutes.
 
double getOrbitalInclination () const
 Get orbital inclination in degrees.
 
Vec2d getPerigeeApogeeAltitudes () const
 Get perigee/apogee altitudes in kilometers for equatorial radius of Earth.
 

Static Public Member Functions

static Vec3d getSunECIPos ()
 Get Sun positions in ECI system. More...
 
static gTime getEpoch ()
 
static void calcObserverECIPosition (Vec3d &ao_position, Vec3d &ao_vel)
 This operation computes the observer ECI coordinates in Geocentric Equatorial Coordinate System (IJK) for the ai_epoch time. More...
 
static Vec3d getObserverECIPos ()
 

Member Function Documentation

◆ calcObserverECIPosition()

static void gSatWrapper::calcObserverECIPosition ( Vec3d ao_position,
Vec3d ao_vel 
)
static

This operation computes the observer ECI coordinates in Geocentric Equatorial Coordinate System (IJK) for the ai_epoch time.

This position can be assumed as observer position in TEME framework without an appreciable error. ECI axis (IJK) are parallel to StelCore::EquinoxEQ Framework but centered in the earth centre instead the observer position.

References
Orbital Coordinate Systems, Part II Dr. T.S. Kelso https://celestrak.org/columns/v02n02/
Parameters
[out]ao_positionObserver ECI position vector measured in Km
[out]ao_velObserver ECI velocity vector measured in Km/s

◆ getAltAz()

Vec3d gSatWrapper::getAltAz ( ) const

This operation compute the coordinates in StelCore::FrameAltAz.

Returns
Vect3d Vector with coordinates (measured in km)
References
Orbital Coordinate Systems, Part II Dr. T.S. Kelso https://celestrak.org/columns/v02n02/

◆ getSlantRange()

void gSatWrapper::getSlantRange ( double &  ao_slantRange,
double &  ao_slantRangeRate 
) const

This operation compute the slant range (distance between the satellite and the observer) and its variation/seg.

Parameters
&ao_slantRangeReference to a output variable where the method store the slant range measured in Km
&ao_slantRangeRateReference to a output variable where the method store the slant range variation in Km/s
Returns
void

◆ getSubPoint()

Vec3d gSatWrapper::getSubPoint ( ) const

This operation isolate getSubPoint method of gSatTEME object.

Returns
Vec3d Geographical coordinates
Latitude: Coord[0] measured in degrees
Longitude: Coord[1] measured in degrees
Altitude: Coord[2] measured in Km.

◆ getSunECIPos()

static Vec3d gSatWrapper::getSunECIPos ( )
static

Get Sun positions in ECI system.

Returns
Vec3d with ECI position.

◆ getTEMEPos()

Vec3d gSatWrapper::getTEMEPos ( ) const

This operation isolate gSatTEME getPos operation.

Returns
Vec3d with TEME position. Units measured in Km.

◆ getTEMEVel()

Vec3d gSatWrapper::getTEMEVel ( ) const

This operation isolate gSatTEME getVel operation.

Returns
Vec3d with TEME speed. Units measured in Km/s.

◆ getVisibilityPredict()

Visibility gSatWrapper::getVisibilityPredict ( ) const

This operation predicts the satellite visibility contidions.

VISIBLE means the satellite is sunlit and the site is in the dark; RADAR_NIGHT means the satellite isn't sunlit and the site either in the light or dark; RADAR_SUN means the satellite and site are in the sunlight PENUMBRAL means the satellite is in penumbra ANNULAR means the satellite is eclipsed by the earth shadow

Returns
1 if RADAR_SUN 2 if VISIBLE 3 if RADAR_NIGHT 4 if PENUMBRAL 5 if ANNULAR 6 if BELOW_HORIZON
References
Fundamentals of Astrodynamis and Applications (Fourth Edition) p. 911 David A. Vallado

◆ SatellitesCommDialog

class SatellitesCommDialog

Public Types

enum  CommsColumns { CommsDescription , CommsFrequency , CommsModulation , CommsCount }
 

Public Slots

void retranslate () override
 
void setVisible (bool visible=true) override
 
- Public Slots inherited from StelDialog
virtual void styleChanged (const QString &style)
 Apply application style change.
 
virtual void retranslate ()=0
 Retranslate the content of the dialog. More...
 
virtual void setVisible (bool)
 On the first call with "true" populates the window contents.
 
virtual void close ()
 Closes the window (the window widget is not deleted, just not visible).
 
void handleMovedTo (QPoint newPos)
 Adds dialog location to config.ini; should be connected in createDialogContent()
 
virtual void handleDialogSizeChanged (QSizeF size)
 Stores dialog sizes into config.ini; should be connected from the proxy. More...
 

Protected Member Functions

void createDialogContent () override
 Initialize the dialog widgets and connect the signals/slots.
 

Protected Attributes

Ui_satellitesCommDialog * ui
 
- Protected Attributes inherited from StelDialog
QWidget * dialog
 The main dialog.
 
class CustomProxyproxy
 
QString dialogName
 The name should be set in derived classes' constructors and can be used to store and retrieve the panel locations.
 
QList< QWidget * > kineticScrollingList
 A list of widgets where kinetic scrolling can be activated or deactivated The list must be filled once, in the constructor or init() of fillDialog() etc. More...
 

Additional Inherited Members

- Signals inherited from StelDialog
void visibleChanged (bool)
 
- Public Member Functions inherited from StelDialog
 StelDialog (const QString &dialogName=QString("Default"), QObject *parent=nullptr)
 
bool visible () const
 Returns true if the dialog contents have been constructed and are currently shown.
 
QString getDialogName () const
 
- Protected Slots inherited from StelDialog
bool askConfirmation (const QString &message=q_("Are you sure? This will delete your customized data."))
 
void messageBox (const QString &title, const QString &message)
 
void enableKineticScrolling (bool b)
 enable kinetic scrolling. This should be connected to StelApp's StelGui signal flagUseKineticScrollingChanged.
 
void handleFontChanged ()
 connect from StelApp to handle font and font size changes.
 
void handleColorSchemeChanged ()
 connect from StelApp to handle CSS style changes
 
virtual void updateNightModeProperty (bool n)
 
- Static Protected Member Functions inherited from StelDialog
static void connectCheckBox (QAbstractButton *checkBox, const QString &actionName)
 Helper function to connect a checkbox to the StelAction with the specified name.
 
static void connectCheckBox (QAbstractButton *checkBox, StelAction *action)
 Helper function to connect a checkbox to the given StelAction.
 
static void connectIntProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to an integer StelProperty. More...
 
static void connectIntProperty (QSpinBox *spinBox, const QString &propName)
 Helper function to connect a QSpinBox to an integer StelProperty. More...
 
static void connectIntProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to an integer StelProperty. More...
 
static void connectIntProperty (QSlider *slider, const QString &propName, int minValue, int maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectDoubleProperty (QDoubleSpinBox *spinBox, const QString &propName)
 Helper function to connect a QDoubleSpinBox to an double or float StelProperty. More...
 
static void connectDoubleProperty (AngleSpinBox *spinBox, const QString &propName)
 Helper function to connect an AngleSpinBox to a double or float StelProperty representing decimal degrees. More...
 
static void connectDoubleProperty (QSlider *slider, const QString &propName, double minValue, double maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectStringProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to a QString StelProperty. More...
 
static void connectStringProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to a QString StelProperty. More...
 
static void connectBoolProperty (QAbstractButton *checkBox, const QString &propName)
 Helper function to connect a checkbox to a bool StelProperty. More...
 
static void connectBoolProperty (QGroupBox *checkBox, const QString &propName)
 Helper function to connect a groupbox to a bool StelProperty. More...
 
- Properties inherited from StelDialog
bool visible
 

Member Enumeration Documentation

◆ CommsColumns

Enumerator
CommsFrequency 

name of communication link

CommsModulation 

frequency, MHz

CommsCount 

modulation info

total number of columns

◆ SatellitesDialog

class SatellitesDialog

Main configuration window of the Satellites plugin.

Public Slots

void retranslate () override
 
- Public Slots inherited from StelDialog
virtual void styleChanged (const QString &style)
 Apply application style change.
 
virtual void retranslate ()=0
 Retranslate the content of the dialog. More...
 
virtual void setVisible (bool)
 On the first call with "true" populates the window contents.
 
virtual void close ()
 Closes the window (the window widget is not deleted, just not visible).
 
void handleMovedTo (QPoint newPos)
 Adds dialog location to config.ini; should be connected in createDialogContent()
 
virtual void handleDialogSizeChanged (QSizeF size)
 Stores dialog sizes into config.ini; should be connected from the proxy. More...
 

Protected Member Functions

void createDialogContent () override
 Initialize the dialog widgets and connect the signals/slots.
 

Additional Inherited Members

- Signals inherited from StelDialog
void visibleChanged (bool)
 
- Public Member Functions inherited from StelDialog
 StelDialog (const QString &dialogName=QString("Default"), QObject *parent=nullptr)
 
bool visible () const
 Returns true if the dialog contents have been constructed and are currently shown.
 
QString getDialogName () const
 
- Protected Slots inherited from StelDialog
bool askConfirmation (const QString &message=q_("Are you sure? This will delete your customized data."))
 
void messageBox (const QString &title, const QString &message)
 
void enableKineticScrolling (bool b)
 enable kinetic scrolling. This should be connected to StelApp's StelGui signal flagUseKineticScrollingChanged.
 
void handleFontChanged ()
 connect from StelApp to handle font and font size changes.
 
void handleColorSchemeChanged ()
 connect from StelApp to handle CSS style changes
 
virtual void updateNightModeProperty (bool n)
 
- Static Protected Member Functions inherited from StelDialog
static void connectCheckBox (QAbstractButton *checkBox, const QString &actionName)
 Helper function to connect a checkbox to the StelAction with the specified name.
 
static void connectCheckBox (QAbstractButton *checkBox, StelAction *action)
 Helper function to connect a checkbox to the given StelAction.
 
static void connectIntProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to an integer StelProperty. More...
 
static void connectIntProperty (QSpinBox *spinBox, const QString &propName)
 Helper function to connect a QSpinBox to an integer StelProperty. More...
 
static void connectIntProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to an integer StelProperty. More...
 
static void connectIntProperty (QSlider *slider, const QString &propName, int minValue, int maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectDoubleProperty (QDoubleSpinBox *spinBox, const QString &propName)
 Helper function to connect a QDoubleSpinBox to an double or float StelProperty. More...
 
static void connectDoubleProperty (AngleSpinBox *spinBox, const QString &propName)
 Helper function to connect an AngleSpinBox to a double or float StelProperty representing decimal degrees. More...
 
static void connectDoubleProperty (QSlider *slider, const QString &propName, double minValue, double maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectStringProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to a QString StelProperty. More...
 
static void connectStringProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to a QString StelProperty. More...
 
static void connectBoolProperty (QAbstractButton *checkBox, const QString &propName)
 Helper function to connect a checkbox to a bool StelProperty. More...
 
static void connectBoolProperty (QGroupBox *checkBox, const QString &propName)
 Helper function to connect a groupbox to a bool StelProperty. More...
 
- Protected Attributes inherited from StelDialog
QWidget * dialog
 The main dialog.
 
class CustomProxyproxy
 
QString dialogName
 The name should be set in derived classes' constructors and can be used to store and retrieve the panel locations.
 
QList< QWidget * > kineticScrollingList
 A list of widgets where kinetic scrolling can be activated or deactivated The list must be filled once, in the constructor or init() of fillDialog() etc. More...
 
- Properties inherited from StelDialog
bool visible
 

◆ SatellitesFilterDialog

class SatellitesFilterDialog

Public Slots

void retranslate () override
 
void setVisible (bool visible=true) override
 
- Public Slots inherited from StelDialog
virtual void styleChanged (const QString &style)
 Apply application style change.
 
virtual void retranslate ()=0
 Retranslate the content of the dialog. More...
 
virtual void setVisible (bool)
 On the first call with "true" populates the window contents.
 
virtual void close ()
 Closes the window (the window widget is not deleted, just not visible).
 
void handleMovedTo (QPoint newPos)
 Adds dialog location to config.ini; should be connected in createDialogContent()
 
virtual void handleDialogSizeChanged (QSizeF size)
 Stores dialog sizes into config.ini; should be connected from the proxy. More...
 

Additional Inherited Members

- Signals inherited from StelDialog
void visibleChanged (bool)
 
- Public Member Functions inherited from StelDialog
 StelDialog (const QString &dialogName=QString("Default"), QObject *parent=nullptr)
 
bool visible () const
 Returns true if the dialog contents have been constructed and are currently shown.
 
QString getDialogName () const
 
- Protected Slots inherited from StelDialog
bool askConfirmation (const QString &message=q_("Are you sure? This will delete your customized data."))
 
void messageBox (const QString &title, const QString &message)
 
void enableKineticScrolling (bool b)
 enable kinetic scrolling. This should be connected to StelApp's StelGui signal flagUseKineticScrollingChanged.
 
void handleFontChanged ()
 connect from StelApp to handle font and font size changes.
 
void handleColorSchemeChanged ()
 connect from StelApp to handle CSS style changes
 
virtual void updateNightModeProperty (bool n)
 
- Static Protected Member Functions inherited from StelDialog
static void connectCheckBox (QAbstractButton *checkBox, const QString &actionName)
 Helper function to connect a checkbox to the StelAction with the specified name.
 
static void connectCheckBox (QAbstractButton *checkBox, StelAction *action)
 Helper function to connect a checkbox to the given StelAction.
 
static void connectIntProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to an integer StelProperty. More...
 
static void connectIntProperty (QSpinBox *spinBox, const QString &propName)
 Helper function to connect a QSpinBox to an integer StelProperty. More...
 
static void connectIntProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to an integer StelProperty. More...
 
static void connectIntProperty (QSlider *slider, const QString &propName, int minValue, int maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectDoubleProperty (QDoubleSpinBox *spinBox, const QString &propName)
 Helper function to connect a QDoubleSpinBox to an double or float StelProperty. More...
 
static void connectDoubleProperty (AngleSpinBox *spinBox, const QString &propName)
 Helper function to connect an AngleSpinBox to a double or float StelProperty representing decimal degrees. More...
 
static void connectDoubleProperty (QSlider *slider, const QString &propName, double minValue, double maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectStringProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to a QString StelProperty. More...
 
static void connectStringProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to a QString StelProperty. More...
 
static void connectBoolProperty (QAbstractButton *checkBox, const QString &propName)
 Helper function to connect a checkbox to a bool StelProperty. More...
 
static void connectBoolProperty (QGroupBox *checkBox, const QString &propName)
 Helper function to connect a groupbox to a bool StelProperty. More...
 
- Protected Attributes inherited from StelDialog
QWidget * dialog
 The main dialog.
 
class CustomProxyproxy
 
QString dialogName
 The name should be set in derived classes' constructors and can be used to store and retrieve the panel locations.
 
QList< QWidget * > kineticScrollingList
 A list of widgets where kinetic scrolling can be activated or deactivated The list must be filled once, in the constructor or init() of fillDialog() etc. More...
 
- Properties inherited from StelDialog
bool visible
 

◆ SatellitesImportDialog

class SatellitesImportDialog

Public Slots

void retranslate () override
 
void setVisible (bool visible=true) override
 
- Public Slots inherited from StelDialog
virtual void styleChanged (const QString &style)
 Apply application style change.
 
virtual void retranslate ()=0
 Retranslate the content of the dialog. More...
 
virtual void setVisible (bool)
 On the first call with "true" populates the window contents.
 
virtual void close ()
 Closes the window (the window widget is not deleted, just not visible).
 
void handleMovedTo (QPoint newPos)
 Adds dialog location to config.ini; should be connected in createDialogContent()
 
virtual void handleDialogSizeChanged (QSizeF size)
 Stores dialog sizes into config.ini; should be connected from the proxy. More...
 

Signals

void satellitesAccepted (const TleDataList &newSatellites)
 
- Signals inherited from StelDialog
void visibleChanged (bool)
 

Additional Inherited Members

- Public Member Functions inherited from StelDialog
 StelDialog (const QString &dialogName=QString("Default"), QObject *parent=nullptr)
 
bool visible () const
 Returns true if the dialog contents have been constructed and are currently shown.
 
QString getDialogName () const
 
- Protected Slots inherited from StelDialog
bool askConfirmation (const QString &message=q_("Are you sure? This will delete your customized data."))
 
void messageBox (const QString &title, const QString &message)
 
void enableKineticScrolling (bool b)
 enable kinetic scrolling. This should be connected to StelApp's StelGui signal flagUseKineticScrollingChanged.
 
void handleFontChanged ()
 connect from StelApp to handle font and font size changes.
 
void handleColorSchemeChanged ()
 connect from StelApp to handle CSS style changes
 
virtual void updateNightModeProperty (bool n)
 
- Static Protected Member Functions inherited from StelDialog
static void connectCheckBox (QAbstractButton *checkBox, const QString &actionName)
 Helper function to connect a checkbox to the StelAction with the specified name.
 
static void connectCheckBox (QAbstractButton *checkBox, StelAction *action)
 Helper function to connect a checkbox to the given StelAction.
 
static void connectIntProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to an integer StelProperty. More...
 
static void connectIntProperty (QSpinBox *spinBox, const QString &propName)
 Helper function to connect a QSpinBox to an integer StelProperty. More...
 
static void connectIntProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to an integer StelProperty. More...
 
static void connectIntProperty (QSlider *slider, const QString &propName, int minValue, int maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectDoubleProperty (QDoubleSpinBox *spinBox, const QString &propName)
 Helper function to connect a QDoubleSpinBox to an double or float StelProperty. More...
 
static void connectDoubleProperty (AngleSpinBox *spinBox, const QString &propName)
 Helper function to connect an AngleSpinBox to a double or float StelProperty representing decimal degrees. More...
 
static void connectDoubleProperty (QSlider *slider, const QString &propName, double minValue, double maxValue)
 Helper function to connect a QSlider to an double or float StelProperty. More...
 
static void connectStringProperty (QComboBox *comboBox, const QString &propName)
 Helper function to connect a QComboBox to a QString StelProperty. More...
 
static void connectStringProperty (QLineEdit *lineEdit, const QString &propName)
 Helper function to connect a QLineEdit to a QString StelProperty. More...
 
static void connectBoolProperty (QAbstractButton *checkBox, const QString &propName)
 Helper function to connect a checkbox to a bool StelProperty. More...
 
static void connectBoolProperty (QGroupBox *checkBox, const QString &propName)
 Helper function to connect a groupbox to a bool StelProperty. More...
 
- Protected Attributes inherited from StelDialog
QWidget * dialog
 The main dialog.
 
class CustomProxyproxy
 
QString dialogName
 The name should be set in derived classes' constructors and can be used to store and retrieve the panel locations.
 
QList< QWidget * > kineticScrollingList
 A list of widgets where kinetic scrolling can be activated or deactivated The list must be filled once, in the constructor or init() of fillDialog() etc. More...
 
- Properties inherited from StelDialog
bool visible
 

◆ CommLink

struct CommLink

Radio communication channel properties.

Data Fields
QString description Callsign with channel description.
double frequency Channel frequency in MHz.
QString modulation Signal modulation mode.

◆ TleData

struct TleData

Data structure containing unvalidated TLE set as read from a TLE list file.

Data Fields
bool addThis Flag indicating whether this satellite should be added.

See Satellites::autoAddEnabled.

QString first
QString id NORAD catalog number, as extracted from the TLE set.
QString name Human readable name, as extracted from the TLE title line.
QString second
QString sourceURL Source of TLE (URL), can be used for assign satellites group.
int status

◆ TleSource

struct TleSource

TLE update source, used only internally for now.

Data Fields
bool addNew Flag indicating whether new satellites in this list should be added.

See Satellites::autoAddEnabled.

QFile * file The downloaded file, location set after finishing download.

In the future may be a QTemporaryFile object.

QUrl url URL from where the source list should be downloaded.

◆ SatellitesListFilterModel

class SatellitesListFilterModel

Custom proxy model allowing filtering by satellite group and flag.

Signals

void filterFlagChanged (SatFlag &)
 
void filterGroupChanged (QString &)
 

Public Member Functions

 SatellitesListFilterModel (QObject *parent=nullptr)
 
SatFlag getFilterFlag () const
 
void setFilterFlag (const SatFlag &flag)
 
QString getFilterGroup () const
 
void setFilterGroup (const QString &groupId)
 
void setSecondaryFilters (const QString &groupId, const SatFlag &flag)
 

Protected Member Functions

bool filterAcceptsRow (int source_row, const QModelIndex &source_parent) const override
 Reimplementation of the filtering method.
 

Properties

SatFlag filterFlag
 Only satellites with this flag raised will be returned. More...
 
QString filterGroup
 Only satellites belonging to this group will be returned. More...
 

Property Documentation

◆ filterFlag

SatFlag SatellitesListFilterModel::filterFlag
readwrite

Only satellites with this flag raised will be returned.

Use Satellite::NoFlags for no filtering. Setting the flag with setFilterFlag() or setSecondaryFilters() will cause the model to be re-filtered.

◆ filterGroup

QString SatellitesListFilterModel::filterGroup
readwrite

Only satellites belonging to this group will be returned.

Use an empty group ID for no filtering. Setting the group with setFilterGroup() or setSecondaryFilters() will cause the model to be re-filtered.

◆ SatellitesListModel

class SatellitesListModel

A model encapsulating a satellite list.

Used for GUI presentation purposes.

It can show satellite names in their hint colors. This behavior can be toggled with enableColoredNames(), e.g. to honor night mode.

Warning
The model keeps a pointer to the satellite list, not a copy, so every time that list is modified outside the model (i.e. satellites are added or removed), you need to call beginSatellitesChange() and endSatellitesChange().

Public Member Functions

 SatellitesListModel (QList< SatelliteP > *satellites, QObject *parent=nullptr)
 
void setSatelliteList (QList< SatelliteP > *satellites)
 

Reimplemented model handling methods.

Qt::ItemFlags flags (const QModelIndex &index) const override
 
QVariant data (const QModelIndex &index, int role) const override
 
bool setData (const QModelIndex &index, const QVariant &value, int role) override
 
int rowCount (const QModelIndex &parent) const override
 
int columnCount (const QModelIndex &parent) const override
 
void beginSatellitesChange ()
 Tell the model that its internal data structure is about to be modified. More...
 
void endSatellitesChange ()
 Tell the model that its internal data has been modified. More...
 
void enableColoredNames (bool enable=true)
 

Member Function Documentation

◆ beginSatellitesChange

void SatellitesListModel::beginSatellitesChange ( )
slot

Tell the model that its internal data structure is about to be modified.

This should be called every time when the underlying data structure is about to be modified outside the model! (That is, when satellites are about to be added or removed.) Otherwise views that use this model won't work correctly.

◆ endSatellitesChange

void SatellitesListModel::endSatellitesChange ( )
slot

Tell the model that its internal data has been modified.

Don't call this without calling beginSatellitesChange() first! This should be called every time when the underlying data structure has been modified outside the model! (That is, when satellites have been added or removed.) Otherwise views that use this model won't work correctly.

◆ gSatTEME

class gSatTEME

Sat position and velocity predictions over TEME reference system.

Class to abstract all the SGP4 complexity. It implementation wrap whit an object oriented class the revised David. A. Vallado code for SGP4 Calculation. (Spacetrack report #6 revised AIAA-2006-6753-rev1)

Public Member Functions

 gSatTEME (const char *pstrName, char *pstrTleLine1, char *pstrTleLine2)
 Default class gSatTEME constructor. More...
 
void setEpoch (gTime ai_time)
 Set compute epoch for prediction. More...
 
void setEpoch (double ai_time)
 Set compute epoch for prediction. More...
 
void setMinSinceKepEpoch (double ai_minSinceKepEpoch)
 Set compute epoch for prediction in minutes since Keplerian data Epoch. More...
 
const Vec3dgetPos () const
 Get the TEME satellite position Vector. More...
 
const Vec3dgetVel () const
 Get the TEME satellite Velocity Vector. More...
 
const Vec3dgetSubPoint () const
 Get the Geographic satellite subpoint Vector calculated by the method compute SubPoint. More...
 
int getErrorCode () const
 
double getPeriod () const
 
double getInclination () const
 
Vec2d getPerigeeApogee () const
 

Constructor & Destructor Documentation

◆ gSatTEME()

gSatTEME::gSatTEME ( const char *  pstrName,
char *  pstrTleLine1,
char *  pstrTleLine2 
)

Default class gSatTEME constructor.

Parameters
[in]pstrNamePointer to a null end string with the Sat. Name
[in]pstrTleLine1Pointer to a null end string with the first TLE Kep. data line
[in]pstrTleLine2Pointer to a null end string with the second TLE Kep. data line

Member Function Documentation

◆ getPos()

const Vec3d& gSatTEME::getPos ( ) const
inline

Get the TEME satellite position Vector.

Returns
Vec3d Satellite position vector measured in Km. x: position[0] y: position[1] z: position[2]

◆ getSubPoint()

const Vec3d& gSatTEME::getSubPoint ( ) const
inline

Get the Geographic satellite subpoint Vector calculated by the method compute SubPoint.

To implement this operation, next references has been used: Orbital Coordinate Systems, Part III By Dr. T.S. Kelso https://celestrak.org/columns/v02n03/

Returns
Vec3d Geographical coordinates
Latitude: Coord[0] measured in degrees
Longitude: Coord[1] measured in degrees
Altitude: Coord[2] measured in Km.

◆ getVel()

const Vec3d& gSatTEME::getVel ( ) const
inline

Get the TEME satellite Velocity Vector.

Returns
Vec3d Satellite Velocity Vector measured in Km/s x: Vel[0]
y: Vel[1]
z: Vel[2]

◆ setEpoch() [1/2]

void gSatTEME::setEpoch ( double  ai_time)
inline

Set compute epoch for prediction.

Parameters
[in]ai_timedouble variable storing the compute epoch time in Julian Days.

◆ setEpoch() [2/2]

void gSatTEME::setEpoch ( gTime  ai_time)

Set compute epoch for prediction.

Parameters
[in]ai_timegTime object storing the compute epoch time.

◆ setMinSinceKepEpoch()

void gSatTEME::setMinSinceKepEpoch ( double  ai_minSinceKepEpoch)

Set compute epoch for prediction in minutes since Keplerian data Epoch.

Parameters
[in]ai_minSinceKepEpochTime since Keplerian Epoch measured in minutes and fraction of minutes.

◆ Satellite

class Satellite

A representation of a satellite in Earth orbit.

Details about the satellite are passed with a JSON-representation structure that contains a Satellite Catalog entry.

Thanks to operator<() overloading, container classes (QList, QMap, etc.) with Satellite or SatelliteP objects can be sorted by satellite name/ID.

Public Types

enum  OptStatus {
  StatusOperational = 1 , StatusNonoperational = 2 , StatusPartiallyOperational = 3 , StatusStandby = 4 ,
  StatusSpare = 5 , StatusExtendedMission = 6 , StatusDecayed = 7 , StatusUnknown = 0
}
 operational statuses
 
- Public Types inherited from StelObject
enum  InfoStringGroupFlags {
  None = 0x00000000 , Name = 0x00000001 , CatalogNumber = 0x00000002 , Magnitude = 0x00000004 ,
  RaDecJ2000 = 0x00000008 , RaDecOfDate = 0x00000010 , AltAzi = 0x00000020 , Distance = 0x00000040 ,
  Elongation = 0x00000080 , Size = 0x00000100 , Velocity = 0x00000200 , ProperMotion = 0x00000400 ,
  Extra = 0x00000800 , HourAngle = 0x00001000 , AbsoluteMagnitude = 0x00002000 , GalacticCoord = 0x00004000 ,
  SupergalacticCoord = 0x00008000 , OtherCoord = 0x00010000 , ObjectType = 0x00020000 , EclipticCoordJ2000 = 0x00040000 ,
  EclipticCoordOfDate = 0x00080000 , IAUConstellation = 0x00100000 , SiderealTime = 0x00200000 , RTSTime = 0x00400000 ,
  SolarLunarPosition = 0x00800000 , Script = 0x01000000 , DebugAid = 0x02000000 , NoFont = 0x04000000 ,
  PlainText = 0x08000000
}
 Used as named bitfield flags as specifiers to filter results of getInfoString. More...
 

Public Member Functions

 Satellite (const QString &identifier, const QVariantMap &data)
 
QVariantMap getMap (void)
 Get a QVariantMap which describes the satellite. More...
 
QString getType (void) const override
 Return object's type. It should be the name of the class.
 
QString getObjectType (void) const override
 Return object's type. More...
 
QString getObjectTypeI18n (void) const override
 Return object's type. It should be translated lowercase name of the type of the object.
 
QString getID (void) const override
 Returns a unique identifier for this object. More...
 
float getSelectPriority (const StelCore *core) const override
 Return a priority value which is used to discriminate objects by priority As for magnitudes, the lower is the higher priority.
 
QString getInfoString (const StelCore *core, const InfoStringGroup &flags) const override
 Get an HTML string to describe the object. More...
 
QVariantMap getInfoMap (const StelCore *core) const override
 Return a map like StelObject::getInfoMap(), but with a few extra tags also available in getInfoString(). More...
 
Vec3f getInfoColor (void) const override
 Get a color used to display info about the object.
 
Vec3d getJ2000EquatorialPos (const StelCore *) const override
 Get observer-centered equatorial coordinates at equinox J2000, including aberration.
 
float getVMagnitude (const StelCore *core) const override
 Return object's apparent V magnitude as seen from observer, without including extinction.
 
double getAngularRadius (const StelCore *) const override
 Get angular half-size, degrees.
 
QString getNameI18n (void) const override
 Return translated object's name.
 
QString getEnglishName (void) const override
 Return object's name in english.
 
QString getCatalogNumberString () const
 Returns the (NORAD) catalog number. (For now, the ID string.)
 
QString getInternationalDesignator () const
 Returns the (COSPAR) International Designator.
 
void setNewTleElements (const QString &tle1, const QString &tle2)
 Set new tleElements. More...
 
void update (double deltaTime)
 
double getDoppler (double freq) const
 
void recalculateOrbitLines (void)
 
void setNew ()
 
bool isNew () const
 
void setCommData (QList< CommLink > comm)
 
SatFlags getFlags () const
 Get internal flags as a single value.
 
void setFlags (const SatFlags &flags)
 Sets the internal flags in one operation (only display flags)!
 
bool operator< (const Satellite &another) const
 Needed for sorting lists (if this ever happens...). More...
 
float calculateIlluminatedFraction () const
 Calculation of illuminated fraction of the satellite.
 
Vec4d getUmbraData ()
 Get radii and geocentric antisolar distances of shadow circles in km from the geocenter. More...
 
QString getOperationalStatus () const
 Get operational status of satellite.
 
void recomputeSatData ()
 
- Public Member Functions inherited from StelObject
SphericalRegionP getRegion () const override
 Default implementation of the getRegion method. More...
 
Vec3d getPointInRegion () const override
 Default implementation of the getPointInRegion method. More...
 
Vec3d getEquinoxEquatorialPos (const StelCore *core) const
 Get observer-centered equatorial coordinate at the current equinox The frame has its Z axis at the planet's current rotation axis At time 2000-01-01 this frame is almost the same as J2000, but ONLY if the observer is on earth.
 
Vec3d getEquinoxEquatorialPosApparent (const StelCore *core) const
 Like getEquinoxEquatorialPos(core), but always adds refraction correction to the position.
 
Vec3d getEquinoxEquatorialPosAuto (const StelCore *core) const
 Like getEquinoxEquatorialPos(core), but adds refraction correction to the position if atmosphere is active.
 
Vec3d getGalacticPos (const StelCore *core) const
 Get observer-centered galactic coordinates.
 
Vec3d getSupergalacticPos (const StelCore *core) const
 Get observer-centered supergalactic coordinates.
 
Vec3d getSiderealPosGeometric (const StelCore *core) const
 Get observer-centered hour angle + declination (at current equinox) It is the geometric position, i.e. More...
 
Vec3d getSiderealPosApparent (const StelCore *core) const
 Get observer-centered hour angle + declination (at current equinox) It is the apparent position, i.e. More...
 
Vec3d getAltAzPosGeometric (const StelCore *core) const
 Get observer-centered alt/az position It is the geometric position, i.e. More...
 
Vec3d getAltAzPosApparent (const StelCore *core) const
 Get observer-centered alt/az position It is the apparent position, i.e. More...
 
Vec3d getAltAzPosAuto (const StelCore *core) const
 Get observer-centered alt/az position It is the automatic position, i.e. More...
 
float getParallacticAngle (const StelCore *core) const
 Get parallactic angle, which is the deviation between zenith angle and north angle. [radians].
 
bool isAboveHorizon (const StelCore *core) const
 Checking position an object above mathematical horizon for current location. More...
 
bool isAboveRealHorizon (const StelCore *core) const
 Checking position an object above real horizon for current location. More...
 
virtual Vec4d getRTSTime (const StelCore *core, const double altitude=0.) const
 Compute time of rise, transit and set for celestial object for current location. More...
 
float getVMagnitudeWithExtinction (const StelCore *core) const
 Return object's apparent V magnitude as seen from observer including extinction. More...
 
virtual double getCloseViewFov (const StelCore *) const
 Return the best FOV in degree to use for a close view of the object.
 
virtual double getSatellitesFov (const StelCore *) const
 Return the best FOV in degree to use for a global view of the object satellite system (if there are satellites)
 
virtual double getParentSatellitesFov (const StelCore *) const
 
virtual float getAirmass (const StelCore *core) const
 Return airmass value for the object (for atmosphere-dependent calculations) More...
 

Static Public Member Functions

static double roundToDp (float n, int dp)
 
static Vec4d getUmbraData (const double rhoE)
 Get radii and geocentric antisolar distances of shadow circles in km for a hypothetical object in distance rhoE [km] from the geocenter. More...
 

Static Public Attributes

static const QString SATELLITE_TYPE
 
static bool showLabels
 
- Static Public Attributes inherited from StelObject
static constexpr InfoStringGroup AllInfo
 A pre-defined "all available" set of specifiers for the getInfoString flags argument to getInfoString. More...
 
static constexpr InfoStringGroup DefaultInfo
 A pre-defined "default" set of specifiers for the getInfoString flags argument to getInfoString It appears useful to propose this set as post-install settings and let users configure more on demand. More...
 
static constexpr InfoStringGroup ShortInfo = static_cast<InfoStringGroup>(Name|CatalogNumber|Magnitude|RaDecJ2000)
 A pre-defined "shortest useful" set of specifiers for the getInfoString flags argument to getInfoString.
 

Friends

class Satellites
 
class SatellitesDialog
 
class SatellitesListModel
 

Additional Inherited Members

- Public Slots inherited from StelObject
virtual void setExtraInfoString (const InfoStringGroup &flags, const QString &str)
 Allow additions to the Info String. More...
 
virtual void addToExtraInfoString (const StelObject::InfoStringGroup &flags, const QString &str)
 Add str to the extra string. More...
 
QStringList getExtraInfoStrings (const InfoStringGroup &flags) const
 Retrieve an (unsorted) QStringList of all extra info strings that match flags. More...
 
void removeExtraInfoStrings (const InfoStringGroup &flags)
 Remove the extraInfoStrings with the given flags. More...
 
- Protected Member Functions inherited from StelObject
QString getCommonInfoString (const StelCore *core, const InfoStringGroup &flags) const
 Format the positional info string containing J2000/of date/altaz/hour angle positions and constellation, sidereal time, etc. More...
 
virtual QString getMagnitudeInfoString (const StelCore *core, const InfoStringGroup &flags, const int decimals=1) const
 Format the magnitude info string for the object. More...
 
QString getSolarLunarInfoString (const StelCore *core, const InfoStringGroup &flags) const
 Add a section to the InfoString with just horizontal data for the Sun and Moon, when observed from Earth. More...
 
void postProcessInfoString (QString &str, const InfoStringGroup &flags) const
 Apply post processing on the info string. More...
 

Constructor & Destructor Documentation

◆ Satellite()

Satellite::Satellite ( const QString &  identifier,
const QVariantMap &  data 
)
Parameters
identifierunique identifier (currently the Catalog Number)
dataa QMap which contains the details of the satellite (TLE set, description etc.)

Member Function Documentation

◆ getID()

QString Satellite::getID ( void  ) const
inlineoverridevirtual

Returns a unique identifier for this object.

The ID should be unique for all objects of the same type, but may freely conflict with IDs of other types, so getType() must also be tested.

With this it should be possible to at least identify the same object in a different instance of Stellarium running the same version, but it would even be better if the ID provides some degree of forward-compatibility. For some object types (e.g. planets) this may simply return getEnglishName(), but better candidates may be official designations or at least (stable) internal IDs.

An object may have multiple IDs (different catalog numbers, etc). StelObjectMgr::searchByID() should search through all ID variants, but this method only returns one of them.

Implements StelObject.

◆ getInfoMap()

QVariantMap Satellite::getInfoMap ( const StelCore core) const
overridevirtual

Return a map like StelObject::getInfoMap(), but with a few extra tags also available in getInfoString().

  • description
  • catalog
  • international-designator
  • type
  • range (distance in km)
  • rangerate (distance change in km/s)
  • height (height in km)
  • subpoint-lat (latitude of subpoint, decimal degrees)
  • subpoint-long (longitude of subpoint, decimal degrees)
  • inclination (decimal degrees)
  • period (minutes)
  • perigee-altitude (height in km)
  • apogee-altitude (height in km)
  • TEME-km-X
  • TEME-km-Y
  • TEME-km-Z
  • TEME-speed-X
  • TEME-speed-Y
  • TEME-speed-Z
  • sun-reflection-angle (if available)
  • operational-status
  • visibility (descriptive string)
  • comm (Radio information, optional, if available. There may be several comm entries!)

Reimplemented from StelObject.

◆ getInfoString()

QString Satellite::getInfoString ( const StelCore core,
const InfoStringGroup &  flags 
) const
overridevirtual

Get an HTML string to describe the object.

Parameters
coreA pointer to the core
flagsa set of flags with information types to include. Supported types for Satellite objects:
  • Name: designation in large type with the description underneath
  • RaDecJ2000, RaDecOfDate, HourAngle, AltAzi
  • Extra: range, range rate and altitude of satellite above the Earth, comms frequencies, modulation types and so on.

Implements StelObject.

◆ getMap()

QVariantMap Satellite::getMap ( void  )

Get a QVariantMap which describes the satellite.

Could be used to create a duplicate.

◆ getObjectType()

QString Satellite::getObjectType ( void  ) const
inlineoverridevirtual

Return object's type.

It should be English lowercase name of the astronomical type of the object. The purpose of this string is a distinction or further refinement over object class name retrieved with getType(): Planet objects can be planets, moons, or even the Sun. The Sun should however return "star". Nebula objects should return their actual type like "open cluster", "galaxy", "nebula", ...

Implements StelObject.

◆ getUmbraData() [1/2]

Vec4d Satellite::getUmbraData ( )

Get radii and geocentric antisolar distances of shadow circles in km from the geocenter.

Returns
Vec4d(umbraDistance, umbraRadius, penumbraDistance, penumbraRadius); umbraDistance : geocentric distance (km) of the umbra circle centre in the antisolar direction umbraRadius : radius (km) of the umbra circle penumbraDistance : geocentric distance (km) of the penumbra circle in the antisolar direction penumbraRadius : radius (km) of the penumbra circle

◆ getUmbraData() [2/2]

static Vec4d Satellite::getUmbraData ( const double  rhoE)
static

Get radii and geocentric antisolar distances of shadow circles in km for a hypothetical object in distance rhoE [km] from the geocenter.

Parameters
rhoEdistance [km] from the geocenter.
Returns
Vec4d(umbraDistance, umbraRadius, penumbraDistance, penumbraRadius); umbraDistance : geocentric distance (km) of the umbra circle centre in the antisolar direction umbraRadius : radius (km) of the umbra circle penumbraDistance : geocentric distance (km) of the penumbra circle in the antisolar direction penumbraRadius : radius (km) of the penumbra circle
Note
To gain data for an object in dist_km above (spherical) earth, use rhoE=earth->getEquatorialRadius()*AU+dist_km;

◆ operator<()

bool Satellite::operator< ( const Satellite another) const

Needed for sorting lists (if this ever happens...).

Compares #name fields. If equal, #id fields, which can't be.

◆ setNewTleElements()

void Satellite::setNewTleElements ( const QString &  tle1,
const QString &  tle2 
)

Set new tleElements.

This assumes the designation is already set, populates the tleElements values and configures internal orbit parameters.

◆ Satellites

class Satellites

Main class of the Satellites plugin.

Author
Matthew Gates
Bogdan Marinov

Public Types

enum  UpdateState {
  Updating , CompleteNoUpdates , CompleteUpdates , DownloadError ,
  OtherError
}
 Used for keeping track of the download/update status. More...
 
enum  Status {
  Visible , NotVisible , Both , NewlyAdded ,
  OrbitError
}
 Flags used to filter the satellites list according to their status.
 
- Public Types inherited from StelModule
enum  StelModuleSelectAction { AddToSelection , ReplaceSelection , RemoveFromSelection }
 Enum used when selecting objects to define whether to add to, replace, or remove from the existing selection list. More...
 
enum  StelModuleActionName {
  ActionDraw , ActionUpdate , ActionHandleMouseClicks , ActionHandleMouseMoves ,
  ActionHandleKeys
}
 Define the possible action for which an order is defined. More...
 

Public Slots

bool getUpdatesEnabled (void)
 get whether or not the plugin will try to update TLE data from the internet More...
 
void setUpdatesEnabled (bool enabled)
 Set whether the plugin will try to download updates from the Internet. More...
 
bool isAutoAddEnabled ()
 
void setAutoAddEnabled (bool enabled)
 Emits settingsChanged() if the value changes.
 
bool isAutoRemoveEnabled ()
 
void setAutoRemoveEnabled (bool enabled)
 Emits settingsChanged() if the value changes.
 
void setFlagHintsVisible (bool b)
 Set whether satellite position hints (icons or star-like dot) should be displayed. More...
 
bool getFlagHintsVisible ()
 
void setFlagLabelsVisible (bool b)
 Set whether text labels should be displayed next to satellite hints. More...
 
bool getFlagLabelsVisible ()
 
void setFlagIconicMode (bool b)
 Emits settingsChanged() if the value changes.
 
bool getFlagIconicMode ()
 
bool getFlagHideInvisible ()
 
void setFlagHideInvisible (bool b)
 
bool getFlagColoredInvisible ()
 
void setFlagColoredInvisible (bool b)
 
Vec3f getInvisibleSatelliteColor ()
 Get color for invisible satellites. More...
 
void setInvisibleSatelliteColor (const Vec3f &c)
 Set color for invisible satellites.
 
Vec3f getTransitSatelliteColor ()
 Get color for satellites in transit through the Sun or the Moon (color of markers) More...
 
void setTransitSatelliteColor (const Vec3f &c)
 Set color for satellites in transit through the Sun or the Moon (color of markers)
 
int getLabelFontSize ()
 get the label font size. More...
 
void setLabelFontSize (int size)
 set the label font size. More...
 
void setUpdateFrequencyHours (int hours)
 Set the Internet update frequency. More...
 
void updateFromOnlineSources ()
 Start an Internet update. More...
 
void setFlagOrbitLines (bool b)
 Choose whether or not to draw orbit lines. More...
 
bool getFlagOrbitLines ()
 Get the current status of the orbit line rendering flag.
 
int getOrbitLineSegments ()
 return number of segments for orbit lines
 
void setOrbitLineSegments (int s)
 set number of segments for orbit lines
 
int getOrbitLineFadeSegments ()
 return number of fading segments at end of orbit
 
void setOrbitLineFadeSegments (int s)
 set number of fading segments at end of orbit
 
int getOrbitLineThickness ()
 return the thickness of orbit
 
void setOrbitLineThickness (int s)
 set the thickness of orbit
 
int getOrbitLineSegmentDuration ()
 return duration of a single segments
 
void setOrbitLineSegmentDuration (int s)
 set duration of a single segments
 
int getTleEpochAgeDays ()
 return the valid age of TLE's epoch
 
void setTleEpochAgeDays (int age)
 set the valid age of TLE's epoch
 
void recalculateOrbitLines (void)
 
void setFlagUmbraVisible (bool b)
 Set whether ring of Earth's umbra should be displayed. More...
 
bool getFlagUmbraVisible ()
 
void setFlagUmbraAtFixedAltitude (bool b)
 Set whether ring of Earth's umbra should be displayed at given satellite altitude. More...
 
bool getFlagUmbraAtFixedAltitude ()
 
Vec3f getUmbraColor ()
 Get color for ring of Earth's umbra. More...
 
void setUmbraColor (const Vec3f &c)
 Set color for ring of Earth's umbra.
 
double getUmbraAltitude ()
 Get the fixed distance for center of visualized Earth's umbra. More...
 
void setUmbraAltitude (double d)
 Set the fixed distance for center of visualized Earth's umbra.
 
void setFlagPenumbraVisible (bool b)
 Set whether ring of Earth's penumbra should be displayed. More...
 
bool getFlagPenumbraVisible ()
 
Vec3f getPenumbraColor ()
 Get color for ring of Earth's penumbra. More...
 
void setPenumbraColor (const Vec3f &c)
 Set color for ring of Earth's penumbra.
 
void displayMessage (const QString &message, const QString hexColor="#999999")
 Display a message on the screen for a few seconds. More...
 
void saveCatalog (QString path=QString())
 Save the current satellite catalog to disk.
 
void setFlagCFKnownStdMagnitude (bool b)
 Set whether custom filter 'known standard magnitude' enabled. More...
 
bool getFlagCFKnownStdMagnitude ()
 
void setFlagCFApogee (bool b)
 Set whether custom filter 'apogee' enabled. More...
 
bool getFlagCFApogee ()
 
void setMaxCFApogee (double v)
 Set whether custom filter 'apogee' maximum value (in kilometers). More...
 
double getMaxCFApogee ()
 
void setMinCFApogee (double v)
 Set whether custom filter 'apogee' minimum value (in kilometers). More...
 
double getMinCFApogee ()
 
void setFlagCFPerigee (bool b)
 Set whether custom filter 'perigee' enabled. More...
 
bool getFlagCFPerigee ()
 
void setMaxCFPerigee (double v)
 Set whether custom filter 'perigee' maximum value (in kilometers). More...
 
double getMaxCFPerigee ()
 
void setMinCFPerigee (double v)
 Set whether custom filter 'perigee' minimum value (in kilometers). More...
 
double getMinCFPerigee ()
 
void setFlagVFAltitude (bool b)
 Set whether visual filter 'altitude' enabled.
 
bool getFlagVFAltitude ()
 
void setMaxVFAltitude (double v)
 Set visual filter 'altitude' maximum value (in kilometers).
 
double getMaxVFAltitude ()
 
void setMinVFAltitude (double v)
 Set visual filter 'altitude' minimum value (in kilometers).
 
double getMinVFAltitude ()
 
void setFlagVFMagnitude (bool b)
 Set whether visual filter 'magnitude' enabled.
 
bool getFlagVFMagnitude ()
 
void setMaxVFMagnitude (double v)
 Set visual filter 'magnitude' maximum value.
 
double getMaxVFMagnitude ()
 
void setMinVFMagnitude (double v)
 Set visual filter 'magnitude' minimum value.
 
double getMinVFMagnitude ()
 
void setFlagCFEccentricity (bool b)
 Set whether custom filter 'eccentricity' enabled. More...
 
bool getFlagCFEccentricity ()
 
void setMaxCFEccentricity (double v)
 Set whether custom filter 'eccentricity' maximum value. More...
 
double getMaxCFEccentricity ()
 
void setMinCFEccentricity (double v)
 Set whether custom filter 'eccentricity' minimum value. More...
 
double getMinCFEccentricity ()
 
void setFlagCFPeriod (bool b)
 Set whether custom filter 'period' enabled. More...
 
bool getFlagCFPeriod ()
 
void setMaxCFPeriod (double v)
 Set whether custom filter 'period' maximum value (in minutes). More...
 
double getMaxCFPeriod ()
 
void setMinCFPeriod (double v)
 Set whether custom filter 'period' minimum value (in minutes). More...
 
double getMinCFPeriod ()
 
void setFlagCFInclination (bool b)
 Set whether custom filter 'inclination' enabled. More...
 
bool getFlagCFInclination ()
 
void setMaxCFInclination (double v)
 Set whether custom filter 'inclination' maximum value (in degrees). More...
 
double getMaxCFInclination ()
 
void setMinCFInclination (double v)
 Set whether custom filter 'inclination' minimum value (in degrees). More...
 
double getMinCFInclination ()
 
void setFlagCFRCS (bool b)
 Set whether custom filter 'rcs' enabled. More...
 
bool getFlagCFRCS ()
 
void setMaxCFRCS (double v)
 Set whether custom filter 'rcs' maximum value (in square meters). More...
 
double getMaxCFRCS ()
 
void setMinCFRCS (double v)
 Set whether custom filter 'rcs' minimum value (in square meters). More...
 
double getMinCFRCS ()
 

Signals

void flagHintsVisibleChanged (bool b)
 
void flagLabelsVisibleChanged (bool b)
 
void labelFontSizeChanged (int s)
 
void flagOrbitLinesChanged (bool b)
 
void flagIconicModeChanged (bool b)
 
void flagHideInvisibleChanged (bool b)
 
void flagColoredInvisibleChanged (bool b)
 
void updatesEnabledChanged (bool b)
 
void updateFrequencyHoursChanged (int i)
 
void autoAddEnabledChanged (bool b)
 
void autoRemoveEnabledChanged (bool b)
 
void orbitLineSegmentsChanged (int i)
 
void orbitLineFadeSegmentsChanged (int i)
 
void orbitLineThicknessChanged (int i)
 
void orbitLineSegmentDurationChanged (int i)
 
void tleEpochAgeDaysChanged (int i)
 
void invisibleSatelliteColorChanged (Vec3f)
 
void transitSatelliteColorChanged (Vec3f)
 
void flagUmbraVisibleChanged (bool b)
 
void flagUmbraAtFixedAltitudeChanged (bool b)
 
void umbraColorChanged (Vec3f)
 
void umbraAltitudeChanged (double d)
 
void flagPenumbraVisibleChanged (bool b)
 
void penumbraColorChanged (Vec3f)
 
void flagCFKnownStdMagnitudeChanged (bool b)
 
void flagCFApogeeChanged (bool b)
 
void minCFApogeeChanged (double v)
 
void maxCFApogeeChanged (double v)
 
void flagCFPerigeeChanged (bool b)
 
void minCFPerigeeChanged (double v)
 
void maxCFPerigeeChanged (double v)
 
void flagCFEccentricityChanged (bool b)
 
void minCFEccentricityChanged (double v)
 
void maxCFEccentricityChanged (double v)
 
void flagCFPeriodChanged (bool b)
 
void minCFPeriodChanged (double v)
 
void maxCFPeriodChanged (double v)
 
void flagCFInclinationChanged (bool b)
 
void minCFInclinationChanged (double v)
 
void maxCFInclinationChanged (double v)
 
void flagCFRCSChanged (bool b)
 
void minCFRCSChanged (double v)
 
void maxCFRCSChanged (double v)
 
void flagVFAltitudeChanged (bool b)
 
void minVFAltitudeChanged (double v)
 
void maxVFAltitudeChanged (double v)
 
void flagVFMagnitudeChanged (bool b)
 
void minVFMagnitudeChanged (double v)
 
void maxVFMagnitudeChanged (double v)
 
void settingsChanged ()
 Emitted when some of the plugin settings have been changed. More...
 
void customFilterChanged ()
 Emitted when custom filters of the plugin have been changed. More...
 
void updateStateChanged (Satellites::UpdateState state)
 emitted when the update status changes, e.g. More...
 
void tleUpdateComplete (int updated, int total, int added, int missing)
 Emitted after an update has run. More...
 
void satGroupVisibleChanged ()
 
void satSelectionChanged (QString satID)
 

Public Member Functions

void init () override
 Initialize itself. More...
 
void deinit () override
 Called before the module will be deleted, and before the OpenGL context is suppressed. More...
 
void update (double deltaTime) override
 Update the module with respect to the time. More...
 
void draw (StelCore *core) override
 Execute all the drawing functions for this module. More...
 
void drawPointer (StelCore *core, StelPainter &painter)
 
double getCallOrder (StelModuleActionName actionName) const override
 Return the value defining the order of call for the given action For example if stars.callOrder[ActionDraw] == 10 and constellation.callOrder[ActionDraw] == 11, the stars module will be drawn before the constellations. More...
 
QList< StelObjectPsearchAround (const Vec3d &v, double limitFov, const StelCore *core) const override
 Used to get a list of objects which are near to some position. More...
 
StelObjectP searchByNameI18n (const QString &nameI18n) const override
 Return the matching satellite object's pointer if exists or nullptr. More...
 
StelObjectP searchByName (const QString &name) const override
 Return the matching satellite if exists or nullptr. More...
 
StelObjectP searchByID (const QString &id) const override
 Return the matching satellite if exists or nullptr. More...
 
StelObjectP searchByNoradNumber (const QString &noradNumber) const
 Return the satellite with the given catalog number. More...
 
StelObjectP searchByInternationalDesignator (const QString &intlDesignator) const
 Return the satellite with the given International Designator. More...
 
QStringList listMatchingObjects (const QString &objPrefix, int maxNbItem=5, bool useStartOfWords=false) const override
 Find and return the list of at most maxNbItem objects auto-completing the passed object name. More...
 
QStringList listAllObjects (bool inEnglish) const override
 List all StelObjects. More...
 
QString getName () const override
 Gets a user-displayable name of the object category.
 
QString getStelObjectType () const override
 Returns the name that will be returned by StelObject::getType() for the objects this module manages.
 
bool configureGui (bool show=true) override
 Implement this to tell the main Stellarium GUI that there is a GUI element to configure this plugin. More...
 
void restoreDefaults (void)
 Set up the plugin with default values. More...
 
void restoreDefaultTleSources ()
 Delete TLE sources in main config.ini, then create with default values.
 
void loadSettings ()
 Read (or re-read) the plugin's settings from the configuration file. More...
 
void saveSettingsToConfig ()
 Save the plugin's settings to the main configuration file.
 
QSet< QString > getGroups () const
 Get the groups used in the currently loaded satellite collection. More...
 
QStringList getGroupIdList () const
 Get a sorted list of group names. More...
 
void addGroup (const QString &groupId)
 Add this group to the global list.
 
QHash< QString, QString > getSatellites (const QString &group=QString(), Status vis=Both) const
 get satellite objects filtered by group. More...
 
SatellitesListModelgetSatellitesListModel ()
 Get a model representing the list of satellites.
 
SatelliteP getById (const QString &id) const
 Get a satellite object by its identifier (i.e. NORAD number).
 
QStringList listAllIds () const
 Returns a list of all satellite IDs.
 
void add (const TleDataList &newSatellites)
 Add to the current collection the satellites described by the data list. More...
 
void remove (const QStringList &idList)
 Remove the selected satellites. More...
 
QDateTime getLastUpdate (void) const
 get the date and time the TLE elements were updated
 
int getUpdateFrequencyHours (void) const
 get the update frequency in hours
 
int getSecondsToUpdate (void)
 get the number of seconds till the next update
 
UpdateState getUpdateState (void) const
 get the update frequency in hours More...
 
QStringList getTleSources (void) const
 Get a list of URLs which are sources of TLE data. More...
 
void setTleSources (QStringList tleSources)
 Set the list of URLs which are sources of TLE data. More...
 
void saveTleSources (const QStringList &urls)
 Saves the current list of update URLs to the configuration file.
 
void updateFromFiles (QStringList paths, bool deleteFiles=false)
 Reads update file(s) in celestrak's .txt format, and updates the TLE elements for existing satellites from them. More...
 
void updateSatellites (TleDataHash &newTleSets)
 Updates the loaded satellite collection from the provided data. More...
 
void loadExtraData ()
 Reads qs.mag and rcs files and its parsing for getting id, standard magnitude and RCS values for satellites. More...
 
QList< CommLinkgetCommunicationData (const QString &id)
 
QString getLastSelectedSatelliteID ()
 
- Public Member Functions inherited from StelObjectModule
virtual QStringList listAllObjectsByType (const QString &objType, bool inEnglish) const
 List all StelObjects by type. More...
 
bool matchObjectName (const QString &objName, const QString &objPrefix, bool useStartOfWords) const
 Auxiliary method of listMatchingObjects() More...
 
- Public Member Functions inherited from StelModule
 StelModule ()
 Constructor. Every derived class MUST call setObjectName(className) in its constructor.
 
virtual QSettings * getSettings ()
 Return module-specific settings. More...
 
virtual QString getModuleVersion () const
 Get the version of the module, default is stellarium main version.
 
virtual QString getAuthorName () const
 Get the name of the module author.
 
virtual QString getAuthorEmail () const
 Get the email address of the module author.
 
virtual void handleMouseClicks (class QMouseEvent *)
 Handle mouse clicks. More...
 
virtual void handleMouseWheel (class QWheelEvent *)
 Handle mouse wheel. More...
 
virtual bool handleMouseMoves (int x, int y, Qt::MouseButtons b)
 Handle mouse moves. More...
 
virtual void handleKeys (class QKeyEvent *e)
 Handle key events. More...
 
virtual bool handlePinch (qreal scale, bool started)
 Handle pinch gesture events. More...
 

Static Public Member Functions

static void parseTleFile (QFile &openFile, TleDataHash &tleList, bool addFlagValue=false, const QString &tleURL="")
 Reads a TLE list from a file to the supplied hash. More...
 
static QString getSatIdFromLine2 (const QString &line)
 Insert a three line TLE into the hash array. More...
 

Properties

bool flagHintsVisible
 
bool flagLabelsVisible
 
int labelFontSize
 
bool flagIconicMode
 
bool flagHideInvisible
 
bool flagColoredInvisible
 
bool flagOrbitLines
 
int orbitLineSegments
 
int orbitLineFadeSegments
 
int orbitLineSegmentDuration
 
int orbitLineThickness
 
int tleEpochAgeDays
 
Vec3f invisibleSatelliteColor
 
Vec3f transitSatelliteColor
 
double umbraAltitude
 
bool flagCFKnownStdMagnitude
 
bool flagCFApogee
 
double minCFApogee
 
double maxCFApogee
 
bool flagCFPerigee
 
double minCFPerigee
 
double maxCFPerigee
 
bool flagCFEccentricity
 
double minCFEccentricity
 
double maxCFEccentricity
 
bool flagCFPeriod
 
double minCFPeriod
 
double maxCFPeriod
 
bool flagCFInclination
 
double minCFInclination
 
double maxCFInclination
 
bool flagCFRCS
 
double minCFRCS
 
double maxCFRCS
 
bool flagVFAltitude
 
double minVFAltitude
 
double maxVFAltitude
 
bool flagVFMagnitude
 
double minVFMagnitude
 
double maxVFMagnitude
 

Updater module

bool autoAddEnabled
 Flag enabling the automatic addition of new satellites on update. More...
 
bool autoRemoveEnabled
 Flag enabling the automatic removal of missing satellites on update.
 
bool updatesEnabled
 Flag enabling automatic Internet updates.
 
int updateFrequencyHours
 

Umbra/penumbra module

bool flagUmbraVisible
 Flag enabling visualization the Earth's umbra.
 
bool flagUmbraAtFixedAltitude
 Flag enabling visualization the Earth's umbra at a given altitude above a spherical Earth.
 
Vec3f umbraColor
 
bool flagPenumbraVisible
 Flag enabling visualization the Earth's penumbra.
 
Vec3f penumbraColor
 

Additional Inherited Members

- Protected Member Functions inherited from StelModule
class StelActionaddAction (const QString &id, const QString &groupId, const QString &text, QObject *target, const char *slot, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to slot) to the StelActionMgr object. More...
 
class StelActionaddAction (const QString &id, const QString &groupId, const QString &text, const char *slot, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to own slot) to the StelActionMgr object. More...
 
StelActionaddAction (const QString &id, const QString &groupId, const QString &text, QObject *contextObject, std::function< void()> lambda, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to Lambda functor) to the StelActionMgr object. More...
 

Member Enumeration Documentation

◆ UpdateState

Used for keeping track of the download/update status.

Enumerator
Updating 

Update in progress.

CompleteNoUpdates 

Update completed, there we no updates.

CompleteUpdates 

Update completed, there were updates.

DownloadError 

Error during download phase.

OtherError 

Other error.

Member Function Documentation

◆ add()

void Satellites::add ( const TleDataList &  newSatellites)

Add to the current collection the satellites described by the data list.

The changes are not saved to file. Calls add(TleData).

◆ configureGui()

bool Satellites::configureGui ( bool  show = true)
overridevirtual

Implement this to tell the main Stellarium GUI that there is a GUI element to configure this plugin.


Reimplemented from StelModule.

◆ customFilterChanged

void Satellites::customFilterChanged ( )
signal

Emitted when custom filters of the plugin have been changed.

Used to communicate with the configuration window.

◆ deinit()

void Satellites::deinit ( )
overridevirtual

Called before the module will be deleted, and before the OpenGL context is suppressed.

Deinitialize all OpenGL texture in this method.

Reimplemented from StelModule.

◆ displayMessage

void Satellites::displayMessage ( const QString &  message,
const QString  hexColor = "#999999" 
)
slot

Display a message on the screen for a few seconds.

This is used for plugin-specific warnings and such.

◆ draw()

void Satellites::draw ( StelCore core)
overridevirtual

Execute all the drawing functions for this module.

Parameters
corethe core to use for the drawing

Reimplemented from StelModule.

◆ getCallOrder()

double Satellites::getCallOrder ( StelModuleActionName  actionName) const
overridevirtual

Return the value defining the order of call for the given action For example if stars.callOrder[ActionDraw] == 10 and constellation.callOrder[ActionDraw] == 11, the stars module will be drawn before the constellations.

Parameters
actionNamethe name of the action for which we want the call order
Returns
the value defining the order. The closer to 0 the earlier the module's action will be called

Reimplemented from StelModule.

◆ getGroupIdList()

QStringList Satellites::getGroupIdList ( ) const

Get a sorted list of group names.

See groups for details. Use getGroups() if you don't need a list.

◆ getGroups()

QSet<QString> Satellites::getGroups ( ) const

Get the groups used in the currently loaded satellite collection.

See groups for details. Use getGroupIdList() if you need a list.

◆ getInvisibleSatelliteColor

Vec3f Satellites::getInvisibleSatelliteColor ( )
slot

Get color for invisible satellites.

Returns
color

◆ getLabelFontSize

int Satellites::getLabelFontSize ( )
inlineslot

get the label font size.

Returns
the pixel size of the font

◆ getPenumbraColor

Vec3f Satellites::getPenumbraColor ( )
inlineslot

Get color for ring of Earth's penumbra.

Returns
color

◆ getSatellites()

QHash<QString,QString> Satellites::getSatellites ( const QString &  group = QString(),
Status  vis = Both 
) const

get satellite objects filtered by group.

If an empty string is used for the group name, return all satallites

◆ getSatIdFromLine2()

static QString Satellites::getSatIdFromLine2 ( const QString &  line)
static

Insert a three line TLE into the hash array.

Parameters
[in]lineThe second line from the TLE

◆ getTleSources()

QStringList Satellites::getTleSources ( void  ) const
inline

Get a list of URLs which are sources of TLE data.

Returns
a list of URL strings, some with prefixes - see #updateUrls for details.

◆ getTransitSatelliteColor

Vec3f Satellites::getTransitSatelliteColor ( )
slot

Get color for satellites in transit through the Sun or the Moon (color of markers)

Returns
color

◆ getUmbraAltitude

double Satellites::getUmbraAltitude ( )
inlineslot

Get the fixed distance for center of visualized Earth's umbra.

Returns
distance, km

◆ getUmbraColor

Vec3f Satellites::getUmbraColor ( )
inlineslot

Get color for ring of Earth's umbra.

Returns
color

◆ getUpdatesEnabled

bool Satellites::getUpdatesEnabled ( void  )
inlineslot

get whether or not the plugin will try to update TLE data from the internet

Returns
true if updates are set to be done, false otherwise

◆ getUpdateState()

UpdateState Satellites::getUpdateState ( void  ) const
inline

get the update frequency in hours

Get the current updateState

◆ init()

void Satellites::init ( )
overridevirtual

Initialize itself.

If the initialization takes significant time, the progress should be displayed on the loading bar.

Implements StelModule.

◆ listAllObjects()

QStringList Satellites::listAllObjects ( bool  inEnglish) const
overridevirtual

List all StelObjects.

Parameters
inEnglishlist names in English (true) or translated (false)
Returns
a list of matching object name by order of relevance, or an empty list if nothing matches

Implements StelObjectModule.

◆ listMatchingObjects()

QStringList Satellites::listMatchingObjects ( const QString &  objPrefix,
int  maxNbItem = 5,
bool  useStartOfWords = false 
) const
overridevirtual

Find and return the list of at most maxNbItem objects auto-completing the passed object name.

Parameters
objPrefixthe case insensitive first letters of the searched object
maxNbItemthe maximum number of returned object names
useStartOfWordsthe autofill mode for returned objects names
Returns
a list of matching object name by order of relevance, or an empty list if nothing match

Reimplemented from StelObjectModule.

◆ loadExtraData()

void Satellites::loadExtraData ( )

Reads qs.mag and rcs files and its parsing for getting id, standard magnitude and RCS values for satellites.

Note
We are having permissions for use this file from Mike McCants.

◆ loadSettings()

void Satellites::loadSettings ( )

Read (or re-read) the plugin's settings from the configuration file.

This will be called from init() and also when restoring defaults (i.e. from the configuration dialog / restore defaults button).

◆ parseTleFile()

static void Satellites::parseTleFile ( QFile &  openFile,
TleDataHash &  tleList,
bool  addFlagValue = false,
const QString &  tleURL = "" 
)
static

Reads a TLE list from a file to the supplied hash.

If an entry with the same ID exists in the given hash, its contents are overwritten with the new values.

Parameters
openFilea reference to an open file.
[in,out]tleLista hash with satellite IDs as keys.
[in]addFlagValuevalue to be set to TleData::addThis for all.
[in]tleURLa URL of TLE's source (e.g. Celestrak URL)

◆ remove()

void Satellites::remove ( const QStringList &  idList)

Remove the selected satellites.

The changes are not saved to file.

◆ restoreDefaults()

void Satellites::restoreDefaults ( void  )

Set up the plugin with default values.

This means clearing out the Satellites section in the main config.ini (if one already exists), and populating it with default values. It also creates the default satellites.json file from the resource embedded in the plugin lib/dll file.

◆ searchAround()

QList<StelObjectP> Satellites::searchAround ( const Vec3d v,
double  limitFov,
const StelCore core 
) const
overridevirtual

Used to get a list of objects which are near to some position.

Parameters
va vector representing the position in th sky around which to search for satellites.
limitFovthe field of view around the position v in which to search for satellites.
corethe StelCore to use for computations.
Returns
a list containing the satellites located inside the limitFov circle around position v.

Implements StelObjectModule.

◆ searchByID()

StelObjectP Satellites::searchByID ( const QString &  id) const
overridevirtual

Return the matching satellite if exists or nullptr.

Parameters
idThe satellite id (NORAD)

Implements StelObjectModule.

◆ searchByInternationalDesignator()

StelObjectP Satellites::searchByInternationalDesignator ( const QString &  intlDesignator) const

Return the satellite with the given International Designator.

Used as a helper function by searchByName() and searchByNameI18n().

Parameters
intlDesignatorsearch string in the format "XXXX-XXXX".
Returns
a null pointer if no such satellite is found.

◆ searchByName()

StelObjectP Satellites::searchByName ( const QString &  name) const
overridevirtual

Return the matching satellite if exists or nullptr.

Parameters
nameThe case in-sensitive standard program name

Implements StelObjectModule.

◆ searchByNameI18n()

StelObjectP Satellites::searchByNameI18n ( const QString &  nameI18n) const
overridevirtual

Return the matching satellite object's pointer if exists or nullptr.

Parameters
nameI18nThe case in-sensitive satellite name

Implements StelObjectModule.

◆ searchByNoradNumber()

StelObjectP Satellites::searchByNoradNumber ( const QString &  noradNumber) const

Return the satellite with the given catalog number.

Used as a helper function by searchByName() and searchByNameI18n().

Parameters
noradNumbersearch string in the format "NORAD XXXX".
Returns
a null pointer if no such satellite is found.

◆ setFlagCFApogee

void Satellites::setFlagCFApogee ( bool  b)
slot

Set whether custom filter 'apogee' enabled.

Emits customFilterChanged()

◆ setFlagCFEccentricity

void Satellites::setFlagCFEccentricity ( bool  b)
slot

Set whether custom filter 'eccentricity' enabled.

Emits customFilterChanged()

◆ setFlagCFInclination

void Satellites::setFlagCFInclination ( bool  b)
slot

Set whether custom filter 'inclination' enabled.

Emits customFilterChanged()

◆ setFlagCFKnownStdMagnitude

void Satellites::setFlagCFKnownStdMagnitude ( bool  b)
slot

Set whether custom filter 'known standard magnitude' enabled.

Emits customFilterChanged()

◆ setFlagCFPerigee

void Satellites::setFlagCFPerigee ( bool  b)
slot

Set whether custom filter 'perigee' enabled.

Emits customFilterChanged()

◆ setFlagCFPeriod

void Satellites::setFlagCFPeriod ( bool  b)
slot

Set whether custom filter 'period' enabled.

Emits customFilterChanged()

◆ setFlagCFRCS

void Satellites::setFlagCFRCS ( bool  b)
slot

Set whether custom filter 'rcs' enabled.

Emits customFilterChanged()

◆ setFlagHintsVisible

void Satellites::setFlagHintsVisible ( bool  b)
slot

Set whether satellite position hints (icons or star-like dot) should be displayed.

Note that hint visibility also applies to satellite labels. Emits settingsChanged() if the value changes.

◆ setFlagLabelsVisible

void Satellites::setFlagLabelsVisible ( bool  b)
slot

Set whether text labels should be displayed next to satellite hints.

Emits settingsChanged() if the value changes.

◆ setFlagOrbitLines

void Satellites::setFlagOrbitLines ( bool  b)
slot

Choose whether or not to draw orbit lines.

Each satellite has its own setting as well, but this can be used to turn on/off all those satellites which elect to have orbit lines all in one go.

Parameters
b- true to turn on orbit lines, false to turn off

◆ setFlagPenumbraVisible

void Satellites::setFlagPenumbraVisible ( bool  b)
slot

Set whether ring of Earth's penumbra should be displayed.

Emits settingsChanged() if the value changes.

◆ setFlagUmbraAtFixedAltitude

void Satellites::setFlagUmbraAtFixedAltitude ( bool  b)
slot

Set whether ring of Earth's umbra should be displayed at given satellite altitude.

Emits settingsChanged() if the value changes.

◆ setFlagUmbraVisible

void Satellites::setFlagUmbraVisible ( bool  b)
slot

Set whether ring of Earth's umbra should be displayed.

Emits settingsChanged() if the value changes.

◆ setLabelFontSize

void Satellites::setLabelFontSize ( int  size)
slot

set the label font size.

Parameters
sizethe pixel size of the font Emits settingsChanged() if the value changes.

◆ setMaxCFApogee

void Satellites::setMaxCFApogee ( double  v)
slot

Set whether custom filter 'apogee' maximum value (in kilometers).

Emits customFilterChanged()

◆ setMaxCFEccentricity

void Satellites::setMaxCFEccentricity ( double  v)
slot

Set whether custom filter 'eccentricity' maximum value.

Emits customFilterChanged()

◆ setMaxCFInclination

void Satellites::setMaxCFInclination ( double  v)
slot

Set whether custom filter 'inclination' maximum value (in degrees).

Emits customFilterChanged()

◆ setMaxCFPerigee

void Satellites::setMaxCFPerigee ( double  v)
slot

Set whether custom filter 'perigee' maximum value (in kilometers).

Emits customFilterChanged()

◆ setMaxCFPeriod

void Satellites::setMaxCFPeriod ( double  v)
slot

Set whether custom filter 'period' maximum value (in minutes).

Emits customFilterChanged()

◆ setMaxCFRCS

void Satellites::setMaxCFRCS ( double  v)
slot

Set whether custom filter 'rcs' maximum value (in square meters).

Emits customFilterChanged()

◆ setMinCFApogee

void Satellites::setMinCFApogee ( double  v)
slot

Set whether custom filter 'apogee' minimum value (in kilometers).

Emits customFilterChanged()

◆ setMinCFEccentricity

void Satellites::setMinCFEccentricity ( double  v)
slot

Set whether custom filter 'eccentricity' minimum value.

Emits customFilterChanged()

◆ setMinCFInclination

void Satellites::setMinCFInclination ( double  v)
slot

Set whether custom filter 'inclination' minimum value (in degrees).

Emits customFilterChanged()

◆ setMinCFPerigee

void Satellites::setMinCFPerigee ( double  v)
slot

Set whether custom filter 'perigee' minimum value (in kilometers).

Emits customFilterChanged()

◆ setMinCFPeriod

void Satellites::setMinCFPeriod ( double  v)
slot

Set whether custom filter 'period' minimum value (in minutes).

Emits customFilterChanged()

◆ setMinCFRCS

void Satellites::setMinCFRCS ( double  v)
slot

Set whether custom filter 'rcs' minimum value (in square meters).

Emits customFilterChanged()

◆ settingsChanged

void Satellites::settingsChanged ( )
signal

Emitted when some of the plugin settings have been changed.

Used to communicate with the configuration window.

◆ setTleSources()

void Satellites::setTleSources ( QStringList  tleSources)

Set the list of URLs which are sources of TLE data.

In addition to replacing the current list of sources, it also saves them to the configuration file. Allows marking sources for auto-addition by adding a prefix to the URL string.

See also
updateUrls
Parameters
tleSourcesa list of valid URLs (http://, ftp://, file://), allowed prefixes are "0,", "1," or no prefix.

◆ setUpdateFrequencyHours

void Satellites::setUpdateFrequencyHours ( int  hours)
slot

Set the Internet update frequency.

Emits settingsChanged() if the value changes.

◆ setUpdatesEnabled

void Satellites::setUpdatesEnabled ( bool  enabled)
slot

Set whether the plugin will try to download updates from the Internet.

Emits settingsChanged() if the value changes.

Parameters
bif true, updates will be enabled, else they will be disabled.

◆ tleUpdateComplete

void Satellites::tleUpdateComplete ( int  updated,
int  total,
int  added,
int  missing 
)
signal

Emitted after an update has run.

Parameters
updatedthe number of updated satellites;
totalthe total number of satellites in the catalog;
addedthe number of newly added satellites;
missingthe number of satellites that were not found in the update source(s) (and were removed, if autoRemoveEnabled is set).

◆ update()

void Satellites::update ( double  deltaTime)
overridevirtual

Update the module with respect to the time.

Parameters
deltaTimethe time increment in second since last call.

Reimplemented from StelModule.

◆ updateFromFiles()

void Satellites::updateFromFiles ( QStringList  paths,
bool  deleteFiles = false 
)

Reads update file(s) in celestrak's .txt format, and updates the TLE elements for existing satellites from them.

Indirectly emits signals updateStateChanged() and tleUpdateComplete(), as it calls updateSatellites(). See updateFromOnlineSources() for the other kind of update operation.

Parameters
pathsa list of paths to update files
deleteFilesif set, the update files are deleted after they are used, else they are left alone

◆ updateFromOnlineSources

void Satellites::updateFromOnlineSources ( )
slot

Start an Internet update.

This method starts the process of an Internet update: it tries to download TLE lists from online resources and then use them to update the orbital data (and names, etc.) of the included satellites. This only initialized the download. The rest of the work is done by saveDownloadedUpdate() and updateSatellites(). Update sources are described in updateUrls (see for accessors details). If autoAddEnabled is true when this function is called, new satellites in the chosen update sources will be added during the update. If autoRemoveEnabled is true when this function is called, any existing satellite that can't be found in the downloaded update lists will be removed. See updateFromFiles() for the other type of update operation.

◆ updateSatellites()

void Satellites::updateSatellites ( TleDataHash &  newTleSets)

Updates the loaded satellite collection from the provided data.

Worker function called by updateFromFiles() and saveDownloadedUpdate(). (Respectively, user-initiated update from file(s) and user- or auto- initiated update from online source(s).) Emits updateStateChanged() and tleUpdateComplete().

Note
Instead of splitting this method off updateFromFiles() and passing the auto-add flag through data structures, another possibility was to modify updateFromFiles to use the same prefix trick (adding "1," to file paths). I decided against it because I thought it would be more complex. :) –BM
Parameters
[in,out]newTleSetsa hash with satellite IDs as keys; it's modified by the method!

◆ updateStateChanged

void Satellites::updateStateChanged ( Satellites::UpdateState  state)
signal

emitted when the update status changes, e.g.

when an update starts, completes and so on. Note that on completion of an update, tleUpdateComplete is also emitted with the number of updates done.

Parameters
statethe new update state.

Property Documentation

◆ autoAddEnabled

bool Satellites::autoAddEnabled
readwrite

Flag enabling the automatic addition of new satellites on update.

This will apply only for the selected update sources.