VieSched++
VieVS VLBI Scheduling Software
VieVS::SkyCoverage Class Reference

representation of the VLBI sky coverage object More...

#include <SkyCoverage.h>

Inheritance diagram for VieVS::SkyCoverage:
Collaboration diagram for VieVS::SkyCoverage:

Public Types

enum  Interpolation { Interpolation::constant, Interpolation::linear, Interpolation::cosine }
 sky coverage functions More...
 

Public Member Functions

 SkyCoverage ()
 constructor More...
 
double calcScore (const PointingVector &pv) const
 calc score per station More...
 
double scorePerPointingVector (const PointingVector &pv_new, const PointingVector &pv_old) const noexcept
 calculates the influence of the score between two pointing vectors More...
 
void clearObservations ()
 clear all observations More...
 
void update (const PointingVector &pv) noexcept
 updates the pointing vectors More...
 
const std::vector< PointingVector > & getPointingVectors () const noexcept
 get all pointing vectors More...
 
void calculateSkyCoverageScores ()
 calculate sky coverage scores More...
 
double getSkyCoverageScore_a13m30 () const
 get total sky coverage score More...
 
double getSkyCoverageScore_a25m30 () const
 get total sky coverage score More...
 
double getSkyCoverageScore_a37m30 () const
 get total sky coverage score More...
 
double getSkyCoverageScore_a13m60 () const
 get total sky coverage score More...
 
double getSkyCoverageScore_a25m60 () const
 get total sky coverage score More...
 
double getSkyCoverageScore_a37m60 () const
 get total sky coverage score More...
 
- Public Member Functions inherited from VieVS::VieVS_Object
 VieVS_Object (unsigned long id)
 constructor More...
 
const unsigned long getId () const
 get object id More...
 
bool hasValidId () const
 check if id is valid More...
 
bool hasId (unsigned long id) const
 check if object has specific id More...
 
void setId (unsigned long id)
 set object id More...
 
std::string printId () const
 object id string More...
 

Static Public Attributes

static thread_local double maxInfluenceTime = 3600
 maximum angular distance of influence on the sky coverage More...
 
static thread_local double maxInfluenceDistance = 30 * deg2rad
 maximum time influence on the sky coverage More...
 
static thread_local Interpolation interpolationDistance = Interpolation::linear
 function for distance More...
 
static thread_local Interpolation interpolationTime = Interpolation::linear
 function for time More...
 

Private Member Functions

double skyCoverageScore_13 (unsigned int deltaTime) const
 calculate total sky coverage score of all observations over schedule session More...
 
double skyCoverageScore_25 (unsigned int deltaTime) const
 calculate total sky coverage score of all observations over schedule session More...
 
double skyCoverageScore_37 (unsigned int deltaTime) const
 calculate total sky coverage score of all observations over schedule session More...
 

Static Private Member Functions

static int areaIndex13_v1 (const PointingVector &pv) noexcept
 area index of observation More...
 
static int areaIndex13_v2 (const PointingVector &pv) noexcept
 area index of observation More...
 
static int areaIndex25_v1 (const PointingVector &pv) noexcept
 area index of observation More...
 
static int areaIndex25_v2 (const PointingVector &pv) noexcept
 area index of observation More...
 
static int areaIndex37_v1 (const PointingVector &pv) noexcept
 area index of observation More...
 
static int areaIndex37_v2 (const PointingVector &pv) noexcept
 area index of observation More...
 

Private Attributes

std::vector< PointingVectorpointingVectors_
 all pointing vectors More...
 
double a13m30_ { 0 }
 sky coverage score with 13 areas over 30 minutes More...
 
double a25m30_ { 0 }
 sky coverage score with 25 areas over 30 minutes More...
 
double a37m30_ { 0 }
 sky coverage score with 37 areas over 30 minutes More...
 
double a13m60_ { 0 }
 sky coverage score with 13 areas over 60 minutes More...
 
double a25m60_ { 0 }
 sky coverage score with 25 areas over 60 minutes More...
 
double a37m60_ { 0 }
 sky coverage score with 37 areas over 60 minutes More...
 

Static Private Attributes

static unsigned long nextId = 0
 next id for this object type More...
 

Detailed Description

representation of the VLBI sky coverage object

Author
Matthias Schartner
Date
29.06.2017

Member Enumeration Documentation

sky coverage functions

Author
Matthias Schartner
Enumerator
constant 

constant function

linear 

linear function

cosine 

cosine function

Constructor & Destructor Documentation

SkyCoverage::SkyCoverage ( )

constructor

Author
Matthias Schartner

Member Function Documentation

int SkyCoverage::areaIndex13_v1 ( const PointingVector pv)
staticprivatenoexcept

area index of observation

Author
Matthias Schartner

Sky is distributed in 13 areas. An index is given to each area. This function returns the index of the area where the observation is located.

Parameters
pvpointing vector containing azimuth and elevation
Returns
area index

Here is the call graph for this function:

Here is the caller graph for this function:

int SkyCoverage::areaIndex13_v2 ( const PointingVector pv)
staticprivatenoexcept

area index of observation

Author
Matthias Schartner

Sky is distributed in 13 areas. An index is given to each area. This function returns the index of the area where the observation is located.

Parameters
pvpointing vector containing azimuth and elevation
Returns
area index

Here is the call graph for this function:

Here is the caller graph for this function:

int SkyCoverage::areaIndex25_v1 ( const PointingVector pv)
staticprivatenoexcept

area index of observation

Author
Matthias Schartner

Sky is distributed in 25 areas. An index is given to each area. This function returns the index of the area where the observation is located.

Parameters
pvpointing vector containing azimuth and elevation
Returns
area index

Here is the call graph for this function:

Here is the caller graph for this function:

int SkyCoverage::areaIndex25_v2 ( const PointingVector pv)
staticprivatenoexcept

area index of observation

Author
Matthias Schartner

Sky is distributed in 25 areas. An index is given to each area. This function returns the index of the area where the observation is located.

Parameters
pvpointing vector containing azimuth and elevation
Returns
area index

Here is the call graph for this function:

Here is the caller graph for this function:

int SkyCoverage::areaIndex37_v1 ( const PointingVector pv)
staticprivatenoexcept

area index of observation

Author
Matthias Schartner

Sky is distributed in 37 areas. An index is given to each area. This function returns the index of the area where the observation is located.

Parameters
pvpointing vector containing azimuth and elevation
Returns
area index

Here is the call graph for this function:

Here is the caller graph for this function:

int SkyCoverage::areaIndex37_v2 ( const PointingVector pv)
staticprivatenoexcept

area index of observation

Author
Matthias Schartner

Sky is distributed in 37 areas. An index is given to each area. This function returns the index of the area where the observation is located.

Parameters
pvpointing vector containing azimuth and elevation
Returns
area index

Here is the call graph for this function:

Here is the caller graph for this function:

double SkyCoverage::calcScore ( const PointingVector pv) const

calc score per station

Author
Matthias Schartner
Parameters
pvpointing vector
Returns
score

Here is the call graph for this function:

Here is the caller graph for this function:

void SkyCoverage::calculateSkyCoverageScores ( )

calculate sky coverage scores

Author
Matthias Schartner

with 13, 25 and 37 areas over 30 and 60 minutes.

Here is the call graph for this function:

Here is the caller graph for this function:

void SkyCoverage::clearObservations ( )

clear all observations

Author
Matthias Schartner
const std::vector<PointingVector>& VieVS::SkyCoverage::getPointingVectors ( ) const
inlinenoexcept

get all pointing vectors

Author
Matthias Schartner
Returns
all pointing vectors

Here is the call graph for this function:

double VieVS::SkyCoverage::getSkyCoverageScore_a13m30 ( ) const
inline

get total sky coverage score

Author
Matthias Schartner
Returns
sky coverage score with 13 areas over 30 minutes
double VieVS::SkyCoverage::getSkyCoverageScore_a13m60 ( ) const
inline

get total sky coverage score

Author
Matthias Schartner
Returns
sky coverage score with 13 areas over 60 minutes
double VieVS::SkyCoverage::getSkyCoverageScore_a25m30 ( ) const
inline

get total sky coverage score

Author
Matthias Schartner
Returns
sky coverage score with 25 areas over 30 minutes
double VieVS::SkyCoverage::getSkyCoverageScore_a25m60 ( ) const
inline

get total sky coverage score

Author
Matthias Schartner
Returns
sky coverage score with 25 areas over 60 minutes
double VieVS::SkyCoverage::getSkyCoverageScore_a37m30 ( ) const
inline

get total sky coverage score

Author
Matthias Schartner
Returns
sky coverage score with 37 areas over 30 minutes
double VieVS::SkyCoverage::getSkyCoverageScore_a37m60 ( ) const
inline

get total sky coverage score

Author
Matthias Schartner
Returns
sky coverage score with 37 areas over 60 minutes
double SkyCoverage::scorePerPointingVector ( const PointingVector pv_new,
const PointingVector pv_old 
) const
noexcept

calculates the influence of the score between two pointing vectors

Author
Matthias Schartner
Parameters
pv_newnew observation pointing vector
pv_oldalready observed pointing vector
Returns
score

Here is the call graph for this function:

Here is the caller graph for this function:

double SkyCoverage::skyCoverageScore_13 ( unsigned int  deltaTime) const
private

calculate total sky coverage score of all observations over schedule session

Author
Matthias Schartner

The sky is distributed in 13 areas

Parameters
deltaTimetime increment
Returns
sky coverage score. Maximum score is 1, minimum score is 0.

Here is the call graph for this function:

Here is the caller graph for this function:

double SkyCoverage::skyCoverageScore_25 ( unsigned int  deltaTime) const
private

calculate total sky coverage score of all observations over schedule session

Author
Matthias Schartner

The sky is distributed in 25 areas

Parameters
deltaTimetime increment
Returns
sky coverage score. Maximum score is 1, minimum score is 0.

Here is the call graph for this function:

Here is the caller graph for this function:

double SkyCoverage::skyCoverageScore_37 ( unsigned int  deltaTime) const
private

calculate total sky coverage score of all observations over schedule session

Author
Matthias Schartner

The sky is distributed in 37 areas

Parameters
deltaTimetime increment
Returns
sky coverage score. Maximum score is 1, minimum score is 0.

Here is the call graph for this function:

Here is the caller graph for this function:

void SkyCoverage::update ( const PointingVector pv)
noexcept

updates the pointing vectors

Author
Matthias Schartner
Parameters
pvpointing vector at start of scan

Here is the caller graph for this function:

Member Data Documentation

double VieVS::SkyCoverage::a13m30_ { 0 }
private

sky coverage score with 13 areas over 30 minutes

double VieVS::SkyCoverage::a13m60_ { 0 }
private

sky coverage score with 13 areas over 60 minutes

double VieVS::SkyCoverage::a25m30_ { 0 }
private

sky coverage score with 25 areas over 30 minutes

double VieVS::SkyCoverage::a25m60_ { 0 }
private

sky coverage score with 25 areas over 60 minutes

double VieVS::SkyCoverage::a37m30_ { 0 }
private

sky coverage score with 37 areas over 30 minutes

double VieVS::SkyCoverage::a37m60_ { 0 }
private

sky coverage score with 37 areas over 60 minutes

SkyCoverage::Interpolation thread_local SkyCoverage::interpolationDistance = Interpolation::linear
static

function for distance

SkyCoverage::Interpolation thread_local SkyCoverage::interpolationTime = Interpolation::linear
static

function for time

double thread_local SkyCoverage::maxInfluenceDistance = 30 * deg2rad
static

maximum time influence on the sky coverage

double thread_local SkyCoverage::maxInfluenceTime = 3600
static

maximum angular distance of influence on the sky coverage

unsigned long VieVS::SkyCoverage::nextId = 0
staticprivate

next id for this object type

std::vector<PointingVector> VieVS::SkyCoverage::pointingVectors_
private

all pointing vectors


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