Nightly planning (full catalog)
Tycho, knowing by prodigious memory what had already been observed, probably inspected his star maps each night and instructed his assistants as to which pairs to observe. I do not have that kind of extensive memory capability in my head, but I do have computers. I needed to avoid lengthy preparations for each night's run, so I wanted a computational way to accomplish the star-pair selection. It is possible that Tycho created written pages on each star and then had his assistants sort through them as I have done, but I expect that Tycho kept the overall observation history in his head and the specific details on precious paper.
What I did was create a specialized version of my scope code, which already knew how to calculate separation and roll angles, to grind through all the possible pairs. I had this code take each primary star (about 100 stars) and calculate the separation and polar roll angles (on-the-sky) for all the catalog stars (about 750 stars). Remember that I had left all the primary stars in the secondary star list, so this calculation gave me all the primary-primary pairings along with all the primary-(non-primary) pairings. Of course this list of all pairings was enormous, tens of thousands of potential pairs, but it formed the starting list of all possible separation observations of Tycho's stars.
I took this master list and started paring it down. First, I eliminated all roll angles that had the star pair oriented more N-S than E-W. I picked roll angles (on-the-sky) that had the pair lying within 45 deg of the E-W direction. The distinction here is between the roll angle on-the-sky which is fixed and unchanging, versus the roll angle of the roll axis of the telescope, which is constantly changing as the stars are tracked. In the first case the roll angle is calculated relative to the north celestial pole, in the second case the roll angle is calculated relative to the zenith.
I then experimented with limiting the separation angle. My expectation was that smaller separations could be measured more accurately, and certainly more quickly, than large separation angles. I eventually arrived at a 30 degree cutoff for the separation angle. With these two boundary conditions, I was able to pair up primary stars with almost all secondary stars. For the few that didn't pair up, I extended the separation limit by a few degrees to accommodate them. I also insisted that all stars be paired with at least two primary stars to reduce the error that one bad primary could cause. For the primary stars themselves, I tried to link each primary with as many other primaries that lay within the separation and roll limits. This was often many more than two links (100 stars over 360 degrees gives an average separation of primary ras of 3.6 degrees, whereas the separation limit was 30 degrees). This increased the pair list well over the 1500 pair minimum, to about 1900 desired separations.
I finally had my list of all the separation measurements I needed to make on the approximately 1900 correctly oriented pairs. This list of desired separation pairs can be found here. The format looks like this; a primary star with its ra/dec, a secondary star with its ra/dec and a count of the number of measured meridian altitudes of the secondary star and the number of separations measured on this pair, initially zero. This file is sorted by the primary ra and then the secondary ra.
My plan was to take each night's data files and use them to update this starter file. I could then use this summary of altitudes and separations to plan the next night's activities. This summary would be called the 'progress' file. Here is a sample of the initial file.
As time passed and measurements accumulated, this 'progress' file would show the accumulation of meridian altitudes and pair separations.
A sample of such a progress file can be found here.
As an example of how I flowed the data, here are samples of the conversion of the raw scope output files into meridian and separation specific files. In the first case, forming a meridian data file, I would eliminate all columns related to a second star or scope hardware. This reduced the number of columns from 53 to 25. Here is the eventlog for 2021-07-20 reduced to just the meridian-specific information:
Similarly, for a separation data file, I eliminated the scope ra/dec and hardware info, and retained only separation related items. This reduces the 53 columns to 18. Here is the eventlog for 2021-07-17 reduced to just the separation information:
These condensed files were then concatenated to the previous data to form the meridian and separation history files. The meridian data has the generic file name 'merids+transits_observed_history_asof_YYY-MM-DD.txt'. The example below is from such a history file , and also includes data from the difficult zenith stars.
The history file was sorted by the catalog ra so that all meridian data on each star is gathered in one place. I think Tycho would have been envious of this sorting capability.
The separation history was sorted by the ra of the primary star and, for all entries with the same primary star, the lines are additionally sorted by the ra of the secondary star. This double sort gathered together all the measures of the individual pairs. These files have the generic file name 'Obs_seps_history_asof_YYY-MM-DD.txt'.
These two history files were then used to update a master summary list which will contain the altitude/separation progress for the overall data collection. This 'TyCat_progress_asof' file is then the central source for nightly planning. A typical segment of this file looks like this, and the three samples below show the slow progress on the number of altitudes and separations over the months:
As I started to take data in a more serious way, I wanted a new way to evaluate quickly the number of altitudes and separations that had been accumulated for each primary star. My brother Tom coded up a clever display program that could take segments of my progress files and plot the information I needed. Here is an example of such a plot for the data on alphaLib and betaLib as of early July 2021.
This plot shows the status of two primary stars, alphaLib and betaLib in early July 2021. They are the two nodes near the center that have the most connections indicated to other stars. Note that there are no connections between these two stars because they were too close to being N-S of each other.
The colored circles are used to indicate the number of altitudes, the radial lines are colored to indicate the number of separations measured. The colors are chosen to match the familiar (to me) resistor color code. The numerical parenthetical pair of numbers also tell the number of altitudes and separations. Any star that has a tilde(~) at the end of its name is a primary star. At a glance, I can tell what has been done and what needs to be done.
These plots worked well, but as more and more data accumulated I was going to need a hundred or so of these charts, each updated every night. Although each of these plots gives a quick, neat, summary of the status of a particular primary star, I could see that I also needed a more global way to visualize the status of the entire dataset.
Finally, here are the plots that eventually guided the nightly planning. The 'TyCat_Progress_asof' files in the three samples above are plotted to reveal the number of altitudes collected and the number of separations collected as of each date. The dense lines at the 'zero collected' level are slowly eaten away as data accumulates. The nightly plan is to schedule observations that lift the 'zero line', taking into account the current range of ras available during the night. My goal was to get at least three altitudes and two separations on all the stars. Success would be having no data points at the zero, one, or two levels in these plots.
On each night, armed with the latest 'progress' file, I could sort on 'nalts' or 'nseps' and isolate those stars or pairs that had been observed the least. I would then copy the progress file to create two 'needy' files, one for altitudes and one for separations. For the altitude file I would keep only the stars that had less than three measures, for the separation file I would keep only those pairs with less than two measures. I would then rename these files as 'needy_alts' or 'needy_seps' and transfer them to the scope ahead of opening up.