{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Modelling and fitting a single line spectrum" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import orb.fit\n", "import pylab as pl\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Retrieve the observation parameters of a cube of data\n", "\n", "Basic observation parameters can be retrieved from any data cube. \n", "They are useful to simulate a spectrum which corresponds to your data." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# import base class for the manipulation of a SITELLE spectral cube: HDFCube\n", "from orcs.process import SpectralCube" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[0mdev.dfbca|INFO| Cube is level 3\u001b[0m\n", "\u001b[0mdev.dfbca|INFO| shape: (2048, 2064, 840)\u001b[0m\n", "\u001b[0mdev.dfbca|INFO| wavenumber calibration: True\u001b[0m\n", "\u001b[0mdev.dfbca|INFO| flux calibration: True\u001b[0m\n", "\u001b[0mdev.dfbca|INFO| wcs calibration: True\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "step (scan step size in nm): 2943.025792\n", "order: 8.0\n", "number of steps: 840\n", "zpd_index 168\n", "axis correction coefficient (calibration coefficient of the wavenumber axis which only depends on theta) 1.0374712062298759\n" ] } ], "source": [ "# load spectral cube\n", "cube = SpectralCube('/home/thomas/M31_SN3.merged.cm1.1.0.hdf5')\n", "print('step (scan step size in nm): ', cube.params.step)\n", "print('order: ', cube.params.order)\n", "print('number of steps: ', cube.params.step_nb)\n", "print('zpd_index', cube.params.zpd_index)\n", "print('axis correction coefficient (calibration coefficient of the wavenumber axis which only depends on theta)', cube.params.axis_corr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model a spectrum with one Halpha line" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "incident angle theta (in degrees): 15.445939567249903\n" ] }, { "data": { "text/plain": [ "(15200, 15270)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from orb.core import Lines\n", "halpha_cm1 = Lines().get_line_cm1('Halpha')\n", "\n", "step = 2943\n", "order = 8\n", "step_nb = 840\n", "axis_corr = 1.0374712062298759\n", "theta = orb.utils.spectrum.corr2theta(axis_corr)\n", "print('incident angle theta (in degrees):', theta)\n", "zpd_index = 168\n", "\n", "# model spectrum\n", "velocity = 250\n", "broadening = 10.\n", "spectrum_axis, spectrum = orb.fit.create_cm1_lines_model_raw([halpha_cm1], [1], step, order, step_nb, axis_corr, zpd_index=zpd_index, fmodel='sincgauss',\n", " sigma=broadening, vel=velocity)\n", "\n", "# add noise (can be commented to obtain a noise free spectrum)\n", "spectrum += np.random.standard_normal(spectrum.shape) * 0.01\n", "\n", "pl.plot(spectrum_axis, spectrum)\n", "pl.xlim((15200, 15270))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fit the spectrum with a classic Levenberg-Marquardt algorithm" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "velocity (in km/s): [250.39(27)]\n", "broadening (in km/s): [11.24(76)]\n", "flux (in the unit of the spectrum amplitude / unit of the axis fwhm): [1.200(16)]\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nm_laser = 543.5 # wavelength of the calibration laser, in fact it can be any real positive number (e.g. 1 is ok)\n", "# note: an apodization of 1 means: no apodization (which is the case here)\n", "#\n", "# pos_cov is the velocity of the lines in km/s. It is a covarying parameter,\n", "# because the reference position -i.e. the initial guess- of the lines is set\n", "# \n", "# sigma_guess is the initial guess on the broadening (in km/s)\n", "fit = orb.fit.fit_lines_in_spectrum(spectrum, [halpha_cm1], step, order, nm_laser, theta, zpd_index=zpd_index, \n", " wavenumber=True, apodization=1, fmodel='sincgauss',\n", " pos_def=['1'], \n", " pos_cov=velocity, sigma_guess=broadening)\n", "\n", "# velocity and broadening should be exact at the machine precision if no noise is present in the spectrum.\n", "print('velocity (in km/s): ', fit['velocity_gvar'])\n", "print('broadening (in km/s): ', fit['broadening_gvar'])\n", "print('flux (in the unit of the spectrum amplitude / unit of the axis fwhm): ', fit['flux_gvar'])\n", "pl.plot(spectrum_axis, spectrum, label='real_spectrum')\n", "pl.plot(spectrum_axis, fit['fitted_vector'], label='fit')\n", "pl.xlim((15200, 15270))\n", "pl.legend()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.7.5" }, "toc": { "colors": { "hover_highlight": "#DAA520", "navigate_num": "#000000", "navigate_text": "#333333", "running_highlight": "#FF0000", "selected_highlight": "#FFD700", "sidebar_border": "#EEEEEE", "wrapper_background": "#FFFFFF" }, "moveMenuLeft": true, "nav_menu": { "height": "98px", "width": "252px" }, "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 4, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false, "widenNotebook": false } }, "nbformat": 4, "nbformat_minor": 4 }