![]() |
VieSched++
VieVS VLBI Scheduling Software
|
representation of a VLBI subcon More...
#include <Subcon.h>
Public Member Functions | |
Subcon () | |
empty default constructor More... | |
void | addScan (Scan &&scan) noexcept |
add a single source scan to subcon More... | |
void | removeScan (unsigned long idx) noexcept |
removes a scan from the subcon More... | |
unsigned long | getNumberSingleScans () const noexcept |
getter for number of possible single source scans More... | |
unsigned long | getNumberSubnettingScans () const noexcept |
getter for number of possible subnetting scans More... | |
Scan | takeSingleSourceScan (unsigned long idx) noexcept |
getter for a single source scan More... | |
std::pair< Scan, Scan > | takeSubnettingScans (unsigned long idx) noexcept |
getter for subnettin scan More... | |
void | calcStartTimes (const Network &network, const SourceList &sourceList, const boost::optional< StationEndposition > &endposition=boost::none) noexcept |
calculates the earliest possible start time for all single source scans in this subcon More... | |
void | constructAllBaselines (const Network &network, const SourceList &sourceList) noexcept |
constructs all baselines for all single source scans in this subcon More... | |
void | updateAzEl (const Network &network, const SourceList &sourceList) noexcept |
updates all azimuths and elevations of all pointing vectors for each single source scan in this subcon More... | |
void | calcAllBaselineDurations (const Network &network, const SourceList &sourceList, const std::shared_ptr< const Mode > &mode) noexcept |
calculates all baseline scan duration for all single source scans in this subcon More... | |
void | calcAllScanDurations (const Network &network, const SourceList &sourceList, const boost::optional< StationEndposition > &endposition=boost::none) noexcept |
calculates all scan duration of all single source scans in this subcon More... | |
void | createSubnettingScans (const std::shared_ptr< Subnetting > &subnetting, const Network &network, const SourceList &sourceList) noexcept |
create all subnetting scans from possible single source scans More... | |
void | generateScore (const Network &network, const SourceList &sourceList) noexcept |
generate scores for all single source and subnetting scans More... | |
void | generateScore (const std::vector< double > &lowElevatrionScore, const std::vector< double > &highElevationScore, const Network &network, const SourceList &sourceList) |
generate score for all scans during astrometric calibrator block More... | |
void | generateScore (const Network &network, const SourceList &sourceList, const std::vector< std::map< unsigned long, double >> &hiscores, unsigned int interval) |
generate score for high impact scans More... | |
void | generateCalibratorScore (const Network &network, const SourceList &sourceList, const std::shared_ptr< const Mode > &mode) |
generate score for calibrator blocks More... | |
void | checkTotalObservingTime (const Network &network, const SourceList &sourceList) |
check if there is enough time to reach required endposition for all scans More... | |
void | checkIfEnoughTimeToReachEndposition (const Network &network, const SourceList &sourceList, const boost::optional< StationEndposition > &endposition=boost::none) |
check if there is enough time to reach required endposition for all scans More... | |
void | minMaxTime () noexcept |
get minimum and maximum time required for a possible scan More... | |
std::vector< Scan > | selectBest (Network &network, const SourceList &sourceList, const std::shared_ptr< const Mode > &mode, const boost::optional< StationEndposition > &endposition=boost::none) noexcept |
rigorousely updates the best scans until the best one is found More... | |
std::vector< Scan > | selectBest (Network &network, const SourceList &sourceList, const std::shared_ptr< const Mode > &mode, const std::vector< double > &prevLowElevationScores, const std::vector< double > &prevHighElevationScores, const boost::optional< StationEndposition > &endposition=boost::none) noexcept |
rigorousely updates the best scans until the best one is found during astrometric calibrator block More... | |
void | clearSubnettingScans () |
clear all subnetting scans More... | |
void | calcCalibratorScanDuration (const std::vector< Station > &stations, const SourceList &sourceList) |
calc calibration scan duration (deprecated) More... | |
void | changeType (Scan::ScanType type) |
change scan type of all scans More... | |
void | visibleScan (unsigned int currentTime, Scan::ScanType type, const Network &network, std::shared_ptr< const AbstractSource > thisSource, std::set< unsigned long > observedSources=std::set< unsigned long >(), bool doNotObserveSourcesWithinMinRepeat=true) |
create possible visible scan to a source More... | |
const std::vector< Scan > & | getSingleSourceScans () const |
Matthias Schartner. More... | |
![]() | |
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 Member Functions | |
void | precalcScore (const Network &network, const SourceList &sourceList) noexcept |
precalculate all necessary parameters to generate scores More... | |
void | prepareAverageScore (const std::vector< Station > &stations) noexcept |
pre calculate station average number of observation score More... | |
void | prepareAverageScore (const std::vector< Baseline > &baselines) noexcept |
pre calculate baseline average number of observation score More... | |
void | prepareAverageScore (const SourceList &sourceList) noexcept |
pre calculate source average number of observation score More... | |
void | prepareIdleTimeScore (const std::vector< Station > &stations) noexcept |
pre calculate extra score after long idle times More... | |
std::vector< double > | prepareAverageScore_base (const std::vector< unsigned long > &nobs) noexcept |
pre calculate baseline average number of observation score More... | |
Private Attributes | |
unsigned long | nSingleScans_ = 0 |
number of single source scans More... | |
std::vector< Scan > | singleScans_ |
all single source scans More... | |
unsigned long | nSubnettingScans_ = 0 |
number of subnetting scans More... | |
std::vector< std::pair< Scan, Scan > > | subnettingScans_ |
all subnetting scans More... | |
unsigned int | minRequiredTime_ = std::numeric_limits<unsigned int>::max() |
minimum time required for a scan More... | |
unsigned int | maxRequiredTime_ = std::numeric_limits<unsigned int>::min() |
maximum time required for a scan More... | |
std::vector< double > | astas_ |
average station score for each station More... | |
std::vector< double > | asrcs_ |
average source score for each source More... | |
std::vector< double > | abls_ |
average baseline score for each baseline More... | |
std::vector< double > | idle_ |
extra score for long idle time More... | |
Static Private Attributes | |
static unsigned long | nextId = 0 |
next id for this object type More... | |
representation of a VLBI subcon
Subcon::Subcon | ( | ) |
empty default constructor
|
noexcept |
add a single source scan to subcon
scan | scan which should be added |
|
noexcept |
calculates all baseline scan duration for all single source scans in this subcon
network | station network |
sourceList | list of all sources |
mode | observing mode |
|
noexcept |
calculates all scan duration of all single source scans in this subcon
network | station network |
sourceList | list of all sources |
endposition | required endposition |
void Subcon::calcCalibratorScanDuration | ( | const std::vector< Station > & | stations, |
const SourceList & | sourceList | ||
) |
calc calibration scan duration (deprecated)
stations | list of stations |
sourceList | list of sources |
|
noexcept |
calculates the earliest possible start time for all single source scans in this subcon
network | station network |
sourceList | list of all sources |
endposition | required endposition |
void Subcon::changeType | ( | Scan::ScanType | type | ) |
change scan type of all scans
type | new scan type |
void Subcon::checkIfEnoughTimeToReachEndposition | ( | const Network & | network, |
const SourceList & | sourceList, | ||
const boost::optional< StationEndposition > & | endposition = boost::none |
||
) |
check if there is enough time to reach required endposition for all scans
network | station network |
sourceList | list of all sources |
endposition | required endposition |
void Subcon::checkTotalObservingTime | ( | const Network & | network, |
const SourceList & | sourceList | ||
) |
check if there is enough time to reach required endposition for all scans
network | station network |
sourceList | list of all sources |
void Subcon::clearSubnettingScans | ( | ) |
clear all subnetting scans
|
noexcept |
constructs all baselines for all single source scans in this subcon
network | station network |
sourceList | list of all sources |
|
noexcept |
create all subnetting scans from possible single source scans
subnetting | subnetting parameters |
network | station network |
sourceList | list of all sources |
void Subcon::generateCalibratorScore | ( | const Network & | network, |
const SourceList & | sourceList, | ||
const std::shared_ptr< const Mode > & | mode | ||
) |
generate score for calibrator blocks
network | station network |
sourceList | list of all sources |
mode | current observing mode |
|
noexcept |
generate scores for all single source and subnetting scans
network | station network |
sourceList | list of all sources |
void Subcon::generateScore | ( | const std::vector< double > & | lowElevatrionScore, |
const std::vector< double > & | highElevationScore, | ||
const Network & | network, | ||
const SourceList & | sourceList | ||
) |
generate score for all scans during astrometric calibrator block
lowElevatrionScore | low elevation scores |
highElevationScore | high elevation score |
network | station network |
sourceList | list of all sources |
void Subcon::generateScore | ( | const Network & | network, |
const SourceList & | sourceList, | ||
const std::vector< std::map< unsigned long, double >> & | hiscores, | ||
unsigned int | interval | ||
) |
generate score for high impact scans
network | station network |
sourceList | list of all sources |
hiscores | high impact scores |
interval | high impact search interval index |
|
inlinenoexcept |
getter for number of possible single source scans
|
inlinenoexcept |
getter for number of possible subnetting scans
|
inline |
Matthias Schartner.
|
noexcept |
get minimum and maximum time required for a possible scan
|
privatenoexcept |
precalculate all necessary parameters to generate scores
network | station network |
sourceList | list of all sources |
|
privatenoexcept |
pre calculate station average number of observation score
stations | list of all stations |
|
privatenoexcept |
pre calculate baseline average number of observation score
baselines | list of all baselines |
|
privatenoexcept |
pre calculate source average number of observation score
sourceList | list of all sources |
|
privatenoexcept |
pre calculate baseline average number of observation score
nobs | nuber of observation per object |
|
privatenoexcept |
pre calculate extra score after long idle times
stations | list of all stations |
|
noexcept |
removes a scan from the subcon
The index counts first through all single source scans and continues with all subnetting scans. If the index is larger then the number of single scans subnetting scans will be removed.
idx | index of scan which should be removed |
|
noexcept |
rigorousely updates the best scans until the best one is found
in case a subnetting scan combination has highest score these two scans are returned, otherwise only a single scan is returned
network | station network |
sourceList | list of all sources |
mode | observing mode |
endposition | required endposition |
|
noexcept |
rigorousely updates the best scans until the best one is found during astrometric calibrator block
in case a subnetting scan combination has highest score these two scans are returned, otherwise only a single scan is returned
network | station network |
sourceList | list of all sources |
mode | observing mode |
prevLowElevationScores | low elevation scores |
prevHighElevationScores | high elevation scores |
endposition | required endposition |
|
inlinenoexcept |
getter for a single source scan
idx | index |
getter for subnettin scan
idx | index |
|
noexcept |
updates all azimuths and elevations of all pointing vectors for each single source scan in this subcon
network | station network |
sourceList | list of all sources |
void Subcon::visibleScan | ( | unsigned int | currentTime, |
Scan::ScanType | type, | ||
const Network & | network, | ||
std::shared_ptr< const AbstractSource > | thisSource, | ||
std::set< unsigned long > | observedSources = std::set<unsigned long>() , |
||
bool | doNotObserveSourcesWithinMinRepeat = true |
||
) |
create possible visible scan to a source
currentTime | current start time |
type | scan type |
network | station network |
thisSource | target source |
observedSources | list of priviously observed sources |
doNotObserveSourcesWithinMinRepeat | consider scans (with reduced weight) if they are within min repeat time |
|
private |
average baseline score for each baseline
|
private |
average source score for each source
|
private |
average station score for each station
|
private |
extra score for long idle time
|
private |
maximum time required for a scan
|
private |
minimum time required for a scan
|
staticprivate |
next id for this object type
|
private |
number of single source scans
|
private |
number of subnetting scans
|
private |
all single source scans