Defines the SBGATObsLightcurve class.
More...
#include <SBGATObsLightcurve.hpp>
|
| vtkTypeMacro (SBGATObsLightcurve, SBGATObs) |
|
void | PrintSelf (std::ostream &os, vtkIndent indent) override |
|
void | PrintHeader (std::ostream &os, vtkIndent indent) override |
|
void | PrintTrailer (std::ostream &os, vtkIndent indent) override |
|
void | CollectMeasurements (std::vector< std::array< double, 2 > > &measurements, const double &time, const int &N, const arma::vec &sun_dir, const arma::vec &observer_dir, const std::vector< arma::vec > &positions_vec, const std::vector< arma::vec > &velocities_vec, const std::vector< arma::vec > &mrps_vec, const std::vector< arma::vec > &omegas_vec, const bool &penalize_indicence) |
|
void | SaveLightCurveData (const std::vector< std::array< double, 2 > > &measurements, std::string savepath) |
|
| vtkTypeMacro (SBGATObs, vtkPolyDataAlgorithm) |
|
void | PrintSelf (std::ostream &os, vtkIndent indent) override |
|
void | PrintHeader (std::ostream &os, vtkIndent indent) override |
|
void | PrintTrailer (std::ostream &os, vtkIndent indent) override |
|
void | SetScaleMeters () |
|
void | SetScaleKiloMeters () |
|
int | get_number_of_bodies () const |
|
|
| SBGATObsLightcurve () |
|
| ~SBGATObsLightcurve () override |
|
void | reverse_ray_trace (std::array< double, 2 > &measurements_temp, const std::vector< std::vector< int > > &facets_in_view, const arma::vec &sun_dir, const arma::vec &observer_dir, const int N, const bool penalize_indicence, const std::vector< arma::mat > &BN_dcms_vec, const std::vector< arma::vec > &positions_vec) |
|
| SBGATObs () |
|
| ~SBGATObs () override |
|
int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override |
|
int | FillInputPortInformation (int port, vtkInformation *info) VTK_OVERRIDE |
|
void | prefind_facets_inview (std::vector< int > &facets_in_view, const unsigned int &body_index, const std::vector< arma::vec > &dir_to_check_vec, const std::vector< arma::mat > &BN_dcms_vec, const std::vector< arma::vec > &positions_vec) |
|
void | find_min_facet_surface_area () |
|
bool | check_line_for_intersect (const int &origin_body_index, const arma::vec &start_point_origin_body, const arma::vec &end_point_inertial, const std::vector< arma::mat > &BN_dcms_vec, const std::vector< arma::vec > &positions_vec, const double &tol) const |
|
Defines the SBGATObsLightcurve class.
- Author
- Benjamin Bercovici
-
Jay McMahon
- Date
- October 2018
Defines the SBGATObsLightcurve class, used to generate lightcurves over a single/binary asteroid system at a fixed phase angle
- Copyright
- MIT License, Benjamin Bercovici and Jay McMahon
Definition at line 45 of file SBGATObsLightcurve.hpp.
◆ SBGATObsLightcurve() [1/2]
SBGATObsLightcurve::SBGATObsLightcurve |
( |
| ) |
|
|
protected |
◆ ~SBGATObsLightcurve()
SBGATObsLightcurve::~SBGATObsLightcurve |
( |
| ) |
|
|
overrideprotected |
◆ SBGATObsLightcurve() [2/2]
◆ CollectMeasurements()
void SBGATObsLightcurve::CollectMeasurements |
( |
std::vector< std::array< double, 2 > > & |
measurements, |
|
|
const double & |
time, |
|
|
const int & |
N, |
|
|
const arma::vec & |
sun_dir, |
|
|
const arma::vec & |
observer_dir, |
|
|
const std::vector< arma::vec > & |
positions_vec, |
|
|
const std::vector< arma::vec > & |
velocities_vec, |
|
|
const std::vector< arma::vec > & |
mrps_vec, |
|
|
const std::vector< arma::vec > & |
omegas_vec, |
|
|
const bool & |
penalize_indicence |
|
) |
| |
Computes collected luminosity over the surface of the considered small bodies at the specified time after epoch. Exposure is instantaneous. The luminosity is computed as the number of sample points in view of both the sun and the observer at each time (the "hit count"), normalized by the largest hit count in the observation sequence. The positions of each body is specified. The attitude of each body is supposed to derive from a constant-spin rotation such that each of the dcms BN is equal to identity when dt == 0.
- Parameters
-
measurements | reference to a vector of std::arrays holding (times,luminosity) |
time | measurement time |
N | minimum number of measurements to produce over the smallest facet in the shape. The number of samples for any other facet will be equal to N * facet_surface_area / smallest_facet_surface_area |
sun_dir | unit direction towards sun from target in inertial frame |
observer_dir | unit direction towards observer from target in inertial frame |
positions_vec | vector of positions of each target's center-of-mass expressed in the primary's body frame |
velocities_vec | vector of inertial velocities of each target's center-of-mass expressed in the primary's body frame |
mrps_vec | vector of MRPs defining the inertial-to-body DCM [BN] |
omegas_vec | vector of angular velocities of each body expressed in the inertial frame |
penalize_incidence | if true, each measurement will be weighed by the cos(incidence) angle between the sampled point and the radar squared. If false, all measurements (in view of the radar and not blocked) are weighed equally have the same weight |
Definition at line 51 of file SBGATObsLightcurve.cpp.
◆ New()
◆ operator=()
◆ PrintHeader()
void SBGATObsLightcurve::PrintHeader |
( |
std::ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
|
override |
◆ PrintSelf()
void SBGATObsLightcurve::PrintSelf |
( |
std::ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
|
override |
◆ PrintTrailer()
void SBGATObsLightcurve::PrintTrailer |
( |
std::ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
|
override |
◆ reverse_ray_trace()
void SBGATObsLightcurve::reverse_ray_trace |
( |
std::array< double, 2 > & |
measurements_temp, |
|
|
const std::vector< std::vector< int > > & |
facets_in_view, |
|
|
const arma::vec & |
sun_dir, |
|
|
const arma::vec & |
observer_dir, |
|
|
const int |
N, |
|
|
const bool |
penalize_indicence, |
|
|
const std::vector< arma::mat > & |
BN_dcms_vec, |
|
|
const std::vector< arma::vec > & |
positions_vec |
|
) |
| |
|
protected |
Ray traces all of the facets in view to the sun/observer and increment measurement counter if in view
- Parameters
-
measurements_temp | reference to an std::array holding (times,luminosity) |
facets_in_view | reference to a vector of vector holding indices of (maybe) illuminated facets for all considered bodies |
sun_dir | sun direction expressed in inertial frame |
observer_dir | observer direction expressed in inertial frame |
BN_dcms_vec | vector holding the DCMs orienting the body frame of each body w/r to inertial |
positions_vec | vector holding the position vector of the CM of each body w/r to the primary |
Definition at line 161 of file SBGATObsLightcurve.cpp.
◆ SaveLightCurveData()
void SBGATObsLightcurve::SaveLightCurveData |
( |
const std::vector< std::array< double, 2 > > & |
measurements, |
|
|
std::string |
savepath |
|
) |
| |
Save the raw data points from the unnormalized (times,luminosity) time series to file
- Parameters
-
measurements | reference to a vector of std::arrays holding (times,luminosity) |
savepath | path to file where raw lightcurve data will be saved (ex: "output/lightcurve.txt") |
Definition at line 124 of file SBGATObsLightcurve.cpp.
◆ vtkTypeMacro()
The documentation for this class was generated from the following files: