[Numpy-discussion] Gauss-Newton Method in Python?

Xavier Gnata xavier.gnata at gmail.com
Fri May 28 18:46:52 EDT 2010


Let (Xi,Yi) be the positions of your stars on the sky. i in the 1 to N
range.
Let (Xj,Yj) be the positions of your stars images (PSF) on your picture.
i in the 1 to N range.
You can parametrize the distortion this way:
Xj_param = Px(Xi,Yi)
Yj_param = Py(Xi,Yi)
where Px and Py are the two polynomials minimizing the RMS residuals in
between the parametrized positions and the measured one on the picture.
As the distortion is a smooth function over the field of view, low order
polynomials are sufficient (order 3 or 5) to get very low RMS residuals.

Pros : No optimization algorithm need. You can compute the polynomials
coefficients using* pseudoinverse.* There is no question about global
versus local minimum anymore. Only* pseudoinverses.
Px qnd Py provides you with a full description of your system optical
distortion.
*Cons : I don't know. Once you have the polynomials, you can compute
whatever other distortion parametrization you may prefer.

Xavier

> I'm doing plate reduction on astro photos. There's non-linearity in
> the lens.  Basically, one is trying to estimate several lens
> parameters by look at a field of known stars versus ones measured on a
> photo plate. The author states it can be solved by taking first 
> derivatives to linearize matters, and iteratively apply least squares
> until the change in parameters falls below some limits. Gauss-Newton
> seems a bit different in that it tries to minimize the sum of squares.
>
> In a follow up paper, he refers to  the process  as a gradient
> method.  Up until then, my best guess was G-N. I suspect that you are
> hinting at the Gradient plus LSQ (least squares).  However, out of
> curiosity, isn't their a library of optimization methods like
> Marquardt or Davidon?
>
> On 5/28/2010 12:09 PM, Charles R Harris wrote:
>> What problem are you trying to solve. The leastsq algorithm in scipy
>> is effectively Gauss-Newton when that is appropriate to the problem.
>>
>> Chuck
>>
>> On Fri, May 28, 2010 at 12:36 PM, Wayne Watson
>> <sierra_mtnview at sbcglobal.net <mailto:sierra_mtnview at sbcglobal.net>>
>> wrote:
>>
>>     Is Subject method available in Python?
>>
>>     --
>>                Wayne Watson (Watson Adventures, Prop., Nevada City, CA)
>>
>>                  (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
>>                   Obz Site:  39° 15' 7" N, 121° 2' 32" W, 2700 feet
>>
>>                    There are no statues or memorials dedicated to
>>                    Thomas Paine for his substantial part in the
>>                    American Revolution.
>>
>>                     -- An observation in The Science of Liberty
>>                           by Timoth Ferris
>>
>>
>>                         Web Page:<www.speckledwithstars.net/
>>     <http://www.speckledwithstars.net/>>
>>
>>     _______________________________________________
>>     NumPy-Discussion mailing list
>>     NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>>     http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>   
>
> -- 
>            Wayne Watson (Watson Adventures, Prop., Nevada City, CA)
>
>              (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
>               Obz Site:  39° 15' 7" N, 121° 2' 32" W, 2700 feet 
>
>                There are no statues or memorials dedicated to  
>                Thomas Paine for his substantial part in the
>                American Revolution. 
>
>                 -- An observation in The Science of Liberty 
>                       by Timoth Ferris
>  
>            
>                     Web Page: <www.speckledwithstars.net/>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>   




More information about the NumPy-Discussion mailing list