[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