2015-10-09 1 views
0

J'ai une image d'un faisceau de protons frappant une feuille de scintillateur. Cette image a été filtrée sur un fichier bmp de 8 bits en échelle de gris. Je peux utiliser python/matlab pour obtenir une grande liste de points de données, où chaque point consiste en une position (x,y) et une magnitude (z).Données ajustées à la courbe gaussienne multivariée

spot beam

enter image description here

zoomé parcelle de surface enter image description here

Je veux modéliser mes z données avec gaussiennes, puis trouver le "largeur à mi-Max" de la courbe. Comment puis-je adapter les gaussiennes multivariées à mes données? Y at-il un tel paquet de Matlab/Python ou de toute autre manière, code etc.?

+0

Hey, Mike. Problème intéressant! Il y aura deux valeurs pour Full Width à Half Max (FWHM) puisque nous regardons une distribution gaussienne à deux dimensions, correct? –

+0

Hey, avez-vous regardé ce lien [fit] (http://www.mathworks.com/help/curvefit/fit.html)? N'est-ce pas exactement ce dont vous avez besoin? –

+0

@Takeshi H. Je pense que vous avez raison. – Mike

Répondre

0

Cela semble un travail parfaitement adapté à la racine, et ROOT fournit des liaisons python. Si vous êtes familier avec ROOT, vous avez juste besoin de créer un histogramme TH2 et de remplir avec vos points, où l'intensité de votre image couleur 8 bits est le nombre d'histogrammes. Vous définissez ensuite une formule TF2 comme gaussienne bidimensionnelle et l'adaptez à la méthode FIT (algorithme minuit).

quelques liens: https://root.cern.ch/root/html534/guides/users-guide/FittingHistograms.html https://root.cern.ch/root/html/tutorials/fit/fit2.C.html