radar-coord-conversion-utility
0.7
|
Class to calculate radar point coordinates along a defined segment relative to radar site. More...
#include <radarcoordlib/RadarSegment_util.hpp>
Public Member Functions | |
void | addSegmentPoint (RadarPoint_util point) |
Add a segment point at the end of the vector. More... | |
bool | addSegmentPoint (int index, RadarPoint_util point) |
Add a segment point in the position passed. More... | |
void | CalculateSegment () |
Calculate segment point. More... | |
void | clearSegment () |
void | clearSegmentPoints () |
float | distanceAlongSegment (int i) |
Calculate distance along the segment from segment starting point. More... | |
vector< RadarPoint_util > | getSegment () |
Get segment. More... | |
float | getSegmentAzimuth () |
Return the segment direction - Azimuth. More... | |
float | getSegmentAzimuthStep () |
Return segment Azimuth step. More... | |
float | getSegmentLength () |
Return the segment lenght. More... | |
float | getSegmentLineStep () |
Return segment interval. More... | |
int | getSegmentNumPoint () |
Return the number of segment points. More... | |
RadarPoint_util | getSegmentPoint (int index) |
Get segment point. More... | |
SegmentFillingMethod | getSegmentType () |
Get the segment filling method utilized. More... | |
RotationVersus | getSegmentVersus () |
return the segment versus return segmentVersus attribute More... | |
bool | isRHI () |
Check if segment is an RHI. More... | |
bool | isSegmentLengthValid () |
check if SegmentLength is valid More... | |
void | printSegmentInfo (std::ostream &out=std::cout) |
Segment information on a output stream. More... | |
RadarSegment_util () | |
Constructor. More... | |
RadarSegment_util (float latr, float lonr, float heightr, float aTH) | |
Constructor with radar coordinates passed First and last points of the segment are set to missing value. More... | |
void | setRadarCoord (float latr, float lonr, float heightr, float aTH) |
Set radar coordinates for the segment, clear any other informations First and last points of the segment are set to missing value. More... | |
bool | setSegmentAeqd (float x_begin, float y_begin, float x_end, float y_end) |
Set segment extremes in gnomonic coordinate. More... | |
void | setSegmentElevation (float elev) |
Set segment Elevation. More... | |
bool | setSegmentGeo (float lat_begin, float lon_begin, float lat_end, float lon_end) |
Set segment extremes in geographic coordinate. More... | |
bool | setSegmentGeodesic (float az_begin, float surfDist_begin, float az_end, float surfDist_end) |
Set segment extremes in geodesic coordinate relative to radar site. More... | |
void | setSegmentHeight (float height) |
Set segment Height. More... | |
void | setSegmentStep (SegmentFillingMethod type, float value) |
Define segment subdivision. More... | |
void | setSegmentType (SegmentFillingMethod type) |
Set segment filling method. More... | |
Private Member Functions | |
void | CalculateSegmentAzimuthStep () |
Calculate segment point for AzimuthStep method. More... | |
void | CalculateSegmentLineStep () |
Calculate segment point for LineStep method. More... | |
void | CalculateSegmentNumPoint () |
Calculate segment point for NumPoint method. More... | |
void | SetGeodesicLine () |
set of GeodesicLine More... | |
void | setSegmentAzimuthStep (float value) |
Define segment Azimuth step. More... | |
void | setSegmentLength (float value) |
Define Segment lenght. More... | |
void | setSegmentLineStep (float value) |
Define segment Line step. More... | |
void | setSegmentNumPoint (int value) |
Define segment numpoint. More... | |
bool | setSegmentVersus () |
Calculate and set segment versus return true if calculation is possible (starting and ending points defined) More... | |
Private Attributes | |
float | AzimuthStep |
RadarPoint_util | beginSegment |
RadarPoint_util | endSegment |
int | numPoint |
float | segmentLength |
GeographicLib::GeodesicLine | SegmentLine |
vector< RadarPoint_util > | SegmentPoint |
float | segmentStep |
RotationVersus | segmentVersus |
SegmentFillingMethod | stepType |
Class to calculate radar point coordinates along a defined segment relative to radar site.
This class compute (back and for) Earth coordinate calculations and radar coordinate of points alongs segment
relative to a defined radar site.
The point coordinate could be passed as one of the following options:
This class implement segment defined as a couple of obj defined by RadarPoint_util
RadarSegment_util::RadarSegment_util | ( | ) |
Constructor.
Inizialize radar site coordinates at
Lat : 0. N - Lon : 0. E - Height : 0. m - Antennatower height : 0. m
First and last points of the segment are set to missing value
RadarSegment_util::RadarSegment_util | ( | float | latr, |
float | lonr, | ||
float | heightr, | ||
float | aTH | ||
) |
Constructor with radar coordinates passed First and last points of the segment are set to missing value.
[in] | latr | - Radar site Latitude |
[in] | lonr | - Radar site Longitude |
[in] | heightr | - Height above the msl of radar site (antenna tower not included) |
[in] | aTH | - Height of the electric antenna focus related above the surface |
void RadarSegment_util::addSegmentPoint | ( | RadarPoint_util | point | ) |
Add a segment point at the end of the vector.
[in] | point | Point object to be added |
bool RadarSegment_util::addSegmentPoint | ( | int | index, |
RadarPoint_util | point | ||
) |
Add a segment point in the position passed.
[in] | index | position of point to be added in the vector |
[in] | point | Point object to be added |
void RadarSegment_util::CalculateSegment | ( | ) |
Calculate segment point.
|
private |
Calculate segment point for AzimuthStep method.
|
private |
Calculate segment point for LineStep method.
|
private |
Calculate segment point for NumPoint method.
void RadarSegment_util::clearSegment | ( | ) |
Clear segment Object, remove extremes, points and any other information
void RadarSegment_util::clearSegmentPoints | ( | ) |
Clear segment Points and segment filling method information
Note that this method maintain the information related to segment extremes.
float RadarSegment_util::distanceAlongSegment | ( | int | i | ) |
Calculate distance along the segment from segment starting point.
[in] | i | - index of segment point |
vector< RadarPoint_util > RadarSegment_util::getSegment | ( | ) |
Get segment.
float RadarSegment_util::getSegmentAzimuth | ( | ) |
Return the segment direction - Azimuth.
float RadarSegment_util::getSegmentAzimuthStep | ( | ) |
Return segment Azimuth step.
float RadarSegment_util::getSegmentLength | ( | ) |
Return the segment lenght.
float RadarSegment_util::getSegmentLineStep | ( | ) |
Return segment interval.
int RadarSegment_util::getSegmentNumPoint | ( | ) |
Return the number of segment points.
RadarPoint_util RadarSegment_util::getSegmentPoint | ( | int | index | ) |
Get segment point.
[in] | index | index of the vector element. |
SegmentFillingMethod RadarSegment_util::getSegmentType | ( | ) |
Get the segment filling method utilized.
RotationVersus RadarSegment_util::getSegmentVersus | ( | ) |
return the segment versus return segmentVersus attribute
bool RadarSegment_util::isRHI | ( | ) |
Check if segment is an RHI.
NOTE:
An RHI is defined if the starting point or the ending point of the segment
is at a distance from the radat site less than 1 meter
bool RadarSegment_util::isSegmentLengthValid | ( | ) |
check if SegmentLength is valid
void RadarSegment_util::printSegmentInfo | ( | std::ostream & | out = std::cout | ) |
Segment information on a output stream.
[in] | out | - an output stream - optional |
|
private |
set of GeodesicLine
void RadarSegment_util::setRadarCoord | ( | float | latr, |
float | lonr, | ||
float | heightr, | ||
float | aTH | ||
) |
Set radar coordinates for the segment, clear any other informations First and last points of the segment are set to missing value.
[in] | latr | - Radar site Latitude |
[in] | lonr | - Radar site Longitude |
[in] | heightr | - Height above the msl of radar site (antenna tower not included) |
[in] | aTH | - Height of the electric antenna focus related above the surface |
bool RadarSegment_util::setSegmentAeqd | ( | float | x_begin, |
float | y_begin, | ||
float | x_end, | ||
float | y_end | ||
) |
Set segment extremes in gnomonic coordinate.
[in] | x_begin | X of the first point of the segment (meter) |
[in] | y_begin | Y of the first point of the segment (meter) |
[in] | x_end | X of the last point of the segment (meter) |
[in] | y_end | Y of the last point of the segment (meter) |
NOTE - This method set the initial height of points to 0 meter (asl) and compute all coordinates
|
private |
Define segment Azimuth step.
[in] | value | Azimuthal distance between two point along the segment (degree) |
void RadarSegment_util::setSegmentElevation | ( | float | elev | ) |
Set segment Elevation.
[in] | elev | Elevation value (Degree) |
This operation is executed for each point defined in the segment, not on beginSegment and endSegment attributes
Vertical coords are syncronized according to the elevation value passed
Radar coordinates are computed accordingly to the elevation value set.
bool RadarSegment_util::setSegmentGeo | ( | float | lat_begin, |
float | lon_begin, | ||
float | lat_end, | ||
float | lon_end | ||
) |
Set segment extremes in geographic coordinate.
[in] | lat_begin | Latitude of the first point of the segment (Degree N) |
[in] | lon_begin | Longitude of the first point of the segment (Degree E) |
[in] | lat_end | Latitude of the last point of the segment (Degree N) |
[in] | lon_end | Longitude of the last point of the segment (Degree E) |
NOTE - This method set the initial height of points to 0 meter (asl) and compute all coordinates
bool RadarSegment_util::setSegmentGeodesic | ( | float | az_begin, |
float | surfDist_begin, | ||
float | az_end, | ||
float | surfDist_end | ||
) |
Set segment extremes in geodesic coordinate relative to radar site.
[in] | az_begin | Azimuth X of the first point of the segment (Degree from N in clockwise direction) |
[in] | surfDist_begin | Surface Distance of the first point of the segment (meter) |
[in] | az_end | Azimuth of the last point of the segment (Degree from N in clockwise direction) |
[in] | surfDist_end | Surface Distance of the last point of the segment (meter) |
NOTE - This method set the initial height of points to 0 meter (asl) and compute all coordinates
void RadarSegment_util::setSegmentHeight | ( | float | height | ) |
Set segment Height.
[in] | height | Height above the sea level (meter) |
This operation is executed for each point defined in the segment, not on beginSegment and endSegment attributes
Vertical coords are syncronized according to the height value passed
Radar coordinates are computed accordingly to the height value set.
|
private |
Define Segment lenght.
[in] | value | - Lenght of the segment (meter) |
|
private |
Define segment Line step.
[in] | value | Interval distance along the segment (meter) |
|
private |
Define segment numpoint.
[in] | value | Number of segment points |
void RadarSegment_util::setSegmentStep | ( | SegmentFillingMethod | type, |
float | value | ||
) |
Define segment subdivision.
[in] | type | define subdivison type NPOINT - Number of point LINESTEP - Interval distance along the segment AZIMUTHSTEP - Azimuthal distance between two point along the segment |
[in] | value | Value to be set |
void RadarSegment_util::setSegmentType | ( | SegmentFillingMethod | type | ) |
Set segment filling method.
[in] | type | define subdivison type NPOINT - Number of point LINESTEP - Interval distance along the segment AZIMUTHSTEP - Azimuthal distance between two point along the segment |
|
private |
Calculate and set segment versus return true if calculation is possible (starting and ending points defined)
|
private |
Azimuth distance between adiacent points along the segment
Note that if the points along the segment are defined at regular interval distance this quantity is not regular
|
private |
First point of the of segment
|
private |
Last point of the of segment
|
private |
Number of points along the segment
|
private |
Lenght of the segment
|
private |
Geodesic Line between Segment extremes (from beginSegment to endSegment)
|
private |
Vettore contente i punti del segmento. Ogni punto รจ definito come oggetto di tipo RadarPoint_util
|
private |
Size of interval between adiacent points along the segment
Note that if the points along the segment are defined at regular azimth distance this quantity is not regular
|
private |
Segment versus (CW-CCW)
|
private |
Definition of how segment points are defined