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

representation of a VLBI network More...

#include <Network.h>

Inheritance diagram for VieVS::Network:
Collaboration diagram for VieVS::Network:

Public Member Functions

 Network ()
 constructor More...
 
void addStation (Station station)
 add a new station to the network More...
 
const StationgetStation (unsigned long id) const noexcept
 get station per id More...
 
const StationgetStation (const std::string &name) const noexcept
 get station per name More...
 
const std::vector< Station > & getStations () const noexcept
 get all stations in this network More...
 
const BaselinegetBaseline (unsigned long id) const noexcept
 ger baseline per id More...
 
const BaselinegetBaseline (unsigned long staid1, unsigned long staid2) const noexcept
 get baselined between two stations More...
 
const BaselinegetBaseline (const std::pair< unsigned long, unsigned long > &staids) const noexcept
 get baseline between two stations More...
 
const BaselinegetBaseline (const std::string &name) const noexcept
 get baseline per name More...
 
const std::vector< Baseline > & getBaselines () const noexcept
 get all baselines More...
 
const SkyCoveragegetSkyCoverage (unsigned long id) const noexcept
 get sky coverage per id More...
 
const std::vector< SkyCoverage > & getSkyCoverages () const noexcept
 get all sky coverages More...
 
StationrefStation (unsigned long id)
 reference to station per id More...
 
StationrefStation (const std::string &name)
 reference to station per name More...
 
std::vector< Station > & refStations ()
 reference to all stations More...
 
BaselinerefBaseline (unsigned long id)
 reference to baseline per id More...
 
BaselinerefBaseline (unsigned long staid1, unsigned long staid2)
 reference to baseline between two stations More...
 
BaselinerefBaseline (const std::pair< unsigned long, unsigned long > &staids)
 reference to baseline between two stations More...
 
BaselinerefBaseline (const std::string &name)
 reference to baseline per name More...
 
std::vector< Baseline > & refBaselines ()
 reference to all baselines More...
 
SkyCoveragerefSkyCoverage (unsigned long id)
 reference to sky coverage per id More...
 
std::vector< SkyCoverage > & refSkyCoverages ()
 reference to all sky coverages More...
 
unsigned long getBlid (const std::pair< unsigned long, unsigned long > &staids) const noexcept
 get baseline id between stations More...
 
unsigned long getBlid (unsigned long staid1, unsigned long staid2) const noexcept
 get baseline id between stations More...
 
void setMaxDistBetweenCorrespondingTelescopes (double maxDistBetweenCorrespondingTelescopes)
 set maximum distance between corresponding telescopes More...
 
unsigned long getNSta () const noexcept
 get number of stations More...
 
unsigned long getNBls () const noexcept
 get number of baselines More...
 
unsigned long getNClosures_max () const noexcept
 get number of theoretically possible independent closure phases and amplitudes More...
 
void update (unsigned long nObs, const PointingVector &pointingVector, bool influence=true)
 add new observation to station More...
 
void update (unsigned long blid, bool influence=true)
 add new observation to baseline More...
 
const std::vector< double > & getDxyz (unsigned long staid1, unsigned long staid2) const
 get baseline vector between two stations More...
 
double calcScore_skyCoverage (const std::vector< PointingVector > &pvs) const
 calc total score per sky coverages More...
 
double calcScore_skyCoverage (const std::vector< PointingVector > &pvs, std::unordered_map< unsigned long, double > &staids2skyCoverageScore) const
 calc total score per sky coverages More...
 
double calcScore_skyCoverage_subnetting (const std::vector< PointingVector > &pvs, const std::unordered_map< unsigned long, double > &staids2skyCoverageScore) const
 calc total score per sky coverages More...
 
const std::map< unsigned long, unsigned long > & getStaid2skyCoverageId () const
 get lookup table for sky coverage id based on station id More...
 
void stationSummary (std::ofstream &of) const
 creates station summary table 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...
 

Private Attributes

unsigned long nsta_
 number of stations More...
 
unsigned long nbls_
 number of baselines More...
 
unsigned long nclosures_max_
 maximum number of possible closure delays More...
 
std::vector< Stationstations_
 all stations More...
 
std::vector< Baselinebaselines_
 all baselines More...
 
std::vector< SkyCoverageskyCoverages_
 all sky coverages More...
 
std::map< std::pair< unsigned long, unsigned long >, unsigned long > staids2blid_
 lookup table for baseline id More...
 
std::map< std::pair< unsigned long, unsigned long >, std::vector< double > > staids2dxyz_
 lookup table for baseline vectors More...
 
double maxDistBetweenCorrespondingTelescopes_
 maximum distance between corresponding telescopes in meteres More...
 
std::map< unsigned long, unsigned long > staids2skyCoverageId_
 lookup table for sky coverage ids More...
 

Static Private Attributes

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

Detailed Description

representation of a VLBI network

Author
Matthias Schartner
Date
28.06.2018

Constructor & Destructor Documentation

Network::Network ( )

constructor

Author
Matthias Schartner

Member Function Documentation

void Network::addStation ( Station  station)

add a new station to the network

Author
Matthias Schartner
Parameters
stationnew station which should be added

Here is the call graph for this function:

Here is the caller graph for this function:

double VieVS::Network::calcScore_skyCoverage ( const std::vector< PointingVector > &  pvs) const

calc total score per sky coverages

Author
Matthias Schartner
Parameters
pvslist of pointing vectors
Returns
total score

Here is the caller graph for this function:

double VieVS::Network::calcScore_skyCoverage ( const std::vector< PointingVector > &  pvs,
std::unordered_map< unsigned long, double > &  staids2skyCoverageScore 
) const

calc total score per sky coverages

Author
Matthias Schartner

save result in input parameter for further use

Parameters
pvslist of pointing vectors
staids2skyCoverageScorestorage for results
Returns
total score
double Network::calcScore_skyCoverage_subnetting ( const std::vector< PointingVector > &  pvs,
const std::unordered_map< unsigned long, double > &  staids2skyCoverageScore 
) const

calc total score per sky coverages

Author
Matthias Schartner

score is taken from input parameter

Parameters
pvslist of pointing vectors
staids2skyCoverageScoreprecalculated score
Returns
total score

Here is the caller graph for this function:

const Baseline & Network::getBaseline ( unsigned long  id) const
noexcept

ger baseline per id

Author
Matthias Schartner
Parameters
idbaseline id
Returns
baseline with this id

Here is the caller graph for this function:

const Baseline & Network::getBaseline ( unsigned long  staid1,
unsigned long  staid2 
) const
noexcept

get baselined between two stations

Author
Matthias Schartner
Parameters
staid1first station id
staid2second station id
Returns
baseline between those stations
const Baseline & Network::getBaseline ( const std::pair< unsigned long, unsigned long > &  staids) const
noexcept

get baseline between two stations

Author
Matthias Schartner
Parameters
staidsstation ids
Returns
baseline between those stations

Here is the call graph for this function:

const Baseline & Network::getBaseline ( const std::string &  name) const
noexcept

get baseline per name

Author
Matthias Schartner
Parameters
namename of the baseline
Returns
baseline with this name
const std::vector< Baseline > & Network::getBaselines ( ) const
noexcept

get all baselines

Author
Matthias Schartner
Returns
all baselines

Here is the caller graph for this function:

unsigned long Network::getBlid ( const std::pair< unsigned long, unsigned long > &  staids) const
noexcept

get baseline id between stations

Author
Matthias Schartner
Parameters
staidsstation ids
Returns
baseline id between these stations

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long Network::getBlid ( unsigned long  staid1,
unsigned long  staid2 
) const
noexcept

get baseline id between stations

Author
Matthias Schartner
Parameters
staid1first station id
staid2second station id
Returns
baseline id between these stations

Here is the call graph for this function:

const std::vector< double > & Network::getDxyz ( unsigned long  staid1,
unsigned long  staid2 
) const

get baseline vector between two stations

Author
Matthias Schartner
Parameters
staid1first station id
staid2second station id
Returns
baseline vector between these stations

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long VieVS::Network::getNBls ( ) const
inlinenoexcept

get number of baselines

Author
Matthias Schartner
Returns
number of baselines

Here is the caller graph for this function:

unsigned long VieVS::Network::getNClosures_max ( ) const
inlinenoexcept

get number of theoretically possible independent closure phases and amplitudes

Author
Matthias Schartner
Returns
number of theoretically possible independent closure phases and amplitudes

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long VieVS::Network::getNSta ( ) const
inlinenoexcept

get number of stations

Author
Matthias Schartner
Returns
number of stations

Here is the caller graph for this function:

const SkyCoverage & Network::getSkyCoverage ( unsigned long  id) const
noexcept

get sky coverage per id

Author
Matthias Schartner
Parameters
idsky coverage id
Returns
sky coverage with this id

Here is the caller graph for this function:

const std::vector< SkyCoverage > & Network::getSkyCoverages ( ) const
noexcept

get all sky coverages

Author
Matthias Schartner
Returns
all sky coverage id
const std::map<unsigned long, unsigned long>& VieVS::Network::getStaid2skyCoverageId ( ) const
inline

get lookup table for sky coverage id based on station id

Author
Matthias Schartner
Returns
lookup table

Here is the call graph for this function:

Here is the caller graph for this function:

const Station & Network::getStation ( unsigned long  id) const
noexcept

get station per id

Author
Matthias Schartner
Parameters
idstation id
Returns
station with this id

Here is the caller graph for this function:

const Station & Network::getStation ( const std::string &  name) const
noexcept

get station per name

Author
Matthias Schartner
Parameters
namestation name
Returns
station with this name
const std::vector< Station > & Network::getStations ( ) const
noexcept

get all stations in this network

Author
Matthias Schartner
Returns
all station in this network

Here is the caller graph for this function:

Baseline & Network::refBaseline ( unsigned long  id)

reference to baseline per id

Author
Matthias Schartner
Parameters
idbaseline id
Returns
baseline with this id

Here is the caller graph for this function:

Baseline & Network::refBaseline ( unsigned long  staid1,
unsigned long  staid2 
)

reference to baseline between two stations

Author
Matthias Schartner
Parameters
staid1first station id
staid2second station id
Returns
baseline between those stations
Baseline & Network::refBaseline ( const std::pair< unsigned long, unsigned long > &  staids)

reference to baseline between two stations

Author
Matthias Schartner
Parameters
staidsstation ids
Returns
baseline between those stations

Here is the call graph for this function:

Baseline & Network::refBaseline ( const std::string &  name)

reference to baseline per name

Author
Matthias Schartner
Parameters
namebaseline name
Returns
baseline with this name
std::vector< Baseline > & Network::refBaselines ( )

reference to all baselines

Author
Matthias Schartner
Returns
all baselines

Here is the caller graph for this function:

SkyCoverage & Network::refSkyCoverage ( unsigned long  id)

reference to sky coverage per id

Author
Matthias Schartner
Parameters
idsky coverage id
Returns
sky coverage with this id

Here is the caller graph for this function:

std::vector< SkyCoverage > & Network::refSkyCoverages ( )

reference to all sky coverages

Author
Matthias Schartner
Returns
all sky coverages

Here is the caller graph for this function:

Station & Network::refStation ( unsigned long  id)

reference to station per id

Author
Matthias Schartner
Parameters
idstation id
Returns
station with this id

Here is the caller graph for this function:

Station & Network::refStation ( const std::string &  name)

reference to station per name

Author
Matthias Schartner
Parameters
namestation name
Returns
station with this name
std::vector< Station > & Network::refStations ( )

reference to all stations

Author
Matthias Schartner
Returns
all stations

Here is the caller graph for this function:

void VieVS::Network::setMaxDistBetweenCorrespondingTelescopes ( double  maxDistBetweenCorrespondingTelescopes)
inline

set maximum distance between corresponding telescopes

Author
Matthias Schartner

corresponding telescopes share the same sky coverage information

Parameters
maxDistBetweenCorrespondingTelescopesmaximum distance in meters

Here is the caller graph for this function:

void Network::stationSummary ( std::ofstream &  of) const

creates station summary table

Author
Matthias Schartner
Parameters
ofoutfile stream

Here is the caller graph for this function:

void Network::update ( unsigned long  nObs,
const PointingVector pointingVector,
bool  influence = true 
)

add new observation to station

Author
Matthias Schartner
Parameters
nObsnumber of observations
pointingVectorobserved pointing vector
influenceflag if this observations should count for upcoming scan selections

Here is the call graph for this function:

Here is the caller graph for this function:

void Network::update ( unsigned long  blid,
bool  influence = true 
)

add new observation to baseline

Author
Matthias Schartner
Parameters
blidbaseline id
influenceflag if observation should count for upcoming scan selections

Member Data Documentation

std::vector<Baseline> VieVS::Network::baselines_
private

all baselines

double VieVS::Network::maxDistBetweenCorrespondingTelescopes_
private

maximum distance between corresponding telescopes in meteres

unsigned long VieVS::Network::nbls_
private

number of baselines

unsigned long VieVS::Network::nclosures_max_
private

maximum number of possible closure delays

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

next id for this object type

unsigned long VieVS::Network::nsta_
private

number of stations

std::vector<SkyCoverage> VieVS::Network::skyCoverages_
private

all sky coverages

std::map<std::pair<unsigned long, unsigned long>, unsigned long> VieVS::Network::staids2blid_
private

lookup table for baseline id

std::map<std::pair<unsigned long, unsigned long>, std::vector<double> > VieVS::Network::staids2dxyz_
private

lookup table for baseline vectors

std::map<unsigned long, unsigned long> VieVS::Network::staids2skyCoverageId_
private

lookup table for sky coverage ids

std::vector<Station> VieVS::Network::stations_
private

all stations


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