Manager of multiple providers of satellite orbital data. More...
#include <orbital_data_manager.h>
Public Member Functions | |
void | addProvider (const std::shared_ptr< OrbitalDataProvider > &provider) |
Add the given provider to this manager and make its data available. More... | |
virtual gnss_info_msgs::DOP | computeDOP (const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteSkyPosition > &skyView) const |
Compute Dilution of Precision for the given sky view. More... | |
cras::expected< gnss_info_msgs::SatellitesPositions, std::string > | getPositions (const ros::Time &time, const gnss_info_msgs::SatellitesList &satellites) |
Compute ECEF positions of the satellites at the given time. More... | |
virtual cras::expected< gnss_info_msgs::SatellitesPositions, std::string > | getPositions (const ros::Time &time, const gnss_info_msgs::SatellitesList &satellites, const cras::optional< bool > &precise) |
Compute ECEF positions of the satellites at the given time. More... | |
cras::expected< gnss_info_msgs::SkyView, std::string > | getSkyView (const geographic_msgs::GeoPoint &position, const gnss_info_msgs::SatellitesPositions &positions, double elevationMaskDeg) |
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position. More... | |
virtual cras::expected< gnss_info_msgs::SkyView, std::string > | getSkyView (const geographic_msgs::GeoPoint &position, const gnss_info_msgs::SatellitesPositions &positions, double elevationMaskDeg, const cras::optional< bool > &precise) |
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position. More... | |
bool | load (const ros::Time &startTime, const ros::Time &endTime) |
Load (and possibly download) data for the given time interval. More... | |
virtual bool | load (const ros::Time &startTime, const ros::Time &endTime, const cras::optional< bool > &precise) |
Load (and possibly download) data for the given time interval. More... | |
bool | load (const ros::Time &time) |
Load (and possibly download) data for the given time instant. More... | |
virtual bool | load (const ros::Time &time, const cras::optional< bool > &precise) |
Load (and possibly download) data for the given time instant. More... | |
OrbitalDataManager () | |
virtual | ~OrbitalDataManager () |
Protected Attributes | |
std::unique_ptr< OrbitalDataManagerPrivate > | data |
Private implementation details (PIMPL). More... | |
Manager of multiple providers of satellite orbital data.
Definition at line 27 of file orbital_data_manager.h.
gnss_info::OrbitalDataManager::OrbitalDataManager | ( | ) |
Definition at line 62 of file orbital_data_manager.cpp.
|
virtualdefault |
void gnss_info::OrbitalDataManager::addProvider | ( | const std::shared_ptr< OrbitalDataProvider > & | provider | ) |
Add the given provider to this manager and make its data available.
[in] | provider | The provider to add. |
Definition at line 226 of file orbital_data_manager.cpp.
|
virtual |
Compute Dilution of Precision for the given sky view.
[in] | skyView | The sky view to compute DOP for. |
Definition at line 189 of file orbital_data_manager.cpp.
cras::expected< gnss_info_msgs::SatellitesPositions, std::string > gnss_info::OrbitalDataManager::getPositions | ( | const ros::Time & | time, |
const gnss_info_msgs::SatellitesList & | satellites | ||
) |
Compute ECEF positions of the satellites at the given time.
[in] | time | The time to get positions for. |
[in] | satellites | The satellites to get positions for. |
Definition at line 102 of file orbital_data_manager.cpp.
|
virtual |
Compute ECEF positions of the satellites at the given time.
[in] | time | The time to get positions for. |
[in] | satellites | The satellites to get positions for. |
[in] | precise | If set, selects whether precise or approximate positions should be computed. |
Definition at line 108 of file orbital_data_manager.cpp.
cras::expected< gnss_info_msgs::SkyView, std::string > gnss_info::OrbitalDataManager::getSkyView | ( | const geographic_msgs::GeoPoint & | position, |
const gnss_info_msgs::SatellitesPositions & | positions, | ||
double | elevationMaskDeg | ||
) |
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position.
[in] | position | Geographic position of the receiver. |
[in] | positions | ECEF positions of the satellites. |
[in] | elevationMaskDeg | Minimum elevation of satellites to return (in degrees). |
Definition at line 144 of file orbital_data_manager.cpp.
|
virtual |
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position.
[in] | position | Geographic position of the receiver. |
[in] | positions | ECEF positions of the satellites. |
[in] | elevationMaskDeg | Minimum elevation of satellites to return (in degrees). |
[in] | precise | If set, selects whether precise or approximate positions should be computed. |
Definition at line 151 of file orbital_data_manager.cpp.
Load (and possibly download) data for the given time interval.
[in] | startTime | Earliest time to load. |
[in] | endTime | Latest time to load. |
Definition at line 84 of file orbital_data_manager.cpp.
|
virtual |
Load (and possibly download) data for the given time interval.
[in] | startTime | Earliest time to load. |
[in] | endTime | Latest time to load. |
[in] | precise | If set, selects whether precise or approximate data should be loaded. |
Definition at line 89 of file orbital_data_manager.cpp.
Load (and possibly download) data for the given time instant.
[in] | time | The time instant to load for. |
Definition at line 68 of file orbital_data_manager.cpp.
|
virtual |
Load (and possibly download) data for the given time instant.
[in] | time | The time instant to load for. |
[in] | precise | If set, selects whether precise or approximate data should be loaded. |
Definition at line 73 of file orbital_data_manager.cpp.
|
protected |
Private implementation details (PIMPL).
Definition at line 122 of file orbital_data_manager.h.