GNSS satellite orbits provider based on gnsstk::NavLibrary with multi-format data source. More...
#include <nav_library_orbital_data_provider.h>
Public Member Functions | |
virtual void | addDataSource (const std::shared_ptr< NavLibraryDataSource > &source) |
Add data source. More... | |
std::unordered_set< std::string > | getConstellations () const override |
Get the constellations handled by this provider. More... | |
cras::expected< std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition >, std::string > | getECEFPositions (const ros::Time &time, const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteInfo > &satellites) override |
Compute ECEF positions of the satellites at the given time. More... | |
std::string | getName () const override |
Get human-readable name of the provider. More... | |
cras::expected< std::unordered_map< uint32_t, gnss_info_msgs::SatelliteSkyPosition >, std::string > | getSkyView (const geographic_msgs::GeoPoint &position, const std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition > &positions, double elevationMaskDeg) override |
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position. More... | |
std::pair< ros::Time, ros::Time > | getTimeRange () const override |
Get the time range in which this provider can provide information. More... | |
bool | isApproximate () const override |
Return whether this provider works with approximate orbit data. More... | |
bool | isPrecise () const override |
Return whether this provider works with precise orbit data. More... | |
bool | load (const ros::Time &startTime, const ros::Time &endTime, const cras::optional< bool > &precise) override |
Load data for the given time instant. More... | |
bool | load (const ros::Time &time, const cras::optional< bool > &precise) override |
Load data for the given time instant. More... | |
NavLibraryOrbitalDataProvider () | |
~NavLibraryOrbitalDataProvider () override | |
![]() | |
OrbitalDataProvider ()=default | |
Constructing the provider should be a cheap and fast operation, ideally without internet access. More... | |
virtual | ~OrbitalDataProvider ()=default |
Private Attributes | |
std::unique_ptr< NavLibraryOrbitalDataProviderPrivate > | data |
Private implementation data (PIMPL). More... | |
GNSS satellite orbits provider based on gnsstk::NavLibrary with multi-format data source.
Definition at line 26 of file nav_library_orbital_data_provider.h.
gnss_info::NavLibraryOrbitalDataProvider::NavLibraryOrbitalDataProvider | ( | ) |
Definition at line 51 of file nav_library_orbital_data_provider.cpp.
|
overridedefault |
|
virtual |
Add data source.
[in] | source | The data source to add. |
Definition at line 59 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Get the constellations handled by this provider.
Implements gnss_info::OrbitalDataProvider.
Definition at line 86 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
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. |
Implements gnss_info::OrbitalDataProvider.
Definition at line 123 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Get human-readable name of the provider.
Implements gnss_info::OrbitalDataProvider.
Definition at line 244 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
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). |
Implements gnss_info::OrbitalDataProvider.
Definition at line 204 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Get the time range in which this provider can provide information.
Implements gnss_info::OrbitalDataProvider.
Definition at line 81 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Return whether this provider works with approximate orbit data.
Implements gnss_info::OrbitalDataProvider.
Definition at line 238 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Return whether this provider works with precise orbit data.
Implements gnss_info::OrbitalDataProvider.
Definition at line 232 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Load data for the given time instant.
[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. |
Implements gnss_info::OrbitalDataProvider.
Definition at line 106 of file nav_library_orbital_data_provider.cpp.
|
overridevirtual |
Load data for the given time instant.
[in] | time | The time to load at. |
[in] | precise | If set, selects whether precise or approximate data should be loaded. |
Implements gnss_info::OrbitalDataProvider.
Definition at line 91 of file nav_library_orbital_data_provider.cpp.
|
private |
Private implementation data (PIMPL).
Definition at line 57 of file nav_library_orbital_data_provider.h.