NavList:
A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding
Missing messages again: was [NAV-L] Position from crossing two circles
From: George Huxtable
Date: 2006 Jun 12, 09:21 +0100
From: George Huxtable
Date: 2006 Jun 12, 09:21 +0100
An interesting posting in the thread "Position from crossing two circles : was [NAV-L] Reality check" was sent: Thursday, June 08, 2006 7:48 AM, by Andres Ruiz. It included, within the text of the message I received, a diagram of a sphere with two intersecting circles drawn on it. That in itself is unusual for Nav-l messages, which are usually sent, as requested, in text-only mode; but I am not opening that question. Presumably the message must have been sent in HTML; but if a plain-text version accompanied it, perhaps I would be unaware. What interests me more is that following a reply to that message, Frank Reed wrote, on that same day, "I didn't receive this message and there's no evidence of it in the irbs archive that I can find --possibly it was a private message-- but I would be interested in receiving a copy. Could someone forward a copy to me? Thanks." This seems to me to be worth following-up, for any light it may throw on the question of missing messages, which seem to be still plaguing the list. I looked into responding to Frank's request, but when I tried to forward a copy, it had that diagram stripped out, perhaps because my own emailer program is set to send in plain-text only. So I gave up on that. Later, Frank informed us that a copy had been forwarded to him from another member, so all was well. I wonder if that forwarded copy included the original diagram. On request, Andres resent his original posting on 9 June. In fact, there were 3 resends on that day, so altogether 4 such postings were sent altogether. There may possibly have been more, of course, but those were what reached me. All included that diagram. There were, in addition, shorter postings from him around that time on that same topic, which do not concern me. I wonder how many (if any) copies of that original Andes Ruiz posting arrived in Frank's mailbox, not counting any forwarded copies that arrived from elsewhere. Did they include that diagram? From those that keep an eye on the i-DEADLINK-com archive, how many copies of Andres' original posting appeared? Did they include the diagram? Did other members fail to receive all four copies of that message, with its diagram? If less than four, how many? Only by collating such evidence do we have any hope of discovering what's going wrong. George. contact George Huxtable at george@huxtable.u-net.com or at +44 1865 820222 (from UK, 01865 820222) or at 1 Sandy Lane, Southmoor, Abingdon, Oxon OX13 5HX, UK. Geoge, the method is not impossible for n observations or running fix. Mike, here you have the math for a fix from two circles of position (COP) Enjoy. 1. Position from two circles of equal altitude The equation of the plane containing a COP in rectangular coordinates is: ax+by+cz-p = 0 For the two bodies you have two equations, two planes intersect in a line. The two possible solutions for the observer's position, P and P', are the intersections of that line with the unit sphere x2+y2+z2 = 1 the math, (in C++): /* File: fix2circulosAltura.cpp This file contains proprietary information of Andr?s Ruiz Gonzalez Open source Andr?s Ruiz. San Sebastian - Donostia. Gipuzkoa Copyright (c) 2006 */ #include "stdafx.h" #include#include "..\LSfix\mathlib.hpp" double raiz1 = 0; double raiz2 = 0; void Ecuacion2grado( double a, double b, double c ) { double f = b*b-4.0*a*c; raiz1 = (-b+sqrt(f))/2.0/a; raiz2 = (-b-sqrt(f))/2.0/a; } // Inputs double GHA1, dec1, HO1; double GHA2, dec2, HO2; // Outputs double B1, L1; double B2, L2; void PosicionPorInterseccion2circulosAltura() { double a1 = COS(360.0-GHA1) * COS(dec1); double b1 = SIN(360.0-GHA1) * COS(dec1); double c1 = SIN(dec1); double p1 = COS(90.0-HO1); double a2 = COS(360.0-GHA2) * COS(dec2); double b2 = SIN(360.0-GHA2) * COS(dec2); double c2 = SIN(dec2); double p2 = COS(90.0-HO2); double A = a1*b2 - a2*b1; double B = b2*c1 - b1*c2; double C = b2*p1 - b1*p2; double D = a1*c2 - a2*c1; double E = b1*c2 - b2*c1; double F = c2*p1 - c1*p2; double K = F/E; double J = D/E; double G = C/B; double H = A/B; double alpha = 1.0+J*J+H*H; double beta = -2.0*K*J-2.0*G*H; double gamma = K*K+G*G-1.0; Ecuacion2grado( alpha, beta, gamma ); double x1 = raiz1; double y1 = K-J*x1; double z1 = G-H*x1; double x2 = raiz2; double y2 = K-J*x2; double z2 = G-H*x2; B1 = ATAN( z1/sqrt(x1*x1+y1*y1) ); L1 = ATAN( y1/x1 ); B2 = ATAN( z2/sqrt(x2*x2+y2*y2) ); L2 = ATAN( y2/x2 ); } void CAstroLSDlg::OnCalcular() { UpdateData(); /* GHA1 = 347.78; dec1 = -16.72; HO1 = 19.55; GHA2 = 334.23; dec2 = 5.22; HO2 = 28.5; */ GHA1 = 20.06; dec1 = 16.52; HO1 = 90-26.87; GHA2 = 332.71; dec2 = 28.02; HO2 = 90-48.02; PosicionPorInterseccion2circulosAltura(); CString tmp = ""; tmp.Format( "1(%.4lf ?, %.4lf ?) 2(%.4lf ?, %.4lf ?)", B1, L1, B2, L2 ); m_output = tmp; UpdateData( FALSE ); } 2. Position from n circles of equal altitude Here the problem is there are a lot of crossings between the circles. Metcalf & Metcalf, (On the overdetermined celestial fix - Refer to the Bibliography section at the link below), developed a method based on Lagrange Least-Squares minimization of the equation: S ( Sin Ho - [ sin Dec sin Lat + cos Dec cos Lat cos(GHA+Lon) ]2 ) The result is the MPP(Lat, Lon) for n circles of position. No initial position is needed. Also support a running fix. MIKE: What is the C++ application you refer for calculate and plot the COP?, where can I found it? Thanks. http://www.geocities.com/CapeCanaveral/Runway/3568/index.html Andr?s -----Mensaje original----- De: Navigation Mailing List [mailto:NAVIGATION-L@LISTSERV.WEBKAHUNA.COM] En nombre de Michael Dorl Enviado el: mi?rcoles, 07 de junio de 2006 13:39 Para: NAVIGATION-L@LISTSERV.WEBKAHUNA.COM Asunto: Re: [NAV-L] Position from crossing two circles : was [NAV-L] Reality check At 06:10 AM 6/7/2006, George Huxtable wrote: >I have written a program in bastard-Basic which runs on my 1980s >Casio >programmable calculator (FX 730P or FX 795P), and if anyone is >interested would be happy to send it or post it up. It would be >simple >to adapt it to another machine. It takes the 6 quantities, dec, GHA, >and altitude for each of two bodies, and returns two possible >positions in terms of lat and long, for the user to choose the >appropriate one. It does not require a DR or AP, and provides an >exact >result without going through an iteration process. > >It's not original, in that versions of the method have been described >previously beforehand. For example, in an article by George Bennett >in >the journal "Navigation" (which is, I think, the American one) Issue >no. 4, vol 26, winter 1979/80, titled " General conventions and >solutions- their use in celestial navigation", and to the book >"Practical navigation with your calculator", by Gerry Keys, (Stanford >maritime, 1984), section 11.12. The method has also been described in >"The K-Z position solution for the double sight", in European Journal >of Navigation, vol.1 no, 3, December 2003, pages 43-49, but that >article was bedevilled by printing errors that render it more-or-less >unintelligible, which were corrected in a later issue. Not to mention >several serious errors and misunderstandings by the author, which >have >never been acknowldged or corrected in that journal. George: Do any of these sources spell out the math in detail? I've searched in vain for a complete algorithm so a long time ago, I sat down and worked out the math. One of the tricky things is determining what quadrant angles lie in when doing a inverse trig function. I have a c++ windows application which will find all the equal altitude circle intersections for a set of observations. It also can plot the equal altitude circles on a world map. Mike