(Created page with "Exemple de détection d'étoiles dans une image (zoomé à 50%, les étoiles sont entourées de près par des cercles oranges):")
No edit summary
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages />
<languages />
=Dynamic PSF=
=Dynamic PSF=
Dynamic PSF est un outil inspiré de la fonction PixInsight du même nom. Il est utilisé pour modéliser les images non saturées dans une image. Pour l'instant, le modèle est restreint à une fonction Gaussienne 2D, ce qui est suffisant pour la plupart des cas.
Dynamic PSF est un outil inspiré de la fonction PixInsight du même nom. Il est utilisé pour modéliser les étoiles non saturées dans une image. Pour l'instant, le modèle est restreint à une fonction Gaussienne 2D, ce qui est suffisant pour la plupart des cas.


<html5media width="750">http://free-astro.vinvin.tf/videos/DPSF_vf.webm</html5media>
<html5media width="750">https://free-astro.org/videos/DPSF.webm</html5media>


Exemple de détection d'étoiles dans une image (zoomé à 50%, les étoiles sont entourées de près par des cercles oranges):
Exemple de détection d'étoiles dans une image (les étoiles sont entourées par des cercles oranges) :


[[File:Siril_BW.png]]
[[File:Siril_BW.png|600px]]


==Model==
==Modèle==
* 2D Gaussian:
* Gaussienne 2D:
<math>G(x,y)=B+A e^{-\left( \frac{(x-x_0)^2}{2\sigma^2_x} + \frac{(y-y_0)^2}{2\sigma^2_y} \right)}</math>
<math>G(x,y)=B+A e^{-\left( \frac{(x-x_0)^2}{2\sigma^2_x} + \frac{(y-y_0)^2}{2\sigma^2_y} \right)}</math>
* Parameters:
* Paramètres:
** <math>B</math>: The average local background in the [0, 1] range.
** <math>B</math>: La moyenne du fond ce ciel local, dans la plage de valeurs [0, 1].
** <math>A</math>: The maximal intensity of the star in the [0, 1] range: this is the peak value of the fitted function, located at the centroid coordinates x0 and y0.
** <math>A</math>: L'intensité maximale de l'étoile, dans la plage de valeurs [0, 1] : c'est la valeur du pic de la fonction modélisée, localisée sur les coordonnées du centroïde x0 et y0.
** <math>x_0</math> and <math>y_0</math>: The centroid coordinates in pixel units, which is the position of the center of symmetry of the fitted PSF.  
** <math>x_0</math> et <math>y_0</math>: Les coordonnées du centroïde en pixels, qui est la position du centre de symétrie de la modélisation PSF.
** <math>\text{FWHM}_X</math> and <math>\text{FWHM}_Y</math>: The Full Width Half Maximum on the X and Y axis in pixel units. These parameters are calculated as follow :
** <math>\text{FWHM}_X</math> et <math>\text{FWHM}_Y</math>: La largeur à mi-hauteur sur les axes X et Y en pixels. Ces paramètres sont calculés de la façon suivante :
*** <math>\text{FWHM}_X = 2\sigma_x\sqrt{2\log{2}}</math>
*** <math>\text{FWHM}_X = 2\sigma_x\sqrt{2\log{2}}</math>
*** <math>\text{FWHM}_Y = 2\sigma_y\sqrt{2\log{2}}</math>
*** <math>\text{FWHM}_Y = 2\sigma_y\sqrt{2\log{2}}</math>
*** It is possible to obtain the FWHM parameters in arcseconds units. This requires you fill all fields corresponding to your camera and lens/telescope focal in the setting parameter window. If standard FITS keywords FOCALLEN, XPIXSZ, YPIXSZ, XBINNING and YBINNING are read in the FITS HDU, the PSF will also compute the image scale in arcseconds per pixel.
*** Il est possible d'obtenir les paramètres de FWHM en arc-secondes. Pour cela, il faut remplir les champs correspondant à la caméra et à l'optique dans la fenêtre des paramètres. Si les mots-clés standards des fichiers FITS suivants sont présents dans sa HDU, la PSF calculera l'échelle de l'image en arc-secondes par pixel : FOCALLEN, XPIXSZ, YPIXSZ, XBINNING and YBINNING.
** <math>r</math>: The roundness parameter. It is expressed as <math>\text{FWHM}_Y/\text{FWHM}_X</math>, with <math>\text{FWHM}_X>\text{FWHM}_Y</math> the symmetry condition.
** <math>r</math>: Le paramètre de rotondité. Il est exprimé par <math>\text{FWHM}_Y/\text{FWHM}_X</math>, avec la condition de symétrie <math>\text{FWHM}_X>\text{FWHM}_Y</math>.
** Angle: The rotation angle of the X axis with respect to the centroid coordinates in the [-90, 90] range. The angle <math>\theta</math> is computed as follow:
** Angle: L'angle de rotation sur l'axe X par rapport aux coordonnées du centroïde dans la plage de valeurs [-90, 90]. L'angle <math>\theta</math> est calculé de la façon suivante :
*** <math>x' = +x cos \theta + y sin \theta</math>
*** <math>x' = +x cos \theta + y sin \theta</math>
*** <math>y' = -x sin \theta + y cos \theta</math>
*** <math>y' = -x sin \theta + y cos \theta</math>
** RMSE: This is an estimation of fitting quality. The smaller the RMSE is, the better the function is fitted.
** RMSE: C'est une estimation de la qualité de la fonction de modélisation. Plus ce nombre est petit, meilleure est la fonction de modélisation.


==Minimization==
==Minimisation==
Minimization is performed with a non-linear [https://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm Levenberg-Marquardt algorithm] thanks to the very robust GNU Scientific Library<ref>http://www.csse.uwa.edu.au/programming/gsl-1.0/gsl-ref_35.html</ref>. As a first step, the algorithm runs a set of parameters excluding rotation angle in order to set good start values and thus, avoiding possible divergence. If <math>\sigma_x-\sigma_y > 0.01</math> (parameters directly computed in the 2-D Gaussian formula, see above), then another fit is run with the angle parameter. Therefore, the Siril Dynamic PSF provides accurate values for all the fitted parameters.
La minimisation est effectuée en utilisant un algorithme de [https://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm Levenberg-Marquardt algorithm] non linéaire, grâce à la très robuste GNU Scientific Library<ref>http://www.csse.uwa.edu.au/programming/gsl-1.0/gsl-ref_35.html</ref>. Pour la première étape, l'algorithme est exécuté en excluant le paramètre de rotation, pour obtenir plus rapidement de bonnes valeurs de départ, et éviter une divergence. Si <math>\sigma_x-\sigma_y > 0.01</math> (paramètres directement calculés dans la formule Gaussienne 2D, voir plus haut), alors une autre modélisation est lancée avec le calcul de l'angle. Par conséquent, la Dynamic PSF de Siril fournit des valeurs fidèles pour tous les paramètres modélisés.


==Use==
==Utilisation==
Dynamic PSF can be called from two different ways depending on what you want:
La Dynamic PSF peut être appelée de deux façons différentes, en fonction du but recherché :
*You may want to fit just one star. In this case, after drawing a selection around an unsaturated star (this is important for the accuracy of the result) you can either type "PSF" in the prompt of the console or do a right click and choose the "PSF" item. In both case you will be able to copy the result and paste it where you want. In this cased a relative magnitude is computed following <math> -2.5\times \log I</math> where <math>I</math> is the total intensity of the fitted star.
*Pour modéliser seulement une étoile. Dans ce cas, après avoir dessiné un rectangle de sélection sur une étoile non-saturée (c'est important pour la précision du résultat), on peut soit taper "PSF" dans la ligne de commande, soit faire un clic droit dans l'image et lancer la "PSF". Dans les deux cas, vous pourrez copier le résultat et le coller où bon vous semble. Dans ce cas, la magnitude relative est calculée à partir de <math> -2.5\times \log I</math>, où <math>I</math> est l'intensité totale de l'étoile modélisée.
*In the case you want to deal with many stars and average it, you MUST work on the dynamic PSF window by ever clicking on the "Analysis" menu and the "Dynamic PSF" item or drawing a selection around an unsaturated star, doing a right click and selecting the "Pick a star" item.
*Pour modéliser plusieurs étoiles et obtenir des moyennes. Dans ce cas, vous devez travailler avec la fenêtre spéciale pour le PSF, disponible dans le menu Analysis -> Dynamic PSF ou en sélectionnant une étoile non-saturée et en cliquant sur "Pick a star" pour l'ajouter à la liste.


[[File:Siril_PSF_Window.png]]
[[File:Siril_PSF_Window.png]]


The dynamic PSF window is shown and provides very valuable tools:
La fenêtre de Dynamic PSF montrée ci-dessous fournit des outils très utiles :
*You can select and/or remove a star chosing it in a tree list.
*Sélection et/ou suppression d'une étoile dans l'arborescence.
*You can export the result of the PSF in ASCII file.
*Export du résultat dans un fichier ASCII.
*You can run the star detection algorithm by clicking on the corresponding button.
*Lancement de l'algorithme de détection d'étoile, en cliquant sur le bouton correspondant.
*You can average the PSF results and copy and paste the result.
*Calcul de la moyenne des résultats PSF et copie du résultat.


[[File:Siril_PSF_Average.png]]
[[File:Siril_PSF_Average.png]]


==Star detection==
==Détection d'étoiles==
As said before, this dynamic PSF also contains an automatic tool of star detection. This algorithm is based on the publication of Mighell, J. J.<ref>Mighell, K. J. 1999, in ASP Conf. Ser., Vol. 172, ''Astronomical Data Analysis Software and Systems VIII'', eds. D. M. Mehringer, R. L. Plante, & D. A. Roberts (San Francisco: ASP), 317.</ref> which is a simple peak detector algorithm indentifying any pixel that is greater than any of its eight neighbors. In addition to this basic algorithm, a PSF is applied on every possible "detected stars" and Siril rejects all detected structures that don't fulfill a set of prescribed detection criteria. Finaly, a circle is drawn around detected stars. Nevertheless, if a non-stellar object is selected, it is possible to select it and remove it from the list.
Comme indiqué auparavant, la Dynamic PSF contient aussi un outil de détection automatique des étoiles. L'algorithme est basé sur la publication de Mighell, J. J.<ref>Mighell, K. J. 1999, in ASP Conf. Ser., Vol. 172, ''Astronomical Data Analysis Software and Systems VIII'', eds. D. M. Mehringer, R. L. Plante, & D. A. Roberts (San Francisco: ASP), 317.</ref>, un algorithme simple de détection de pics, qui identifie les pixels plus grands que ses 8 voisins. En plus de cet algorithme simple, la PSF est appliquée à chaque candidat détecté, et les faux-positifs sont écartés par cette méthode. Enfin, un cercle est dessiné autour des étoiles détectées. Toutefois, si un objet non-stellaire venait quand même à être détecté, il est possible de le sélectionner dans la liste et de le supprimer manuellement. Durant la détection automatique d'étoiles, le paramètre d'angle n'est pas calculé pour accélérer le processus.
You may notice that during the automatic star detection, no rotation angle are fitted due to speed consideration.


==References==
==References==
<references />
<references />

Revision as of 20:02, 24 September 2018

Other languages:

Dynamic PSF

Dynamic PSF est un outil inspiré de la fonction PixInsight du même nom. Il est utilisé pour modéliser les étoiles non saturées dans une image. Pour l'instant, le modèle est restreint à une fonction Gaussienne 2D, ce qui est suffisant pour la plupart des cas.

<html5media width="750">https://free-astro.org/videos/DPSF.webm</html5media>

Exemple de détection d'étoiles dans une image (les étoiles sont entourées par des cercles oranges) :

Modèle

  • Gaussienne 2D:

[math]\displaystyle{ G(x,y)=B+A e^{-\left( \frac{(x-x_0)^2}{2\sigma^2_x} + \frac{(y-y_0)^2}{2\sigma^2_y} \right)} }[/math]

  • Paramètres:
    • [math]\displaystyle{ B }[/math]: La moyenne du fond ce ciel local, dans la plage de valeurs [0, 1].
    • [math]\displaystyle{ A }[/math]: L'intensité maximale de l'étoile, dans la plage de valeurs [0, 1] : c'est la valeur du pic de la fonction modélisée, localisée sur les coordonnées du centroïde x0 et y0.
    • [math]\displaystyle{ x_0 }[/math] et [math]\displaystyle{ y_0 }[/math]: Les coordonnées du centroïde en pixels, qui est la position du centre de symétrie de la modélisation PSF.
    • [math]\displaystyle{ \text{FWHM}_X }[/math] et [math]\displaystyle{ \text{FWHM}_Y }[/math]: La largeur à mi-hauteur sur les axes X et Y en pixels. Ces paramètres sont calculés de la façon suivante :
      • [math]\displaystyle{ \text{FWHM}_X = 2\sigma_x\sqrt{2\log{2}} }[/math]
      • [math]\displaystyle{ \text{FWHM}_Y = 2\sigma_y\sqrt{2\log{2}} }[/math]
      • Il est possible d'obtenir les paramètres de FWHM en arc-secondes. Pour cela, il faut remplir les champs correspondant à la caméra et à l'optique dans la fenêtre des paramètres. Si les mots-clés standards des fichiers FITS suivants sont présents dans sa HDU, la PSF calculera l'échelle de l'image en arc-secondes par pixel : FOCALLEN, XPIXSZ, YPIXSZ, XBINNING and YBINNING.
    • [math]\displaystyle{ r }[/math]: Le paramètre de rotondité. Il est exprimé par [math]\displaystyle{ \text{FWHM}_Y/\text{FWHM}_X }[/math], avec la condition de symétrie [math]\displaystyle{ \text{FWHM}_X\gt \text{FWHM}_Y }[/math].
    • Angle: L'angle de rotation sur l'axe X par rapport aux coordonnées du centroïde dans la plage de valeurs [-90, 90]. L'angle [math]\displaystyle{ \theta }[/math] est calculé de la façon suivante :
      • [math]\displaystyle{ x' = +x cos \theta + y sin \theta }[/math]
      • [math]\displaystyle{ y' = -x sin \theta + y cos \theta }[/math]
    • RMSE: C'est une estimation de la qualité de la fonction de modélisation. Plus ce nombre est petit, meilleure est la fonction de modélisation.

Minimisation

La minimisation est effectuée en utilisant un algorithme de Levenberg-Marquardt algorithm non linéaire, grâce à la très robuste GNU Scientific Library[1]. Pour la première étape, l'algorithme est exécuté en excluant le paramètre de rotation, pour obtenir plus rapidement de bonnes valeurs de départ, et éviter une divergence. Si [math]\displaystyle{ \sigma_x-\sigma_y \gt 0.01 }[/math] (paramètres directement calculés dans la formule Gaussienne 2D, voir plus haut), alors une autre modélisation est lancée avec le calcul de l'angle. Par conséquent, la Dynamic PSF de Siril fournit des valeurs fidèles pour tous les paramètres modélisés.

Utilisation

La Dynamic PSF peut être appelée de deux façons différentes, en fonction du but recherché :

  • Pour modéliser seulement une étoile. Dans ce cas, après avoir dessiné un rectangle de sélection sur une étoile non-saturée (c'est important pour la précision du résultat), on peut soit taper "PSF" dans la ligne de commande, soit faire un clic droit dans l'image et lancer la "PSF". Dans les deux cas, vous pourrez copier le résultat et le coller où bon vous semble. Dans ce cas, la magnitude relative est calculée à partir de [math]\displaystyle{ -2.5\times \log I }[/math], où [math]\displaystyle{ I }[/math] est l'intensité totale de l'étoile modélisée.
  • Pour modéliser plusieurs étoiles et obtenir des moyennes. Dans ce cas, vous devez travailler avec la fenêtre spéciale pour le PSF, disponible dans le menu Analysis -> Dynamic PSF ou en sélectionnant une étoile non-saturée et en cliquant sur "Pick a star" pour l'ajouter à la liste.

La fenêtre de Dynamic PSF montrée ci-dessous fournit des outils très utiles :

  • Sélection et/ou suppression d'une étoile dans l'arborescence.
  • Export du résultat dans un fichier ASCII.
  • Lancement de l'algorithme de détection d'étoile, en cliquant sur le bouton correspondant.
  • Calcul de la moyenne des résultats PSF et copie du résultat.

Détection d'étoiles

Comme indiqué auparavant, la Dynamic PSF contient aussi un outil de détection automatique des étoiles. L'algorithme est basé sur la publication de Mighell, J. J.[2], un algorithme simple de détection de pics, qui identifie les pixels plus grands que ses 8 voisins. En plus de cet algorithme simple, la PSF est appliquée à chaque candidat détecté, et les faux-positifs sont écartés par cette méthode. Enfin, un cercle est dessiné autour des étoiles détectées. Toutefois, si un objet non-stellaire venait quand même à être détecté, il est possible de le sélectionner dans la liste et de le supprimer manuellement. Durant la détection automatique d'étoiles, le paramètre d'angle n'est pas calculé pour accélérer le processus.

References

  1. http://www.csse.uwa.edu.au/programming/gsl-1.0/gsl-ref_35.html
  2. Mighell, K. J. 1999, in ASP Conf. Ser., Vol. 172, Astronomical Data Analysis Software and Systems VIII, eds. D. M. Mehringer, R. L. Plante, & D. A. Roberts (San Francisco: ASP), 317.