radar-coord-conversion-utility  0.8
RadarSegment_util Class Reference

Class to calculate radar point coordinates along a defined segment relative to radar site. More...

#include <radarcoordlib/RadarSegment_util.hpp>

Public Member Functions

bool addSegmentPoint (int index, RadarPoint_util point)
 Add a segment point in the position passed. More...
 
void addSegmentPoint (RadarPoint_util point)
 Add a segment point at the end of the vector. 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_utilgetSegment ()
 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_utilSegmentPoint
 
float segmentStep
 
RotationVersus segmentVersus
 
SegmentFillingMethod stepType
 

Detailed Description

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:

  • Geographic (Latitude, Longitude,height)
  • Aeqd projection centred on the radar site (Xcoord, Ycoord, height) in meter
  • Geodetic coordinate (Azimuth, distance over Earth surface, height) (Degree, meter)
  • Radar (Azimuth, Elevation, slatwise distance along the range) (Degree, degree, meter)

This class implement segment defined as a couple of obj defined by RadarPoint_util

See also
RadarPoint_util::

Constructor & Destructor Documentation

◆ RadarSegment_util() [1/2]

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() [2/2]

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.

Parameters
[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

Member Function Documentation

◆ addSegmentPoint() [1/2]

bool RadarSegment_util::addSegmentPoint ( int  index,
RadarPoint_util  point 
)

Add a segment point in the position passed.

Parameters
[in]indexposition of point to be added in the vector
[in]pointPoint object to be added
Returns
true is index lesser than vector size

◆ addSegmentPoint() [2/2]

void RadarSegment_util::addSegmentPoint ( RadarPoint_util  point)

Add a segment point at the end of the vector.

Parameters
[in]pointPoint object to be added

◆ CalculateSegment()

void RadarSegment_util::CalculateSegment ( )

Calculate segment point.

◆ CalculateSegmentAzimuthStep()

void RadarSegment_util::CalculateSegmentAzimuthStep ( )
private

Calculate segment point for AzimuthStep method.

◆ CalculateSegmentLineStep()

void RadarSegment_util::CalculateSegmentLineStep ( )
private

Calculate segment point for LineStep method.

◆ CalculateSegmentNumPoint()

void RadarSegment_util::CalculateSegmentNumPoint ( )
private

Calculate segment point for NumPoint method.

◆ clearSegment()

void RadarSegment_util::clearSegment ( )

Clear segment Object, remove extremes, points and any other information

◆ clearSegmentPoints()

void RadarSegment_util::clearSegmentPoints ( )

Clear segment Points and segment filling method information
Note that this method maintain the information related to segment extremes.

◆ distanceAlongSegment()

float RadarSegment_util::distanceAlongSegment ( int  i)

Calculate distance along the segment from segment starting point.

Parameters
[in]i- index of segment point
Returns
distance (m)

◆ getSegment()

vector< RadarPoint_util > RadarSegment_util::getSegment ( )

Get segment.

Returns
segment Vector of RadarPoint_util objects for the segment

◆ getSegmentAzimuth()

float RadarSegment_util::getSegmentAzimuth ( )

Return the segment direction - Azimuth.

Returns
segmentAzimuth

◆ getSegmentAzimuthStep()

float RadarSegment_util::getSegmentAzimuthStep ( )

Return segment Azimuth step.

Returns
AzimuthStep Azimuthal distance between two point along the segment

◆ getSegmentLength()

float RadarSegment_util::getSegmentLength ( )

Return the segment lenght.

Returns
segmentLength

◆ getSegmentLineStep()

float RadarSegment_util::getSegmentLineStep ( )

Return segment interval

Returns
segmentStep Interval distance along the segment

◆ getSegmentNumPoint()

int RadarSegment_util::getSegmentNumPoint ( )

Return the number of segment points.

Returns
numPoint Number of segment points

◆ getSegmentPoint()

RadarPoint_util RadarSegment_util::getSegmentPoint ( int  index)

Get segment point.

Parameters
[in]indexindex of the vector element.
Returns
segment point. RadarPoint_util object

◆ getSegmentType()

SegmentFillingMethod RadarSegment_util::getSegmentType ( )

Get the segment filling method utilized.

Returns
method user (SegmentFillingMethod)

◆ getSegmentVersus()

RotationVersus RadarSegment_util::getSegmentVersus ( )

return the segment versus return segmentVersus attribute

◆ isRHI()

bool RadarSegment_util::isRHI ( )

Check if segment is an RHI.

Returns
true 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

◆ isSegmentLengthValid()

bool RadarSegment_util::isSegmentLengthValid ( )

check if SegmentLength is valid

Returns
true if Segment Length is greater than 1 meter.

◆ printSegmentInfo()

void RadarSegment_util::printSegmentInfo ( std::ostream &  out = std::cout)

Segment information on a output stream.

Parameters
[in]out- an output stream - optional

◆ SetGeodesicLine()

void RadarSegment_util::SetGeodesicLine ( )
private

set of GeodesicLine

◆ setRadarCoord()

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.

Parameters
[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

◆ setSegmentAeqd()

bool RadarSegment_util::setSegmentAeqd ( float  x_begin,
float  y_begin,
float  x_end,
float  y_end 
)

Set segment extremes in gnomonic coordinate.

Parameters
[in]x_beginX of the first point of the segment (meter)
[in]y_beginY of the first point of the segment (meter)
[in]x_endX of the last point of the segment (meter)
[in]y_endY of the last point of the segment (meter)
Returns
true if segment set

NOTE - This method set the initial height of points to 0 meter (asl) and compute all coordinates

See also
RadarPoint_util::setPointAeqdCoordsHeight
RadarPoint_util::fillCoords

◆ setSegmentAzimuthStep()

void RadarSegment_util::setSegmentAzimuthStep ( float  value)
private

Define segment Azimuth step.

Parameters
[in]valueAzimuthal distance between two point along the segment (degree)

◆ setSegmentElevation()

void RadarSegment_util::setSegmentElevation ( float  elev)

Set segment Elevation.

Parameters
[in]elevElevation 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.

◆ setSegmentGeo()

bool RadarSegment_util::setSegmentGeo ( float  lat_begin,
float  lon_begin,
float  lat_end,
float  lon_end 
)

Set segment extremes in geographic coordinate.

Parameters
[in]lat_beginLatitude of the first point of the segment (Degree N)
[in]lon_beginLongitude of the first point of the segment (Degree E)
[in]lat_endLatitude of the last point of the segment (Degree N)
[in]lon_endLongitude of the last point of the segment (Degree E)
Returns
true if segment set

NOTE - This method set the initial height of points to 0 meter (asl) and compute all coordinates

See also
RadarPoint_util::setPointGeoCoordsHeight
RadarPoint_util::fillCoords

◆ setSegmentGeodesic()

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.

Parameters
[in]az_beginAzimuth X of the first point of the segment (Degree from N in clockwise direction)
[in]surfDist_beginSurface Distance of the first point of the segment (meter)
[in]az_endAzimuth of the last point of the segment (Degree from N in clockwise direction)
[in]surfDist_endSurface Distance of the last point of the segment (meter)
Returns
true if segment set

NOTE - This method set the initial height of points to 0 meter (asl) and compute all coordinates

See also
RadarPoint_util::setPointGeodesicCoordinateHeight
RadarPoint_util::fillCoords

◆ setSegmentHeight()

void RadarSegment_util::setSegmentHeight ( float  height)

Set segment Height.

Parameters
[in]heightHeight 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.

◆ setSegmentLength()

void RadarSegment_util::setSegmentLength ( float  value)
private

Define Segment lenght.

Parameters
[in]value- Lenght of the segment (meter)

◆ setSegmentLineStep()

void RadarSegment_util::setSegmentLineStep ( float  value)
private

Define segment Line step.

Parameters
[in]valueInterval distance along the segment (meter)

◆ setSegmentNumPoint()

void RadarSegment_util::setSegmentNumPoint ( int  value)
private

Define segment numpoint.

Parameters
[in]valueNumber of segment points

◆ setSegmentStep()

void RadarSegment_util::setSegmentStep ( SegmentFillingMethod  type,
float  value 
)

Define segment subdivision.

Parameters
[in]typedefine subdivison type
NPOINT - Number of point
LINESTEP - Interval distance along the segment
AZIMUTHSTEP - Azimuthal distance between two point along the segment
[in]valueValue to be set

◆ setSegmentType()

void RadarSegment_util::setSegmentType ( SegmentFillingMethod  type)

Set segment filling method.

Parameters
[in]typedefine subdivison type
NPOINT - Number of point
LINESTEP - Interval distance along the segment
AZIMUTHSTEP - Azimuthal distance between two point along the segment

◆ setSegmentVersus()

bool RadarSegment_util::setSegmentVersus ( )
private

Calculate and set segment versus return true if calculation is possible (starting and ending points defined)

Member Data Documentation

◆ AzimuthStep

float RadarSegment_util::AzimuthStep
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

◆ beginSegment

RadarPoint_util RadarSegment_util::beginSegment
private

First point of the of segment

◆ endSegment

RadarPoint_util RadarSegment_util::endSegment
private

Last point of the of segment

◆ numPoint

int RadarSegment_util::numPoint
private

Number of points along the segment

◆ segmentLength

float RadarSegment_util::segmentLength
private

Lenght of the segment

◆ SegmentLine

GeographicLib::GeodesicLine RadarSegment_util::SegmentLine
private

Geodesic Line between Segment extremes (from beginSegment to endSegment)

◆ SegmentPoint

vector<RadarPoint_util> RadarSegment_util::SegmentPoint
private

Vettore contente i punti del segmento. Ogni punto รจ definito come oggetto di tipo RadarPoint_util

◆ segmentStep

float RadarSegment_util::segmentStep
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

◆ segmentVersus

RotationVersus RadarSegment_util::segmentVersus
private

Segment versus (CW-CCW)

◆ stepType

SegmentFillingMethod RadarSegment_util::stepType
private

Definition of how segment points are defined


The documentation for this class was generated from the following files: