diff --git a/tradebooks/snr_vs_image_diameter.ipynb b/tradebooks/snr_vs_image_diameter.ipynb deleted file mode 100644 index 3c19a46..0000000 --- a/tradebooks/snr_vs_image_diameter.ipynb +++ /dev/null @@ -1,1492 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Image Diameter Tradebook" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "# stdlib\n", - "import math\n", - "from pathlib import Path\n", - "\n", - "# external\n", - "import astropy.units as unit\n", - "import numpy as np\n", - "import pandas as pd\n", - "import plot\n", - "from IPython.display import display\n", - "\n", - "# project\n", - "from architect import luts\n", - "from architect.libs import utillib\n", - "from architect.systems.optical import foreoptics, masks, sensors, spectrometers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup\n", - "Run this section onwards when a parameter is updated." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "# constants\n", - "target_wavelength = 1300 * unit.nm\n", - "orbital_altitude = 505 * unit.km\n", - "skew_angle = np.array([0, 0]) * unit.deg\n", - "slit_size = np.array([0.03, 38.]) * unit.mm # width, height\n", - "focal_length = 50 * unit.mm\n", - "aperture_size = 35 * unit.mm\n", - "\n", - "# variables\n", - "image_diameter = np.array(np.arange(start=1, stop=100, step=1) * unit.mm)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### System Instantiation" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "# components\n", - "sensor = sensors.TauSWIR()\n", - "slit = masks.RectSlit(size=slit_size)\n", - "foreoptic = foreoptics.Foreoptic(\n", - " focal_length=focal_length, diameter=aperture_size, image_diameter=image_diameter\n", - " )\n", - "\n", - "# systems\n", - "payload = spectrometers.HyperspectralImager(\n", - " sensor=sensor, foreoptic=foreoptic, slit=slit\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Pipeline\n", - "The computational graph" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([2.81216272e+03, 7.35000045e+02, 3.29516018e+02, 1.85923710e+02,\n", - " 1.19161453e+02, 8.28154566e+01, 6.08726124e+01, 4.66198241e+01,\n", - " 3.68431311e+01, 2.98474083e+01, 2.46700153e+01, 2.07314145e+01,\n", - " 1.76657971e+01, 1.52330372e+01, 1.32702259e+01, 1.16636858e+01,\n", - " 1.03321409e+01, 9.21623487e+00, 8.27180195e+00, 7.46543020e+00,\n", - " 6.77146592e+00, 6.16994823e+00, 5.64515787e+00, 5.18457981e+00,\n", - " 4.77815035e+00, 4.41770270e+00, 4.09655359e+00, 3.80919126e+00,\n", - " 3.55103741e+00, 3.31826373e+00, 3.10764914e+00, 2.91646783e+00,\n", - " 2.74240054e+00, 2.58346398e+00, 2.43795401e+00, 2.30439985e+00,\n", - " 2.18152671e+00, 2.06822529e+00, 1.96352664e+00, 1.86658138e+00,\n", - " 1.77664246e+00, 1.69305063e+00, 1.61522244e+00, 1.54263995e+00,\n", - " 1.47484211e+00, 1.41141745e+00, 1.35199780e+00, 1.29625291e+00,\n", - " 1.24388590e+00, 1.19462928e+00, 1.14824151e+00, 1.10450406e+00,\n", - " 1.06321880e+00, 1.02420580e+00, 9.87301310e-01, 9.52356090e-01,\n", - " 9.19233862e-01, 8.87809996e-01, 8.57970335e-01, 8.29610153e-01,\n", - " 8.02633238e-01, 7.76951072e-01, 7.52482108e-01, 7.29151118e-01,\n", - " 7.06888616e-01, 6.85630340e-01, 6.65316788e-01, 6.45892799e-01,\n", - " 6.27307182e-01, 6.09512374e-01, 5.92464138e-01, 5.76121290e-01,\n", - " 5.60445444e-01, 5.45400791e-01, 5.30953895e-01, 5.17073501e-01,\n", - " 5.03730376e-01, 4.90897143e-01, 4.78548151e-01, 4.66659339e-01,\n", - " 4.55208124e-01, 4.44173291e-01, 4.33534895e-01, 4.23274170e-01,\n", - " 4.13373450e-01, 4.03816088e-01, 3.94586389e-01, 3.85669544e-01,\n", - " 3.77051572e-01, 3.68719264e-01, 3.60660132e-01, 3.52862364e-01,\n", - " 3.45314780e-01, 3.38006790e-01, 3.30928360e-01, 3.24069975e-01,\n", - " 3.17422608e-01, 3.10977689e-01, 3.04727082e-01])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "radiance = luts.load(\"atmosphere/radiance_min\")\n", - "snr = []\n", - "for i in image_diameter:\n", - " foreoptic = foreoptics.Foreoptic(\n", - " focal_length=focal_length, diameter=aperture_size, image_diameter=image_diameter[int(i)-1] * unit.mm\n", - " )\n", - " payload = spectrometers.HyperspectralImager(\n", - " sensor=sensor, foreoptic=foreoptic, slit=slit\n", - " )\n", - " snr_i = payload.get_signal_to_noise(radiance=radiance, wavelength=target_wavelength)\n", - " snr.append(snr_i)\n", - "snr = np.array(snr)\n", - "display(snr)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plots" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Image Diameter [mm]=%{x}
SNR=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "xaxis": "x", - "y": [ - 2812.162720629863, - 735.0000452648784, - 329.51601802851803, - 185.92371029844762, - 119.16145343138331, - 82.8154566142898, - 60.872612429863246, - 46.61982407863278, - 36.843131087934026, - 29.847408299600563, - 24.67001525274546, - 20.731414471246246, - 17.665797144185742, - 15.23303720120338, - 13.27022585947521, - 11.663685799888489, - 10.332140922158866, - 9.216234871839932, - 8.271801951722894, - 7.465430203045539, - 6.771465915741383, - 6.1699482311831915, - 5.645157866949754, - 5.184579813143854, - 4.778150351625943, - 4.417702701344878, - 4.096553592369204, - 3.8091912633531164, - 3.55103741239699, - 3.3182637264058434, - 3.1076491428796293, - 2.9164678279291567, - 2.7424005423180904, - 2.5834639770929417, - 2.4379540127389374, - 2.3043998525609837, - 2.18152671219962, - 2.0682252886481316, - 1.9635266366320525, - 1.8665813849124175, - 1.7766424564084904, - 1.6930506329780346, - 1.615222441987096, - 1.542639947487538, - 1.474842111293613, - 1.4114174539963666, - 1.3519977970789778, - 1.2962529078850482, - 1.243885901585335, - 1.194629280270573, - 1.1482415102374866, - 1.1045040554879957, - 1.0632187992471123, - 1.0242057965621731, - 0.9873013102757173, - 0.9523560902610727, - 0.9192338620857646, - 0.8878099964715294, - 0.8579703352490781, - 0.8296101531198022, - 0.8026332375631846, - 0.7769510717711681, - 0.7524821076329448, - 0.729151117603819, - 0.7068886158257062, - 0.6856303401701297, - 0.6653167879848614, - 0.6458927992735853, - 0.6273071818497985, - 0.6095123737028735, - 0.5924641384134962, - 0.5761212899723425, - 0.560445443802236, - 0.5454007911704903, - 0.5309538945134399, - 0.5170735014866382, - 0.5037303758080666, - 0.4908971431832446, - 0.47854815079479945, - 0.46665933900868506, - 0.4552081240980453, - 0.44417329091650243, - 0.4335348945677647, - 0.42327417021995206, - 0.41337345030266026, - 0.4038160884040603, - 0.3945863892555355, - 0.3856695442536407, - 0.3770515720244878, - 0.3687192635848714, - 0.36066013169828337, - 0.3528623640630543, - 0.3453147800047771, - 0.3380067903763873, - 0.3309283603972246, - 0.32406997518745373, - 0.3174226077767124, - 0.3109776893860523, - 0.30472708180041447 - ], - "yaxis": "y" - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#f2f5fa" - }, - "error_y": { - "color": "#f2f5fa" - }, - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" - }, - "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#506784" - }, - "line": { - "color": "rgb(17,17,17)" - } - }, - "header": { - "fill": { - "color": "#2a3f5f" - }, - "line": { - "color": "rgb(17,17,17)" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "showlakes": true, - "showland": true, - "subunitcolor": "#506784" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "dark" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "bgcolor": "rgb(17,17,17)", - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "gridwidth": 2, - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3" - }, - "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "gridwidth": 2, - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3" - }, - "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "gridwidth": 2, - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3" - } - }, - "shapedefaults": { - "line": { - "color": "#f2f5fa" - } - }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, - "ternary": { - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "bgcolor": "rgb(17,17,17)", - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, - "xaxis": { - "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "SNR v/s Image Diameter" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Image Diameter [mm]" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "SNR" - } - } - } - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Image Diameter [mm]SNR
01.02812.162721
12.0735.000045
23.0329.516018
34.0185.923710
45.0119.161453
.........
9495.00.330928
9596.00.324070
9697.00.317423
9798.00.310978
9899.00.304727
\n", - "

99 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " Image Diameter [mm] SNR\n", - "0 1.0 2812.162721\n", - "1 2.0 735.000045\n", - "2 3.0 329.516018\n", - "3 4.0 185.923710\n", - "4 5.0 119.161453\n", - ".. ... ...\n", - "94 95.0 0.330928\n", - "95 96.0 0.324070\n", - "96 97.0 0.317423\n", - "97 98.0 0.310978\n", - "98 99.0 0.304727\n", - "\n", - "[99 rows x 2 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "HyperspectralImager \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ValueUnits
foreopticForeopticNone
slitRectSlitNone
diffractorNoneNone
sensorTauSWIRNone
systemslist [4]None
dimensionsNoneNone
massNoneNone
volumeNoneNone
densityNoneNone
indexNoneNone
transmittanceNoneNone
spatial_resolutionNoneNone
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "image_diameter_label = f\"Image Diameter [mm]\"\n", - "snr_label = f\"SNR\"\n", - "\n", - "data = {\n", - " image_diameter_label: image_diameter,\n", - " snr_label: snr,\n", - "}\n", - "\n", - "df = pd.DataFrame.from_dict(data=data)\n", - "fig = plot.line(\n", - " df=df,\n", - " x=image_diameter_label,\n", - " y=snr_label,\n", - " title=\"SNR v/s Image Diameter\",\n", - " dark=True,\n", - ")\n", - "\n", - "fig.show()\n", - "display(df)\n", - "display(payload)" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "a051636751d8b8c3fb678ae2c2b84596f57742a247cc1675aae9ee3b371aaacc" - }, - "kernelspec": { - "display_name": "Python 3.10.4 ('.venv': poetry)", - "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.5" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tradebooks/spectral_resolution_vs_beam_diameter.ipynb b/tradebooks/spectral_resolution_vs_beam_diameter.ipynb deleted file mode 100644 index 6ffc600..0000000 --- a/tradebooks/spectral_resolution_vs_beam_diameter.ipynb +++ /dev/null @@ -1,1476 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Spectral Resolution v/s Beam Diameter" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# stdlib\n", - "import math\n", - "from pathlib import Path\n", - "\n", - "# external\n", - "import astropy.units as unit\n", - "import numpy as np\n", - "import pandas as pd\n", - "import plot\n", - "from IPython.display import display\n", - "\n", - "# project\n", - "from architect import luts\n", - "from architect.libs import utillib\n", - "from architect.systems.optical import foreoptics, masks, sensors, spectrometers, diffractors" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup\n", - "Run this section onwards when a parameter is updated." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# constants\n", - "target_wavelength = 1300 * unit.nm\n", - "lower_wavelength = 900 * unit.nm # for sensor spectral resolution\n", - "upper_wavelength = 1700 * unit.nm # for sensor spectral resolution\n", - "fringe_frequency = 600 * (1 / unit.mm)\n", - "\n", - "# variables\n", - "beam_diameter = np.arange(start=1, stop=100, step=1) * unit.mm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### System Instantiation" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# components\n", - "sensor = sensors.TauSWIR()\n", - "diffractor = diffractors.VPHGrism(fringe_frequency=fringe_frequency)\n", - "\n", - "# systems\n", - "payload = spectrometers.HyperspectralImager(\n", - " sensor=sensor, diffractor=diffractor\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Pipeline\n", - "The computational graph" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$[2.1666667,~1.0833333,~0.72222222,~0.54166667,~0.43333333,~0.36111111,~0.30952381,~0.27083333,~0.24074074,~0.21666667,~0.1969697,~0.18055556,~0.16666667,~0.1547619,~0.14444444,~0.13541667,~0.12745098,~0.12037037,~0.11403509,~0.10833333,~0.1031746,~0.098484848,~0.094202899,~0.090277778,~0.086666667,~0.083333333,~0.080246914,~0.077380952,~0.074712644,~0.072222222,~0.069892473,~0.067708333,~0.065656566,~0.06372549,~0.061904762,~0.060185185,~0.058558559,~0.057017544,~0.055555556,~0.054166667,~0.052845528,~0.051587302,~0.050387597,~0.049242424,~0.048148148,~0.047101449,~0.046099291,~0.045138889,~0.044217687,~0.043333333,~0.04248366,~0.041666667,~0.040880503,~0.040123457,~0.039393939,~0.038690476,~0.038011696,~0.037356322,~0.036723164,~0.036111111,~0.035519126,~0.034946237,~0.034391534,~0.033854167,~0.033333333,~0.032828283,~0.032338308,~0.031862745,~0.031400966,~0.030952381,~0.030516432,~0.030092593,~0.029680365,~0.029279279,~0.028888889,~0.028508772,~0.028138528,~0.027777778,~0.02742616,~0.027083333,~0.026748971,~0.026422764,~0.026104418,~0.025793651,~0.025490196,~0.025193798,~0.024904215,~0.024621212,~0.024344569,~0.024074074,~0.023809524,~0.023550725,~0.023297491,~0.023049645,~0.022807018,~0.022569444,~0.02233677,~0.022108844,~0.021885522] \\; \\mathrm{nm}$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# only considered optical spectral resolution because sensor spectral reoslution is not impacted by beam diameter\n", - "\n", - "optical_spectral_resolution = payload.get_optical_spectral_resolution(target_wavelength=target_wavelength, beam_diameter=beam_diameter)\n", - "display(optical_spectral_resolution)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plots" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Beam Diameter [mm]=%{x}
Optical Spectral Resolution [nm]=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ], - "xaxis": "x", - "y": [ - 2.1666666666666665, - 1.0833333333333333, - 0.7222222222222222, - 0.5416666666666666, - 0.43333333333333335, - 0.3611111111111111, - 0.30952380952380953, - 0.2708333333333333, - 0.24074074074074073, - 0.21666666666666667, - 0.19696969696969696, - 0.18055555555555555, - 0.16666666666666666, - 0.15476190476190477, - 0.14444444444444443, - 0.13541666666666666, - 0.12745098039215685, - 0.12037037037037036, - 0.11403508771929824, - 0.10833333333333334, - 0.10317460317460317, - 0.09848484848484848, - 0.09420289855072464, - 0.09027777777777778, - 0.08666666666666667, - 0.08333333333333333, - 0.08024691358024691, - 0.07738095238095238, - 0.07471264367816093, - 0.07222222222222222, - 0.06989247311827956, - 0.06770833333333333, - 0.06565656565656566, - 0.06372549019607843, - 0.06190476190476191, - 0.06018518518518518, - 0.05855855855855856, - 0.05701754385964912, - 0.05555555555555555, - 0.05416666666666667, - 0.052845528455284556, - 0.051587301587301584, - 0.050387596899224806, - 0.04924242424242424, - 0.04814814814814815, - 0.04710144927536232, - 0.04609929078014184, - 0.04513888888888889, - 0.04421768707482993, - 0.043333333333333335, - 0.042483660130718956, - 0.041666666666666664, - 0.040880503144654086, - 0.040123456790123455, - 0.03939393939393939, - 0.03869047619047619, - 0.038011695906432746, - 0.03735632183908046, - 0.03672316384180791, - 0.03611111111111111, - 0.03551912568306011, - 0.03494623655913978, - 0.03439153439153439, - 0.033854166666666664, - 0.03333333333333333, - 0.03282828282828283, - 0.03233830845771144, - 0.031862745098039214, - 0.03140096618357488, - 0.030952380952380953, - 0.03051643192488263, - 0.03009259259259259, - 0.02968036529680365, - 0.02927927927927928, - 0.028888888888888888, - 0.02850877192982456, - 0.02813852813852814, - 0.027777777777777776, - 0.027426160337552744, - 0.027083333333333334, - 0.026748971193415638, - 0.026422764227642278, - 0.02610441767068273, - 0.025793650793650792, - 0.025490196078431372, - 0.025193798449612403, - 0.02490421455938697, - 0.02462121212121212, - 0.024344569288389514, - 0.024074074074074074, - 0.023809523809523808, - 0.02355072463768116, - 0.023297491039426525, - 0.02304964539007092, - 0.02280701754385965, - 0.022569444444444444, - 0.022336769759450172, - 0.022108843537414966, - 0.021885521885521887 - ], - "yaxis": "y" - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#f2f5fa" - }, - "error_y": { - "color": "#f2f5fa" - }, - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" - }, - "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#506784" - }, - "line": { - "color": "rgb(17,17,17)" - } - }, - "header": { - "fill": { - "color": "#2a3f5f" - }, - "line": { - "color": "rgb(17,17,17)" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "geo": { - "bgcolor": "rgb(17,17,17)", - "lakecolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "showlakes": true, - "showland": true, - "subunitcolor": "#506784" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "dark" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "bgcolor": "rgb(17,17,17)", - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "gridwidth": 2, - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3" - }, - "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "gridwidth": 2, - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3" - }, - "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "gridwidth": 2, - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3" - } - }, - "shapedefaults": { - "line": { - "color": "#f2f5fa" - } - }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "bordercolor": "rgb(17,17,17)", - "borderwidth": 1, - "tickwidth": 0 - }, - "ternary": { - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "bgcolor": "rgb(17,17,17)", - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, - "xaxis": { - "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Spectral Resolution v/s Beam Diameter" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Beam Diameter [mm]" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Optical Spectral Resolution [nm]" - } - } - } - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Beam Diameter [mm]Optical Spectral Resolution [nm]
01.02.166667
12.01.083333
23.00.722222
34.00.541667
45.00.433333
.........
9495.00.022807
9596.00.022569
9697.00.022337
9798.00.022109
9899.00.021886
\n", - "

99 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " Beam Diameter [mm] Optical Spectral Resolution [nm]\n", - "0 1.0 2.166667\n", - "1 2.0 1.083333\n", - "2 3.0 0.722222\n", - "3 4.0 0.541667\n", - "4 5.0 0.433333\n", - ".. ... ...\n", - "94 95.0 0.022807\n", - "95 96.0 0.022569\n", - "96 97.0 0.022337\n", - "97 98.0 0.022109\n", - "98 99.0 0.021886\n", - "\n", - "[99 rows x 2 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "HyperspectralImager \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ValueUnits
foreopticNoneNone
slitNoneNone
diffractorVPHGrismNone
sensorTauSWIRNone
systemslist [4]None
dimensionsNoneNone
massNoneNone
volumeNoneNone
densityNoneNone
indexNoneNone
transmittanceNoneNone
spatial_resolutionNoneNone
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "beam_diameter_label = f\"Beam Diameter [{beam_diameter.unit}]\"\n", - "optical_spectral_resolution_label = f\"Optical Spectral Resolution [{optical_spectral_resolution.unit}]\"\n", - "\n", - "data = {\n", - " beam_diameter_label: beam_diameter[:],\n", - " optical_spectral_resolution_label: optical_spectral_resolution[:],\n", - "}\n", - "\n", - "df = pd.DataFrame.from_dict(data=data)\n", - "fig = plot.line(\n", - " df=df,\n", - " x=beam_diameter_label,\n", - " y=optical_spectral_resolution_label,\n", - " title=\"Spectral Resolution v/s Beam Diameter\",\n", - " dark=True,\n", - ")\n", - "\n", - "fig.show()\n", - "display(df)\n", - "display(payload)" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "a051636751d8b8c3fb678ae2c2b84596f57742a247cc1675aae9ee3b371aaacc" - }, - "kernelspec": { - "display_name": "Python 3.10.4 ('.venv': poetry)", - "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.5" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -}