Day 5
I wrote down one way in which your geographical position can already be found using the tools in the repo: Geographical position
It's a method I've tested using data from Cartes du Ciel. It has had varying degrees of accuracy, sometimes being off with several arcminutes even with these very accurate inputs, so that makes me suspect that I've got a bug somewhere.
I also pondered a bit on how I could improve the method so that it doesn't require a measurement of the object's azimuth, which is difficult to obtain. So far I have two ideas that both involve calculating "circles of equal altitude".
By measuring the altitude of a star above the horizon, you can constrain the number of potential positions where you might be located to a circle on the earth's surface where that star would appear to be at the observed altitude.
If you are also able to obtain your latitude, you now have two circles of constraint: one is the star's circle of equal altitude, and the other is the parallel of your latitude. These two circles would intersect at only two places, and if you have some idea of where you are, then you can probably guess which intersection is the correct one.
The same idea can be applied when observing two stars without knowing your latitude. Calculate the circle of equal altitude for each star, and check the intersections. Determine which intersection is your position.
I'm not entirely ignorant of "lines of position", though I haven't read the book. As far as I understand it, the line of position method involves observing the altitude of an object and through a process called "time sight reduction", calculating the object's true azimuth with the help of a nautical almanac. Then, a line that represents a section of the circle of equal altitude is drawn through your assumed (dead reckoning) position using the angle of the calculated azimuth, and the assumed position is corrected perpendicular to this line by comparing the object's expected altitude with its observed altitude.
I don't have a nautical almanac, but I would like to know more about what kind of data is required in order to use this method.