![]() |
VieSched++
VieVS VLBI Scheduling Software
|
this is the VLBI scheduling class which is responsible for the scan selection and the creation of the schedule More...
#include <Scheduler.h>
Classes | |
struct | Parameters |
general parameters used for scheduling More... | |
struct | PreCalculated |
pre calculated values (deprecated) More... | |
Public Member Functions | |
Scheduler (Initializer &init, std::string path, std::string fname) | |
constructor More... | |
Scheduler (std::string name, std::string path, Network network_, SourceList sourceList, std::vector< Scan > scans, boost::property_tree::ptree xml, std::shared_ptr< ObservingMode > obsModes_=nullptr) | |
constructor More... | |
void | start () noexcept |
main function that starts the scheduling More... | |
Subcon | createSubcon (const std::shared_ptr< Subnetting > &subnetting, Scan::ScanType type, const boost::optional< StationEndposition > &endposition=boost::none) noexcept |
this function creates a subcon with all scans, times and scores More... | |
Subcon | allVisibleScans (Scan::ScanType type, const boost::optional< StationEndposition > &endposition=boost::none, bool doNotObserveSourcesWithinMinRepeat=true) noexcept |
constructs all visible scans More... | |
void | update (Scan &scan, std::ofstream &of) noexcept |
updates the selected next scans to the schedule More... | |
void | consideredUpdate (unsigned long n1scans, unsigned long n2scans, int depth, std::ofstream &of) noexcept |
updates and prints the number of all considered scans More... | |
void | statistics (std::ofstream &of) |
statistics output More... | |
void | highImpactScans (HighImpactScanDescriptor &himp, std::ofstream &of) |
schedule high impact scans More... | |
void | calibratorBlocks (std::ofstream &of) |
schedule calibrator blocks More... | |
bool | checkAndStatistics (std::ofstream &of) noexcept |
checks the schedule with an independend methode More... | |
const SourceList & | getSourceList () const noexcept |
get all sources More... | |
const Network & | getNetwork () const noexcept |
get station network More... | |
const std::string & | getPath () const noexcept |
get path More... | |
const std::shared_ptr< const ObservingMode > & | getObservingMode () const noexcept |
get observing mode network More... | |
int | getNumberOfObservations () const noexcept |
get number of observations scheduled in this observation More... | |
const std::vector< Scan > & | getScans () const noexcept |
get all scans More... | |
![]() | |
VieVS_NamedObject (std::string name, unsigned long id) | |
constructor More... | |
VieVS_NamedObject (std::string name, std::string alternativeName, unsigned long id) | |
constructor More... | |
const std::string & | getName () const |
get object name More... | |
const std::string & | getAlternativeName () const |
get object alternative name More... | |
bool | hasAlternativeName () const |
check if object has alternative name More... | |
bool | hasName (const std::string &name) const |
check if object has name More... | |
void | changeName (const std::string &newName) |
change name of object 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 | startScanSelection (unsigned int endTime, std::ofstream &of, Scan::ScanType type, boost::optional< StationEndposition > &opt_endposition, boost::optional< Subcon > &subcon, int depth) |
start recursive scan selection More... | |
bool | checkForNewEvents (unsigned int time, bool output, std::ofstream &of, bool tagalong) noexcept |
checks if some parameters need to be changed More... | |
void | listSourceOverview (std::ofstream &of) noexcept |
output of source overview More... | |
void | startTagelongMode (Station &station, SkyCoverage &skyCoverage, std::ofstream &of) |
start tagalong mode More... | |
bool | checkOptimizationConditions (std::ofstream &of) |
check optimization conditions More... | |
void | changeStationAvailability (const boost::optional< StationEndposition > &endposition, StationEndposition::change change) |
change station availability More... | |
void | startScanSelectionBetweenScans (unsigned int duration, std::ofstream &of, Scan::ScanType type, bool output=false, bool ignoreTagalong=false) |
start scan selection between scans More... | |
void | resetAllEvents (std::ofstream &of, bool resetCurrentPointingVector=true) |
reset all events to time zero More... | |
void | ignoreTagalongParameter () |
ignore tagalong parameter More... | |
void | idleToScanTime (Timestamp ts, std::ofstream &of) |
transform idle time to observing time More... | |
void | sortSchedule (Timestamp ts=Timestamp::start) |
sort schedule More... | |
void | sortSchedule (unsigned long staid, Timestamp ts=Timestamp::start) |
sort schedule based on station More... | |
void | writeCalibratorStatistics (std::ofstream &of, std::vector< double > &highestElevations, std::vector< double > &lowestElevations) |
write astrometric calibrator statistics More... | |
void | writeCalibratorHeader (std::ofstream &of) |
write astrometric calibrator block header More... | |
void | updateObservingTimes () |
updates the time of each observation according to the observing times of the station More... | |
void | scheduleAPrioriScans (const boost::property_tree::ptree &ptree, std::ofstream &of) |
add a priori scan More... | |
Static Private Member Functions | |
static bool | calibratorUpdate (const std::vector< Scan > &bestScans, std::vector< double > &prevHighElevationScores, std::vector< double > &prevLowElevationScores, std::vector< double > &highestElevations, std::vector< double > &lowestElevations) |
astrometric calibrator update More... | |
Private Attributes | |
int | version_ |
version More... | |
std::string | path_ |
path to VieSchedpp.xml directory More... | |
boost::property_tree::ptree | xml_ |
content of VieSchedpp.xml file More... | |
SourceList | sourceList_ |
session source list More... | |
Network | network_ |
station network More... | |
std::shared_ptr< const ObservingMode > | obsModes_ = nullptr |
observing modes More... | |
std::shared_ptr< const Mode > | currentObservingMode_ = nullptr |
current observing mode More... | |
std::vector< Scan > | scans_ |
all scans in schedule More... | |
Parameters | parameters_ |
general scheduling parameters More... | |
PreCalculated | preCalculated_ |
pre calculated values More... | |
unsigned long | nSingleScansConsidered = 0 |
considered single source scans More... | |
unsigned long | nSubnettingScansConsidered = 0 |
considered subnetting scans More... | |
unsigned long | nObservationsConsidered = 0 |
considered baselines More... | |
boost::optional< HighImpactScanDescriptor > | himp_ |
high impact scan descriptor More... | |
std::vector< CalibratorBlock > | calib_ |
calibrator impact scan descriptor More... | |
boost::optional< MultiScheduling::Parameters > | multiSchedulingParameters_ |
multi scheduling paramters More... | |
Static Private Attributes | |
static unsigned long | nextId = 0 |
next id for this object type More... | |
Friends | |
class | Output |
this is the VLBI scheduling class which is responsible for the scan selection and the creation of the schedule
VieVS::Scheduler::Scheduler | ( | Initializer & | init, |
std::string | path, | ||
std::string | fname | ||
) |
constructor
init | initializer |
path | path to VieSchedpp.xml file |
fname | file name |
Scheduler::Scheduler | ( | std::string | name, |
std::string | path, | ||
Network | network_, | ||
SourceList | sourceList, | ||
std::vector< Scan > | scans, | ||
boost::property_tree::ptree | xml, | ||
std::shared_ptr< ObservingMode > | obsModes_ = nullptr |
||
) |
constructor
name | session name |
path | session path |
network_ | station network |
sourceList | source list |
scans | list of scans |
xml | VieSchedpp.xml file |
|
noexcept |
constructs all visible scans
type | scan type |
endposition | required endposition |
doNotObserveSourcesWithinMinRepeat | consider scans (with reduced weight) if they are within min repeat time |
void Scheduler::calibratorBlocks | ( | std::ofstream & | of | ) |
schedule calibrator blocks
of | outstream object |
|
staticprivate |
astrometric calibrator update
bestScans | scheduled scans |
prevHighElevationScores | previouse high elevation scores |
prevLowElevationScores | previouse low elevation scores |
highestElevations | highest elevation scores |
lowestElevations | lowest elevation scores |
|
private |
change station availability
endposition | required endpositions |
change | change type |
|
noexcept |
checks the schedule with an independend methode
of | outstream file object |
|
privatenoexcept |
checks if some parameters need to be changed
time | current time in seconds since start |
output | flag if output to log file is required |
of | outstream file object |
tagalong | schedule tagalong scans |
|
private |
check optimization conditions
of | outstream object |
|
noexcept |
updates and prints the number of all considered scans
n1scans | number of single source scans |
n2scans | number of subnetting scans |
depth | recursion depth |
of | outstream file object |
|
noexcept |
this function creates a subcon with all scans, times and scores
subnetting | true if subnetting is allowed, false otherwise |
type | scan type |
endposition | required endposition |
|
inlinenoexcept |
get station network
|
noexcept |
get number of observations scheduled in this observation
|
inlinenoexcept |
get observing mode network
|
inlinenoexcept |
get path
|
inlinenoexcept |
get all scans
|
inlinenoexcept |
get all sources
void Scheduler::highImpactScans | ( | HighImpactScanDescriptor & | himp, |
std::ofstream & | of | ||
) |
schedule high impact scans
himp | high impact scan descriptor |
of | outstream object |
|
private |
transform idle time to observing time
ts | time stamp |
of | outstrem object |
|
private |
ignore tagalong parameter
|
privatenoexcept |
output of source overview
of | object |
|
private |
reset all events to time zero
of | outstream object |
resetCurrentPointingVector | change the current pointing vector |
|
private |
add a priori scan
of | outfile stream |
ptree | property tree including a priori scans |
|
private |
sort schedule
ts | time stamp |
|
private |
sort schedule based on station
staid | station id |
ts | time stamp |
|
noexcept |
main function that starts the scheduling
|
private |
start recursive scan selection
endTime | end time of this recursion |
of | outstream object |
type | scan type |
opt_endposition | required endposition |
subcon | precalculated subcon |
depth | recursion depth |
|
private |
start scan selection between scans
for example fillin mode a posteriori
duration | duration (deprecated?) |
of | outstream object |
type | scan type |
output | output flag |
ignoreTagalong | ignore tagalong modes flag |
|
private |
start tagalong mode
station | tagalong station |
skyCoverage | sky coverage of tagalong station |
of | outstream object |
void Scheduler::statistics | ( | std::ofstream & | of | ) |
statistics output
of | output stream |
|
noexcept |
updates the selected next scans to the schedule
scan | best possible next scans |
of | outstream file object |
|
private |
updates the time of each observation according to the observing times of the station
|
private |
write astrometric calibrator block header
of | outstream object |
|
private |
write astrometric calibrator statistics
of | output stream object |
highestElevations | highest elevations scheduled so far in astrometric calibrator block |
lowestElevations | lowest elevations scheduled so far in astrometric calibrator block |
|
friend |
|
private |
calibrator impact scan descriptor
|
private |
current observing mode
|
private |
high impact scan descriptor
|
private |
multi scheduling paramters
|
private |
station network
|
staticprivate |
next id for this object type
|
private |
considered baselines
|
private |
considered single source scans
|
private |
considered subnetting scans
|
private |
observing modes
|
private |
general scheduling parameters
|
private |
path to VieSchedpp.xml directory
|
private |
pre calculated values
|
private |
all scans in schedule
|
private |
session source list
|
private |
version
|
private |
content of VieSchedpp.xml file