Lugovtsov/5.2.9-determination-of-atmospheric-composition/plots.ipynb

244 lines
208 KiB
Plaintext
Raw Normal View History

2023-10-05 18:34:18 +03:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "c14446e5-2129-4747-85de-4784341bfc13",
"metadata": {},
"outputs": [],
"source": [
"# %load /home/glebi/git/experiment-automation/processing_tools.py\n",
"import numpy as np\n",
"from scipy.optimize import curve_fit\n",
"import pandas as pd\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib\n",
"import scienceplots\n",
"\n",
"plt.style.use(['science', 'russian-font'])\n",
"\n",
"matplotlib.rcParams.update({\n",
" 'figure.figsize': [10, 4],\n",
" 'savefig.facecolor': 'white',\n",
" 'figure.dpi': 150.0,\n",
" 'font.size': 12.0,\n",
"})\n"
]
},
{
"cell_type": "code",
"execution_count": 117,
"id": "b6e60ac4-5589-4b8f-ab38-42169e7fd345",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.colors as mcolors\n",
"from scipy.signal import find_peaks"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "3de58523-c5e9-427a-8f44-0c2e825fe184",
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\"data_4.csv\", sep=\"\\t\")\n",
"wl = df[\"ангстремы\"]\n",
"cols = df.columns[1:]\n",
"colors = [\"red\", \"green\", \"green\", \"blue\"]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0f5054ea-587f-44f7-9f1c-0a13140d0c5f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABNgAAAH6CAYAAADV6vHmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOzdd3hT5RcH8G+SJh3pbqFll5a9KRuUXQGZsgREwAHIEhWloiBg/SkgyBIZKgKisofILntDy14FWgqlg5bunTTJ74+39yY3uUkH3ZzP8/D0jvfevCmlJCfnPUei0+l0IIQQQgghhBBCCCGEFIq0tCdACCGEEEIIIYQQQkh5RgE2QgghhBBCCCGEEEJeAgXYCCGEEEIIIYQQQgh5CRRgI4QQQgghhBBCCCHkJVCAjRBCCCGEEEIIIYSQl2BV2hMoq7RaLbKysmBlZQWJRFLa0yGEEEIIIYQQQgghpUSn0yEnJwc2NjaQSk3z1SjAZkZWVhaUSmVpT4MQQgghhBBCCCGElBHp6emws7MzOU4BNjOsrNi3Jj09HXK53OS8Wq2GUqk0e74klaW50HzKz1xoPuVrPmVpLjSf8jMXmk/5mk9ZmgvNp/zMheZTvuZTluZC8yk/c6H5lK/5lKW50HyKdi7ceC5eZIwCbGZwy0LlcrnFb3Re50tSWZoLQPOxpCzNBaD55KUszacszQWg+VhSluYC0HzyUpbmU5bmAtB8LClLcwFoPnkpS/MpS3MBaD6WlKW5ADSfvJSl+ZSluQA0H0sKOhdzZcSoyUEhSaVSzJ07V3Td7auurH1vytJ8ytJcyqKy9v0pS/MpS3Mpi8rS96cszQUoe/Mpa8rS96cszQUoe/MpS8ra94bmU36Ute8Nzaf8KGvfG5pP+VHWvjdlaT5FPReJTqfTFcmdKhi1Wg2FQgGVSlVmoqrmlKe5krKFfnZIYdHPDiks+tkhhUU/O6Sw6GeHFAb93JDCop+diiuvv9vSDxkSQgghhBBCCCGEEFKOUQ22PKjVagAsdVAmk5XybMSVpRRLUr7Qzw4pLPrZIYVFPzuksOhnhxQW/eyQwqCfG1JY9LNT8Wg0Gmi1Wj4+ZA4tETWDS/3jzJ07F/PmzSu9CRFCCCGEEEIIIYSQEjVv3jzMnz+f3ze3RJQCbGZwATauXWtZzmAjhBBCCCGEEEIIIUXPMINNqVSaDbDREtE8lKXWsYQQQgghhBBCCCGk5MhksnwlXJWLRcGBgYEYNmwY/Pz84OPjAz8/P1y9elV07KJFizBs2DDs2LEDYWFhAICwsDD4+/vDz8+vJKdNCCGEEEIIIYQQQl4BZT6DbdGiRQCA7du388cmTpyIVq1aYebMmVi4cKHJNTt27MCOHTsEx7y9vREcHFy8kyWEEEIIIYQQQgghr5wyncEWFhaG+Ph4zJw5U3B87dq18PX1xaJFixAYGGhy3dChQ+Hr6wtvb28MHToUa9euRWhoKJydnUto5oQQQgghhBBCCCHkVVGmM9jWrl2LNm3aiJ6bNWsWhg0bhrVr16Jnz56CcwsXLoS3t3dJTJEQQgghhBBCCCGEvOLKdAbb1atXMWzYMKxbt87knK+vLz+GEEIIIYQQQgghhJDSUqYDbH5+fnB2dkbr1q1NziUlJZX8hAghhBBCCCGEEEIIMVKml4jOnDnTpP4aJygoCIA+k81QUlISFi1ahPj4eH7fz88PQ4cOLb7JEkIIIYQQQgghhJBXUpkOsFnCdRWdNWuWyTl/f39s375d0NTAx8cHYWFhZgN25qjVapNjUqkUMpmsYBMmhBBCCCGEEEIIIWWeRqOBVqsVHBOLDxkq00tEzQkMDERgYCBmzpxpksE2dOhQHD161KRjqL+/P/z9/Qtcs02pVEKhUAj+BAQEvOxTIIQQQgghhBBCCCFlUEBAgEksSKlUWrxGotPpdCU0vyKRlJSE2rVro2fPnnwWW36EhYXBx8cHQ4cOzdd1arUaCoUC6enpkMvlgnOUwUYIIYQQQgghhBBSMZnLYFMqlVCpVCZxIqAcZrCNHz++wME1AHB1dQVQ8K6jcrnc5A8F1wghhJDS9fPlnzF021CkqdJEz2u0GqRmp5bwrAghhBBCSEUgk8lE40GWlKsAm7+/PwCYDa4tWrQILi4uCAsLM3uPhISEYpkbIYQQUhp0Oh3KWTL6S8vR5mDawWnYeW8nXv/jddExw3cMR42lNfA48TF/7FnKM9RYWgOfHvq0pKb60v659Q+Ohh4tlnvnaHMQkxZTLPcmhBBCCHnVlJsA27p16xAWFmYSXDMMph09ehRJSUlISkoyuZ4LrLVu3bpY50kIIYSUFJ1Oh64bu6LNr22Qo80p7emUGP+j/vz29Zjr2H1vt8mYXfd2ITk7GeP3jeePbby+Ec9SnmHZpWXQaDUlMteXEZ4UjlG7RuGNzW/Ad60v1gWvw4uMF0V2/29OfIMqS6pg251tr1yQlhBCCCGkqJWLAFtgYCCOHj0qmrm2cOFCftvX1xfBwcEmjQ+4ewCAn59f8U2UEEIIKUFxGXE4/eQ0gqOD8SD+QWlPp0Tcf3EfP138SXBs8LbBgv10VTq/ffHZRag0KgBAUHQQf1zs+6XT6ZCpzsz3XH658gv6/d0PCZnsQ7zQhFAsv7hcNCvs62NfY+yesQUK7IUmhPLb12KuYeJ/E1Hpx0pYdnEZEjMT832fyJRIk8CcRqvBD2d/AAC8veNtNF3dlIJshBBCCCEvocwH2ListfzUXJs4cSK2bt0qem779u3w9vbGzJkzi3qKhBBCSIlLyEyAx2IPfn/WsVmlOJuS89Wxr/jtH3r8wG9HpkTy26uurOK309XpOP74OLJysrDn/h7+eHB0sOC+F59dhPRbKey+t4NkvgSS+RKL87j07BKmHJiC/Q/3Y8WlFQhLDEOdlXXwyeFPUGVJFewL2cdnFT5OfIzvz36PTTc24VzEuXw/1/CkcNHjnx7+FIvPL87z+rDEMDRf0xzVl1ZH21/bCrIcD4ceFoy9E3cH12Ku5XtuhBBCCCFEqEwH2JKSktCqVSsEBQWhVatWJn9cXFzg7OzMj/f29oabmxsWLVokuI+/vz+CgoIK3BiBEEIIKYuepz2H2yI3wbF/Q/4tpdmUrKfJTwEAHWt0xKFHh/jjDxMeAgACTgXAP9BfcM3V6Ks4H3FecCwoKkiwv+nGJpPH+v3q72bn8fs1/bnwpHCcCj8lOD9gywDIA+RQaVRovqa5fp7xD03utfPuTjRb3QzXooUBrmcpzwAAXb26mlyzJniN2blxvj31LW4+vwkAeJz0GJeeXeLPXY68bDKe+55otBo+K48QQgghhORPmQ6wDRs2DElJSbh69aron6SkJLRp00ZwzcyZM+Hr64uJEydi2LBh8PPzQ1JSEh4/fiy6dJQQQggpb0btGiV6fNj2YQW6T3RqNKJTo4tiSkXivwf/QTJfgvH/jjc7xlZuCwA4H3Eep57og1pPkp4AAL45+Y3JNdeir5ks2zQOuD1KeGRy3fHw42bnEZmqz5jbfX833v/3fdFx1t9ZI1Wl72ZqHNiLSI7A0O1DcSv2Fj7c9yF/PC49DvNOzQMAeDl54eZHN3HpQ32ArLKystm5AYBKo8LGGxsFx3bc3QGAPddlF5cBAGa9NgsOCgd+LhnqDNRaVgtui9zgudgTG65vsPg4hBBCCCGEkeio4IYotVoNhUKB9PR0yOVySKVSyGSy0p4WIYQQIli+mPJlChwXOPL72m+0kEgsL2/cdmcbkrKSMPv4bCRnJyPJP4kPXAHAuafncObpGSRlJWF0s9FoUrlJ0T8JEbWW1eIz1HRzxV+e+KzwQViiabfwb7t+i+ntp8NpgZPJuaaVm2Js87H4/OjnqO1cG4+TWGfR+1Puo757feh0OjRY1cCkLltLz5a4OvGqyf10Oh2k34p/RtnCswWux1y3+DxjZsTAw94DKdkpgvlWdaiKyM8ikanOhN33dhbv4aBwQPKXyZBIJHie9hwfH/oYQxsOxbDGw5ChzoDXMi/EZcQJrvG090T0jGiT5a95zdnc3wUhhBBCyKtAo9FAq9VCrVZDqVRCpVJ
"text/plain": [
"<Figure size 1500x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for i, col in enumerate(cols):\n",
" plt.plot(wl, df[col], color = colors[i], label=col)\n",
" \n",
"plt.legend() \n",
"\n",
"plt.savefig(\"rggb.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 167,
"id": "4d9b0b6e-fc51-4a28-956b-cae2a494dd81",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sum_int = df[cols].sum(axis=1)\n",
"\n",
"from_idx = 800\n",
"to_idx = -100\n",
"\n",
"y = np.array(sum_int[from_idx:to_idx])\n",
"x = np.array(wl[from_idx:to_idx])\n",
"\n",
"peaks, prop = find_peaks(-y, prominence=5, distance=10)\n",
"plt.plot(x[peaks], y[peaks], \"x\", color=\"C2\")\n",
"plt.plot(x, y, lw=.5)\n",
"\n",
"plt.savefig(\"sum.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 168,
"id": "e604a87a-9543-431b-bec7-c23737c32be5",
"metadata": {
"jupyter": {
"source_hidden": true
},
"tags": []
},
"outputs": [],
"source": [
"def wavelength_to_rgb(wavelength, gamma=0.8):\n",
" ''' taken from http://www.noah.org/wiki/Wavelength_to_RGB_in_Python\n",
" This converts a given wavelength of light to an \n",
" approximate RGB color value. The wavelength must be given\n",
" in nanometers in the range from 380 nm through 750 nm\n",
" (789 THz through 400 THz).\n",
"\n",
" Based on code by Dan Bruton\n",
" http://www.physics.sfasu.edu/astro/color/spectra.html\n",
" Additionally alpha value set to 0.5 outside range\n",
" '''\n",
" wavelength = float(wavelength)\n",
" if wavelength >= 380 and wavelength <= 750:\n",
" A = 1.\n",
" else:\n",
" A=0.5\n",
" if wavelength < 380:\n",
" wavelength = 380.\n",
" if wavelength >750:\n",
" wavelength = 750.\n",
" if wavelength >= 380 and wavelength <= 440:\n",
" attenuation = 0.3 + 0.7 * (wavelength - 380) / (440 - 380)\n",
" R = ((-(wavelength - 440) / (440 - 380)) * attenuation) ** gamma\n",
" G = 0.0\n",
" B = (1.0 * attenuation) ** gamma\n",
" elif wavelength >= 440 and wavelength <= 490:\n",
" R = 0.0\n",
" G = ((wavelength - 440) / (490 - 440)) ** gamma\n",
" B = 1.0\n",
" elif wavelength >= 490 and wavelength <= 510:\n",
" R = 0.0\n",
" G = 1.0\n",
" B = (-(wavelength - 510) / (510 - 490)) ** gamma\n",
" elif wavelength >= 510 and wavelength <= 580:\n",
" R = ((wavelength - 510) / (580 - 510)) ** gamma\n",
" G = 1.0\n",
" B = 0.0\n",
" elif wavelength >= 580 and wavelength <= 645:\n",
" R = 1.0\n",
" G = (-(wavelength - 645) / (645 - 580)) ** gamma\n",
" B = 0.0\n",
" elif wavelength >= 645 and wavelength <= 750:\n",
" attenuation = 0.3 + 0.7 * (750 - wavelength) / (750 - 645)\n",
" R = (1.0 * attenuation) ** gamma\n",
" G = 0.0\n",
" B = 0.0\n",
" else:\n",
" R = 0.0\n",
" G = 0.0\n",
" B = 0.0\n",
" return (R,G,B,A)"
]
},
{
"cell_type": "code",
"execution_count": 177,
"id": "267ef041-f675-4e84-b431-0a4f2d5e6430",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"prominences = prop[\"prominences\"]\n",
"\n",
"for i, peak in enumerate(peaks):\n",
" plt.axvline(x[peak], color=wavelength_to_rgb(x[peak] / 10), lw=prominences[i]/25)\n",
"\n",
"# plt.axis(\"x\")\n",
"plt.xlabel(r\"Длина волны, $\\textup{~\\AA}$\")\n",
"\n",
"plt.savefig(\"lines.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 165,
"id": "8cad90df-f11e-45c3-9e0a-b3f570b7e9ef",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"np.savetxt(\"peaks.csv\", np.vstack((x[peaks], prominences)).T, header=\"wavelength[A],prominence[c.u.]\", comments=\"\", fmt=\"%.4f\", delimiter=\",\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}