{ "cells": [ { "cell_type": "markdown", "id": "737b673d", "metadata": {}, "source": [ "# Fit d'une image\n", "\n", "Le fichier {download}`data/double_star.txt` contient une image de 64 par 64 pixels d'une étoile double. L'objectif de cette partie est d’ajuster cette image par la somme de deux Gaussiennes afin de déterminer la distance entre les étoiles.\n", "\n", "\n", "1. Charger et afficher le fichier à l'aide de la fonction imshow\n", "2. Définir une fonction de fit et tracer une image qui ressemble à celle ci. On pourra utiliser la fonction ```np.meshgrid```.\n", "\n", "Il n'est pas possible de travailler directement sur des tableaux 2D pour le fit : l'ensemble des pixels de l'image doit être sous forme d'un tableau (taille $N$) ainsi que l'ensemble de coordonnées $(x,y)$ des ces points (tailles $N\\times 2$).\n", "\n", "3. Ecrire une fonction qui s'adapte au contraite du fit et effectuer le fit. \n", "\n", "4. Quelle est la distance et son incertitude (en pixel) entre les deux étoiles ?" ] }, { "cell_type": "markdown", "id": "da1953d8", "metadata": { "tags": [ "sol" ] }, "source": [ "-------------------\n", "\n", "## Solution" ] }, { "cell_type": "code", "execution_count": 1, "id": "a3e43bbc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Question 1\n", "import numpy as np\n", "from matplotlib.pyplot import figure\n", "from scipy.optimize import curve_fit\n", "\n", "image = np.loadtxt('data/double_star.txt')\n", "\n", "fig = figure()\n", "ax = fig.subplots()\n", "ax.set_aspect(1)\n", "ax.imshow(image)" ] }, { "cell_type": "code", "execution_count": 2, "id": "5c9c232c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Question 2\n", "ny, nx = image.shape\n", "X,Y = np.meshgrid(range(nx), range(ny))\n", "\n", "def gaussienne_simple(x, y, amplitude, center_x, center_y, diameter):\n", " return amplitude*np.exp(-((x-center_x)**2 + (y-center_y)**2)/diameter**2)\n", "\n", "def gaussienne_double(X, Y, amplitudeA, centerA_x, centerA_y, diameterA, amplitudeB, centerB_x, centerB_y, diameterB):\n", " return (gaussienne_simple(X, Y, amplitudeA, centerA_x, centerA_y, diameterA) + \n", " gaussienne_simple(X, Y, amplitudeB, centerB_x, centerB_y, diameterB))\n", "p0 = (1, 30, 25, 2, 1, 30, 37, 2)\n", "image_test = gaussienne_double(X, Y, *p0)\n", "\n", "fig = figure()\n", "ax = fig.subplots()\n", "ax.set_aspect(1)\n", "ax.imshow(image_test)" ] }, { "cell_type": "code", "execution_count": 3, "id": "8e91aa9f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD7CAYAAACscuKmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAP10lEQVR4nO3da4xc9X3G8e+zVxtf8AVwtjatibCCrDaYaMtFoIjgkrg0CrxAKDSqrMqS39CKKKkSaKWqkVopSFUIL6pIVqDxCxogF2qEoiSuC6qqVoYlGGLsgB1qwMb2xmCDzWW93v31xZzdOWfYZcc758ys/X8+0mjObeb8tLPPnP+5zP8oIjCz819Xpwsws/Zw2M0S4bCbJcJhN0uEw26WCIfdLBEthV3SBkkvS9ov6Z6yijKz8mm259kldQOvADcDB4FngTsjYk955ZlZWXpaeO3VwP6IeBVA0iPArcC0Ye9Tf8xjQQurNLOP8yHvcTpGNNW8VsK+EngjN34QuObjXjCPBVyj9S2s0sw+zs7YMe28VsLeFEmbgc0A87ig6tWZ2TRaOUB3CLg0N74qm1YQEVsiYjAiBnvpb2F1ZtaKVsL+LLBG0mWS+oAvA0+UU5aZlW3WzfiIOCPpr4BfAN3AQxHxUmmVmVmpWtpnj4ifAT8rqRYzq5CvoDNLhMNulgiH3SwRDrtZIhx2s0Q47GaJcNjNEuGwmyXCYTdLhMNulgiH3SwRDrtZIhx2s0Q47GaJcNjNEuGwmyXCYTdLhMNulgiH3SwRDrtZIhx2s0Q47GaJcNjNEuGwmyXCYTdLxIxhl/SQpGFJu3PTlknaLmlf9ry02jLNrFXNbNl/AGxomHYPsCMi1gA7snEzm8NmDHtE/BfwdsPkW4Gt2fBW4LZyyzKzss12n31FRBzOho8AK0qqx8wq0vIBuogIIKabL2mzpCFJQ6OMtLo6M5ul2Yb9qKQBgOx5eLoFI2JLRAxGxGAv/bNcnZm1arZhfwLYmA1vBLaVU46ZVaWZU28/BP4X+JSkg5I2Ad8Gbpa0D/iTbNzM5rCemRaIiDunmbW+5FrMrEK+gs4sEQ67WSIcdrNEOOxmiXDYzRLhsJslwmE3S4TDbpYIh90sEQ67WSIcdrNEOOxmiXDYzRLhsJslwmE3S4TDbpYIh90sEQ67WSIcdrNEOOxmiXDYzRLhsJslwmE3S4TDbpYIh90sEc3c/ulSSU9J2iPpJUl3Z9OXSdouaV/2vLT6cs1stprZsp8Bvh4Ra4FrgbskrQXuAXZExBpgRzZuZnNUM/d6OwwczoZPStoLrARuBW7MFtsKPA18s5IqrXxSbrjJvbkYbxiP8uqxyp3VPruk1cBVwE5gRfZFAHAEWFFuaWZWpqbDLmkh8BPgqxHxbn5eRAQw5de8pM2ShiQNjTLSUrFmNntNhV1SL7WgPxwRP80mH5U0kM0fAIanem1EbImIwYgY7KW/jJrNbBZm3GeXJOBBYG9EfCc36wlgI/Dt7HlbJRVaObq6i6N9vZPDmj+/uGx3bhswVt9Pjw8+KCw2fno0NzLWeo1WqRnDDlwP/AXwa0m7sml/Sy3kj0naBLwG3FFJhWZWimaOxv83oGlmry+3HDOrSjNbdjtX5U6vdc2fV5jVdclFk8OnVxavhzqzsN7E7zlVb6r3HTpefP/hY5OD4++/X5zn03Jzji+XNUuEw26WCDfjz2Pq65sc7lpWbKqf/HT9Gqijf1w8Un96INd0f7N+pP4Tz/QVllu4q34EPvJH5oEYPT2Liq1K3rKbJcJhN0uEw26WCO+zn29yp9vUU/94x5ctKiz29hX1edes312Y97VPbJ8c/ufDX5gcfuHk2sJyF7xef0+9XTwtF2dy+/A+DTcneMtulgiH3SwRbsYnInqK3+tjuR8gXrHgaGHeuv76zDUL6j9m/FV/sRmff8/prqe2ucNbdrNEOOxmiXDYzRLhffbzTf4011j9ctaud4sdTyx6ffHk8Pd3XV+Y9z+//8nJ4T2vDUwOX/R68RRa/j1jrKHzCp9um3O8ZTdLhMNulgg3489j+T7iuo8Vr3BbvqvemUXv+4sL8w4vWT05PHC83gfd4n3vFFeQe8/xhl+92dzjLbtZIhx2s0S4GX8+y3XvPH7yZGFW14F683zJW4V7fhD9uW6mR+rN82h4j/FT7025LpubvGU3S4TDbpYIh90sEd5nT0ScOVMYH3v31OSw3iteXUdX7jds4/Ur4T5ylZz3088pM27ZJc2T9IykFyS9JOlb2fTLJO2UtF/So5L6ZnovM+ucZprxI8BNEXElsA7YIOla4D7g/oi4HDgObKqsSjNr2Yxhj5qJNl9v9gjgJuDH2fStwG1VFGgVGR+bfMTo6eJjZKT+yE3Pv8ZN+HNPs/dn787u4DoMbAd+C5yIiIkdwYPAykoqNLNSNBX2iBiLiHXAKuBq4IpmVyBps6QhSUOjjMyuSjNr2VmdeouIE8BTwHXAEkkTR/NXAYemec2WiBiMiMFe+qdaxMzaoJmj8RdLWpINzwduBvZSC/3t2WIbgW0V1WhmJWjmPPsAsFVSN7Uvh8ci4klJe4BHJP0j8DzwYIV1mlmLZgx7RLwIXDXF9Fep7b+b2TnAl8uaJcJhN0uEw26WCP8Qxgp3fq2NT7MNiPGGcXcXfS7xlt0sEQ67WSIcdrNEeJ89Ueqpf/TqL17GrPnzGhcHID74sDg+Uv+tQ2PnGDb3eMtulgiH3SwRbsanoqu7OLpoUX3k9y4pzPtwYOGUbzHv8KnCuA4dmRzO92kHuHOLOchbdrNEOOxmiXDYzRLhffZEdPX1FidctHRy8O11Swuz3vqj+uWz+Qtpl79YXG7pyOn6ch85Led99rnGW3azRDjsZolwM/58lv81W3fx1Nv44vmTw6dWFb/zl/zhscnhsfH6e5x6a3lxuYX198hfkQcQp0/nRvzruLnAW3azRDjsZolwMz4VDU3prg/rP1zpP1Gcd+zNC3Ovqw8ub1hOI6P1xRrv8Oqm+5zjLbtZIhx2s0Q47GaJ8D77+Sy331w4FQbo2PHJ4eUvFjur6H9nPlNZ+Nr7xQnHTtTf351XzHlNb9mz2zY/L+nJbPwySTsl7Zf0qKS+6so0s1adTTP+bmo3dJxwH3B/RFwOHAc2lVmYmZWrqWa8pFXAnwH/BHxNkoCbgD/PFtkK/APwvQpqtBI0nhobP/HO5HDPK8Um+NI3F0z9HqfeK75HrsOKj5x6szmn2S37d4FvABN3CVgOnIiIif+Sg8DKckszszI1c3/2LwLDEfHcbFYgabOkIUlDo4zM/AIzq0QzzfjrgS9JugWYBywGHgCWSOrJtu6rgENTvTgitgBbABZrmS+rMuuQZu7Pfi9wL4CkG4G/iYivSPoRcDvwCLAR2FZdmdayhstX832+j40W99nV2HnkxGsa98vdqeQ5pZWLar5J7WDdfmr78A+WU5KZVeGsLqqJiKeBp7PhV4Gryy/JzKrgK+jsI83xcPP8vORr480S4bCbJcJhN0uEw26WCIfdLBEOu1kiHHazRDjsZolw2M0S4bCbJcJhN0uEw26WCIfdLBEOu1kiHHazRDjsZolw2M0S4bCbJcJhN0uEw26WCIfdLBEOu1kiHHazRDjsZolo9v7sB4CTwBhwJiIGJS0DHgVWAweAOyLieDVlmlmrzmbL/rmIWBcRg9n4PcCOiFgD7MjGzWyOaqUZfyuwNRveCtzWcjVmVplmwx7ALyU9J2lzNm1FRBzOho8AK0qvzsxK0+yNHW+IiEOSLgG2S/pNfmZEhKSY6oXZl8NmgHlc0FKxZjZ7TW3ZI+JQ9jwMPE7tVs1HJQ0AZM/D07x2S0QMRsRgL/3lVG1mZ23GsEtaIGnRxDDweWA38ASwMVtsI7CtqiLNrHXNNONXAI9Lmlj+3yLi55KeBR6TtAl4DbijujLNrFUzhj0iXgWunGL6W8D6Kooys/L5CjqzRDjsZolw2M0S4bCbJcJhN0uEw26WCIfdLBEOu1kiHHazRDjsZolw2M0S4bCbJcJhN0uEw26WCIfdLBEOu1kiHHazRDjsZolw2M0S4bCbJcJhN0uEw26WCIfdLBEOu1kiHHazRDQVdklLJP1Y0m8k7ZV0naRlkrZL2pc9L626WDObvWa37A8AP4+IK6jdCmovcA+wIyLWADuycTObo5q5i+uFwGeBBwEi4nREnABuBbZmi20FbqumRDMrQzNb9suA3wH/Kul5Sd/Pbt28IiIOZ8scoXa3VzObo5oJew/wGeB7EXEV8B4NTfaICCCmerGkzZKGJA2NMtJqvWY2S82E/SBwMCJ2ZuM/phb+o5IGALLn4aleHBFbImIwIgZ76S+jZjObhRnDHhFHgDckfSqbtB7YAzwBbMymbQS2VVKhmZWip8nl/hp4WFIf8Crwl9S+KB6TtAl4DbijmhLNrAxNhT0idgGDU8xaX2o1ZlYZX0FnlgiH3SwRDrtZIhx2s0Q47GaJcNjNEuGwmyVCtcva27Qy6XfULsC5CDjWthVPbS7UAK6jkesoOts6/iAiLp5qRlvDPrlSaSgiprpIJ6kaXIfraGcdbsabJcJhN0tEp8K+pUPrzZsLNYDraOQ6ikqroyP77GbWfm7GmyWirWGXtEHSy5L2S2pbb7SSHpI0LGl3blrbu8KWdKmkpyTtkfSSpLs7UYukeZKekfRCVse3sumXSdqZfT6PZv0XVE5Sd9a/4ZOdqkPSAUm/lrRL0lA2rRP/I5V12962sEvqBv4F+FNgLXCnpLVtWv0PgA0N0zrRFfYZ4OsRsRa4Frgr+xu0u5YR4KaIuBJYB2yQdC1wH3B/RFwOHAc2VVzHhLupdU8+oVN1fC4i1uVOdXXif6S6btsjoi0P4DrgF7nxe4F727j+1cDu3PjLwEA2PAC83K5acjVsA27uZC3ABcCvgGuoXbzRM9XnVeH6V2X/wDcBTwLqUB0HgIsaprX1cwEuBP6P7Fha2XW0sxm/EngjN34wm9YpHe0KW9Jq4CpgZydqyZrOu6h1FLod+C1wIiLOZIu06/P5LvANYDwbX96hOgL4paTnJG3OprX7c6m023YfoOPju8KugqSFwE+Ar0bEu52oJSLGImIdtS3r1cAVVa+zkaQvAsMR8Vy71z2FGyLiM9R2M++S9Nn8zDZ9Li112z6Tdob9EHBpbnxVNq1TmuoKu2ySeqkF/eGI+GknawGI2t19nqLWXF4iaaJfwnZ8PtcDX5J0AHiEWlP+gQ7UQUQcyp6HgcepfQG2+3Npqdv2mbQz7M8Ca7IjrX3Al6l1R90pbe8KW5Ko3UZrb0R8p1O1SLpY0pJseD614wZ7qYX+9nbVERH3RsSqiFhN7f/hPyPiK+2uQ9ICSYsmhoHPA7tp8+cSVXfbXvWBj4YDDbcAr1DbP/y7Nq73h8BhYJTat+cmavuGO4B9wH8Ay9pQxw3UmmAvAruyxy3trgX4NPB8Vsdu4O+z6Z8EngH2Az8C+tv4Gd0IPNmJOrL1vZA9Xpr43+zQ/8g6YCj7bP4dWFpWHb6CziwRPkBnlgiH3SwRDrtZIhx2s0Q47GaJcNjNEuGwmyXCYTdLxP8DmrBMT5PljsUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Question 3\n", "def gaussienne_double_fit(xdatas, *args):\n", " x, y = xdatas\n", " return gaussienne_double(x, y, *args)\n", "\n", "popt, cov_mat = curve_fit(gaussienne_double_fit, [X.flatten(), Y.flatten()], image.flatten(), p0=p0)\n", "\n", "image_fit = gaussienne_double(X, Y, *popt)\n", "\n", "fig = figure()\n", "ax = fig.subplots()\n", "ax.set_aspect(1)\n", "ax.imshow(image_fit)" ] }, { "cell_type": "code", "execution_count": 4, "id": "731501ba", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "La distance entre les étoiles est de 12.464 pixels\n" ] } ], "source": [ "# Question 4\n", "amplitudeA, centerA_x, centerA_y, diameterA, amplitudeB, centerB_x, centerB_y, diameterB = popt\n", "\n", "d = np.sqrt((centerA_x - centerB_x)**2 + (centerA_y - centerB_y)**2)\n", "print(f'La distance entre les étoiles est de {d:.3f} pixels')" ] }, { "cell_type": "code", "execution_count": 5, "id": "29d8fc50", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L'incertitude est de 0.013 pixels\n" ] } ], "source": [ "var_x = cov_mat[1, 1] + cov_mat[5, 5] - 2*cov_mat[1, 5]\n", "var_y = cov_mat[2, 2] + cov_mat[6, 6] - 2*cov_mat[2, 6]\n", "\n", "std_distance = np.sqrt(var_x + var_y)\n", "print(f\"L'incertitude est de {std_distance:.3f} pixels\")" ] }, { "cell_type": "code", "execution_count": null, "id": "6458f19f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }