Preparing Schedules With `prepquick.py`
The `prepquick.py` script can be used to generate a number of candidate observation windows, based on transit time and observation length, or on source elevation. Each file must start with a start time, and can have several different start times across multiple days. The last start time above a source is used to determine the start of the transit window for each schedule line.
The script does not attempt to realign overlapping observations, you must manually fix these issues before quicksched.py will accept them.
Defining Sources
Sources can be defined by either a set of coordinates in a common basis (J2000, SUN, JUPITER, etc.) or by a name recognised by the CDS, which will be queried by a astropy.coordinates.SkyCoord.from_name() call.
Most solar entries will be automatically converted to mode 357 entries.
Here's an example set of inputs and outputs in both forms, with the time specifiers removed for clarity:
#input.txt
Sun
Moon
PSR B1951+32
J0054+66 [0.23561944901923448, 1.1664616585719019, 'J2000']
TVLM 513-46
#output.txt (rearranged by start time)
[Sun357]
J0054+66_PSR [0.23561944901923448, 1.1664616585719019, 'J2000']
MOON [0, 0, 'MOON']
TVLM_513-46 [3.931949476576734, 0.3985272105537257, 'J2000']
B1951+32_PSR [5.205312212078421, 0.5738302241353217, 'J2000']
Observing by Elevation
You can get the observing window for a source while it is above a certain elevation by appending a tilde and elevation in degrees. The elevation will be overruled by the value of the `--cutoff` flag if it is set too low.
# input.txt
2023-04-05T00:00:00.000
Sun ~ 15
J0139+3336 ~ 45
Jupiter ~ 20
# output.txt
2023-04-05T07:40 - 2023-04-05T17:24 : [Sun357]
2023-04-05T08:30 - 2023-04-05T17:14 : JUPITER [0, 0, 'JUPITER']
2023-04-05T09:25 - 2023-04-05T17:09 : J0139+3336_PSR [0.4361308670963172, 0.586720056619953, 'J2000']
Observing by Observation Lengths
Otherwise, you can use an observation length to get a candidate schedule for a source by appending a tilde and an observation window in minutes. Note that due to the necessary time needed between beam switches, a minute will be subtracted from this time.
# input.txt
2023-04-05T00:00
Sun @ 75
J0139+3336 @ 120
Jupiter @ 30
# output.txt
2023-04-05T12:00 - 2023-04-05T13:14 : [Sun357]
2023-04-05T12:20 - 2023-04-05T14:19 : J0139+3336_PSR [0.4361308670963172, 0.586720056619953, 'J2000']
2023-04-05T12:40 - 2023-04-05T13:09 : JUPITER [0, 0, 'JUPITER']
Times
A starting line containing a ISOT-formatted date/time string is required in order to determine the source transits. One or more of these lines can be included in the file, and all following sources will be parsed using the last provided timestamp.
The script will determine the next transit after a given time (be it in 5 minutes or 23 hours), and produce the scheduling line candidate based on that. Here is an example that combines each of the described properties above, alongside using multiple different transit times.
# input.txt
2023-05-30T06:00
Sun ~ 15
Moon @ 20
PSR B1951+32 @ 20
J0054+66 [0.23561944901923448, 1.1664616585719019, 'J2000'] @ 20
TVLM 513-46 ~ 55
2023-06-01T18:00:00.000
Sun ~ 45
J0139+3336 ~ 45
Jupiter ~ 20
2023-06-03T11:00:00.000
Sun ~ 45
# output.txt
2023-05-30T06:10 - 2023-05-30T18:44 : [Sun357]
# Note the overlap of this observation, this needs manual tweaking
2023-05-30T08:45 - 2023-05-30T09:04 : J0054+66_PSR [0.23561944901923448, 1.1664616585719019, 'J2000']
2023-05-30T20:15 - 2023-05-30T20:34 : MOON [0, 0, 'MOON']
2023-05-30T21:25 - 2023-05-31T00:29 : TVLM_513-46 [3.931949476576734, 0.3985272105537257, 'J2000']
2023-05-31T03:40 - 2023-05-31T03:59 : B1951+32_PSR [5.205312212078421, 0.5738302241353217, 'J2000']
2023-06-02T05:05 - 2023-06-02T14:39 : JUPITER [0, 0, 'JUPITER']
2023-06-02T05:35 - 2023-06-02T13:19 : J0139+3336_PSR [0.4361308670963172, 0.586720056619953, 'J2000']
# Note that this sun entry is the day after the time stamp provided
2023-06-02T09:35 - 2023-06-02T15:19 : [Sun357]
2023-06-03T09:35 - 2023-06-03T15:19 : [Sun357]