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",
- " Image Diameter [mm] | \n",
- " SNR | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 1.0 | \n",
- " 2812.162721 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 2.0 | \n",
- " 735.000045 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 3.0 | \n",
- " 329.516018 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 4.0 | \n",
- " 185.923710 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 5.0 | \n",
- " 119.161453 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 94 | \n",
- " 95.0 | \n",
- " 0.330928 | \n",
- "
\n",
- " \n",
- " 95 | \n",
- " 96.0 | \n",
- " 0.324070 | \n",
- "
\n",
- " \n",
- " 96 | \n",
- " 97.0 | \n",
- " 0.317423 | \n",
- "
\n",
- " \n",
- " 97 | \n",
- " 98.0 | \n",
- " 0.310978 | \n",
- "
\n",
- " \n",
- " 98 | \n",
- " 99.0 | \n",
- " 0.304727 | \n",
- "
\n",
- " \n",
- "
\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",
- " Value | \n",
- " Units | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " foreoptic | \n",
- " Foreoptic | \n",
- " None | \n",
- "
\n",
- " \n",
- " slit | \n",
- " RectSlit | \n",
- " None | \n",
- "
\n",
- " \n",
- " diffractor | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " sensor | \n",
- " TauSWIR | \n",
- " None | \n",
- "
\n",
- " \n",
- " systems | \n",
- " list [4] | \n",
- " None | \n",
- "
\n",
- " \n",
- " dimensions | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " mass | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " volume | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " density | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " index | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " transmittance | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " spatial_resolution | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- "
"
- ],
- "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",
- " Beam Diameter [mm] | \n",
- " Optical Spectral Resolution [nm] | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 1.0 | \n",
- " 2.166667 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 2.0 | \n",
- " 1.083333 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 3.0 | \n",
- " 0.722222 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 4.0 | \n",
- " 0.541667 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 5.0 | \n",
- " 0.433333 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 94 | \n",
- " 95.0 | \n",
- " 0.022807 | \n",
- "
\n",
- " \n",
- " 95 | \n",
- " 96.0 | \n",
- " 0.022569 | \n",
- "
\n",
- " \n",
- " 96 | \n",
- " 97.0 | \n",
- " 0.022337 | \n",
- "
\n",
- " \n",
- " 97 | \n",
- " 98.0 | \n",
- " 0.022109 | \n",
- "
\n",
- " \n",
- " 98 | \n",
- " 99.0 | \n",
- " 0.021886 | \n",
- "
\n",
- " \n",
- "
\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",
- " Value | \n",
- " Units | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " foreoptic | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " slit | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " diffractor | \n",
- " VPHGrism | \n",
- " None | \n",
- "
\n",
- " \n",
- " sensor | \n",
- " TauSWIR | \n",
- " None | \n",
- "
\n",
- " \n",
- " systems | \n",
- " list [4] | \n",
- " None | \n",
- "
\n",
- " \n",
- " dimensions | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " mass | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " volume | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " density | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " index | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " transmittance | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- " spatial_resolution | \n",
- " None | \n",
- " None | \n",
- "
\n",
- " \n",
- "
"
- ],
- "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
-}