From fbf6fe85457dee4d313be2e644e9784863c961e0 Mon Sep 17 00:00:00 2001 From: Brent Wilder <56372982+brentwilder@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:57:53 -0700 Subject: [PATCH 1/2] Add files via upload --- book/tutorials/tutorial-notebook-bw.ipynb | 377 ++++++++++++++++++++++ 1 file changed, 377 insertions(+) create mode 100644 book/tutorials/tutorial-notebook-bw.ipynb diff --git a/book/tutorials/tutorial-notebook-bw.ipynb b/book/tutorials/tutorial-notebook-bw.ipynb new file mode 100644 index 0000000..cfd8ccd --- /dev/null +++ b/book/tutorials/tutorial-notebook-bw.ipynb @@ -0,0 +1,377 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "suffering-union", + "metadata": {}, + "source": [ + "# Lessons learned working with the NSIDC dataset,\n", + "# __\"SnowEx21 Senator Beck Basin and Grand Mesa, CO AVIRIS-NG Surface Spectral Reflectance\"__\n", + "\n", + "```{admonition} Learning Objectives\n", + "- Understand how this data is structured\n", + "- Understand where to find necessary terrain and illumination data\n", + "- Learn about the `spectral` python package and apply it to this dataset\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "649d863c-5ad1-4b9f-9fa0-416ff04396a4", + "metadata": {}, + "source": [ + "## Computing environment\n", + "\n", + "We'll be using the following open source Python libraries in this notebook:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "2a5720d5-d805-4c24-a92e-a2238805cdbf", + "metadata": {}, + "outputs": [], + "source": [ + "from spectral import *\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "d73344a2-f797-4218-a99f-a9db0338f002", + "metadata": {}, + "source": [ + "## SnowEx21 Spectral Reflectance Dataset\n", + "\n", + "The data were collected using an airborne imaging spectrometer, AVIRIS-NG can be downloaded from here, https://nsidc.org/data/snex21_ssr/versions/1.\n", + "- Reflectance is provided at 5 nm spectral resolution with a range of 380-2500 nm\n", + "\n", + "- For this dataset, the pixel resolution is 4 m\n", + "\n", + "- Data span from 19 March 2021 to 29 April 2021, and were collected in two snow-covered environments in Colorado: Senator Beck Basin and Grand Mesa\n", + "\n", + "- Each file will have a \"__.img__\" and \"__.hdr__\". You need to have both of these in the same directory to open data.\n", + "\n", + "

\n", + " \n", + "

\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "0a9952e7", + "metadata": {}, + "source": [ + "## Downloading necessary terrain and illumination data\n", + "\n", + "The NSIDC repository does not contain the terrain/illumination information.\n", + "\n", + "However, you can obtain it for the matching flightline (by its timestamp) at the following URL, https://search.earthdata.nasa.gov/ ,\n", + "\n", + "and searching for __\"AVIRIS-NG L1B Calibrated Radiance, Facility Instrument Collection, V1\"__ \n", + "\n", + "\n", + "- You only need to download the \"*obs_ort*\" files for the flight of interest. Please note these are different than \"*obs*\" files (ort means orthorectified).\n", + "\n", + "\n", + "- In the Granule ID search, you can use wildcars \"*\" on either end of \"obs_ort\" to reduce your search.\n", + "\n", + "- You may also want to use this bounding box to reduce your search: \n", + "\n", + "\n", + " - SW: 37.55725,-108.58887\n", + "\n", + "\n", + " - NE: 39.78206,-106.16309\n" + ] + }, + { + "cell_type": "markdown", + "id": "5b99d916-deb8-4af0-9fce-1e38e5c18d87", + "metadata": {}, + "source": [ + "## Using python package, `spectral`, to open data\n" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "equipped-qualification", + "metadata": {}, + "outputs": [], + "source": [ + "# INSERT YOUR PATHS HERE\n", + "path_to_aviris = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1'\n", + "path_to_aviris_hdr = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1.hdr'\n", + "path_to_terrain = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1_obs_ort'\n", + "path_to_terrain_hdr = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1_obs_ort.hdr'" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "23b1489b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1848, 699, 425)" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Open a test image\n", + "aviris = envi.open(path_to_aviris_hdr)\n", + "\n", + "# Save to an array in memory\n", + "rfl_array = aviris.open_memmap(writeable=True)\n", + "\n", + "# print shape. You can see here we have 425 spectral bands for a grid of 1848x699 pixels\n", + "rfl_array.shape\n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "ed222d1f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 377.071821, 382.081821, 387.091821, 392.101821, 397.101821,\n", + " 402.111821, 407.121821, 412.131821, 417.141821, 422.151821,\n", + " 427.161821, 432.171821, 437.171821, 442.181821, 447.191821,\n", + " 452.201821, 457.211821, 462.221821, 467.231821, 472.231821,\n", + " 477.241821, 482.251821, 487.261821, 492.271821, 497.281821,\n", + " 502.291821, 507.301821, 512.301821, 517.311821, 522.321821,\n", + " 527.331821, 532.341821, 537.351821, 542.361821, 547.361821,\n", + " 552.371821, 557.381821, 562.391821, 567.401821, 572.411821,\n", + " 577.421821, 582.431821, 587.431821, 592.441821, 597.451821,\n", + " 602.461821, 607.471821, 612.481821, 617.491821, 622.491821,\n", + " 627.501821, 632.511821, 637.521821, 642.531821, 647.541821,\n", + " 652.551821, 657.561821, 662.561821, 667.571821, 672.581821,\n", + " 677.591821, 682.601821, 687.611821, 692.621821, 697.621821,\n", + " 702.631821, 707.641821, 712.651821, 717.661821, 722.671821,\n", + " 727.681821, 732.691821, 737.691821, 742.701821, 747.711821,\n", + " 752.721821, 757.731821, 762.741821, 767.751821, 772.751821,\n", + " 777.761821, 782.771821, 787.781821, 792.791821, 797.801821,\n", + " 802.811821, 807.821821, 812.821821, 817.831821, 822.841821,\n", + " 827.851821, 832.861821, 837.871821, 842.881821, 847.881821,\n", + " 852.891821, 857.901821, 862.911821, 867.921821, 872.931821,\n", + " 877.941821, 882.951821, 887.951821, 892.961821, 897.971821,\n", + " 902.981821, 907.991821, 913.001821, 918.011821, 923.021821,\n", + " 928.021821, 933.031821, 938.041821, 943.051821, 948.061821,\n", + " 953.071821, 958.081821, 963.081821, 968.091821, 973.101821,\n", + " 978.111821, 983.121821, 988.131821, 993.141821, 998.151821,\n", + " 1003.151821, 1008.161821, 1013.171821, 1018.181821, 1023.191821,\n", + " 1028.201821, 1033.211821, 1038.211821, 1043.221821, 1048.231821,\n", + " 1053.241821, 1058.251821, 1063.261821, 1068.271821, 1073.281821,\n", + " 1078.281821, 1083.291821, 1088.301821, 1093.311821, 1098.321821,\n", + " 1103.331821, 1108.341821, 1113.341821, 1118.351821, 1123.361821,\n", + " 1128.371821, 1133.381821, 1138.391821, 1143.401821, 1148.411821,\n", + " 1153.411821, 1158.421821, 1163.431821, 1168.441821, 1173.451821,\n", + " 1178.461821, 1183.471821, 1188.471821, 1193.481821, 1198.491821,\n", + " 1203.501821, 1208.511821, 1213.521821, 1218.531821, 1223.541821,\n", + " 1228.541821, 1233.551821, 1238.561821, 1243.571821, 1248.581821,\n", + " 1253.591821, 1258.601821, 1263.601821, 1268.611821, 1273.621821,\n", + " 1278.631821, 1283.641821, 1288.651821, 1293.661821, 1298.671821,\n", + " 1303.671821, 1308.681821, 1313.691821, 1318.701821, 1323.711821,\n", + " 1328.721821, 1333.731821, 1338.731821, 1343.741821, 1348.751821,\n", + " 1353.761821, 1358.771821, 1363.781821, 1368.791821, 1373.801821,\n", + " 1378.801821, 1383.811821, 1388.821821, 1393.831821, 1398.841821,\n", + " 1403.851821, 1408.861821, 1413.861821, 1418.871821, 1423.881821,\n", + " 1428.891821, 1433.901821, 1438.911821, 1443.921821, 1448.931821,\n", + " 1453.931821, 1458.941821, 1463.951821, 1468.961821, 1473.971821,\n", + " 1478.981821, 1483.991821, 1488.991821, 1494.001821, 1499.011821,\n", + " 1504.021821, 1509.031821, 1514.041821, 1519.051821, 1524.061821,\n", + " 1529.061821, 1534.071821, 1539.081821, 1544.091821, 1549.101821,\n", + " 1554.111821, 1559.121821, 1564.121821, 1569.131821, 1574.141821,\n", + " 1579.151821, 1584.161821, 1589.171821, 1594.181821, 1599.191821,\n", + " 1604.191821, 1609.201821, 1614.211821, 1619.221821, 1624.231821,\n", + " 1629.241821, 1634.251821, 1639.251821, 1644.261821, 1649.271821,\n", + " 1654.281821, 1659.291821, 1664.301821, 1669.311821, 1674.321821,\n", + " 1679.321821, 1684.331821, 1689.341821, 1694.351821, 1699.361821,\n", + " 1704.371821, 1709.381821, 1714.381821, 1719.391821, 1724.401821,\n", + " 1729.411821, 1734.421821, 1739.431821, 1744.441821, 1749.451821,\n", + " 1754.451821, 1759.461821, 1764.471821, 1769.481821, 1774.491821,\n", + " 1779.501821, 1784.511821, 1789.511821, 1794.521821, 1799.531821,\n", + " 1804.541821, 1809.551821, 1814.561821, 1819.571821, 1824.581821,\n", + " 1829.581821, 1834.591821, 1839.601821, 1844.611821, 1849.621821,\n", + " 1854.631821, 1859.641821, 1864.651821, 1869.651821, 1874.661821,\n", + " 1879.671821, 1884.681821, 1889.691821, 1894.701821, 1899.711821,\n", + " 1904.711821, 1909.721821, 1914.731821, 1919.741821, 1924.751821,\n", + " 1929.761821, 1934.771821, 1939.781821, 1944.781821, 1949.791821,\n", + " 1954.801821, 1959.811821, 1964.821821, 1969.831821, 1974.841821,\n", + " 1979.841821, 1984.851821, 1989.861821, 1994.871821, 1999.881821,\n", + " 2004.891821, 2009.901821, 2014.911821, 2019.911821, 2024.921821,\n", + " 2029.931821, 2034.941821, 2039.951821, 2044.961821, 2049.971821,\n", + " 2054.971821, 2059.981821, 2064.991821, 2070.001821, 2075.011821,\n", + " 2080.021821, 2085.031821, 2090.041821, 2095.041821, 2100.051821,\n", + " 2105.061821, 2110.071821, 2115.081821, 2120.091821, 2125.101821,\n", + " 2130.101821, 2135.111821, 2140.121821, 2145.131821, 2150.141821,\n", + " 2155.151821, 2160.161821, 2165.171821, 2170.171821, 2175.181821,\n", + " 2180.191821, 2185.201821, 2190.211821, 2195.221821, 2200.231821,\n", + " 2205.231821, 2210.241821, 2215.251821, 2220.261821, 2225.271821,\n", + " 2230.281821, 2235.291821, 2240.301821, 2245.301821, 2250.311821,\n", + " 2255.321821, 2260.331821, 2265.341821, 2270.351821, 2275.361821,\n", + " 2280.361821, 2285.371821, 2290.381821, 2295.391821, 2300.401821,\n", + " 2305.411821, 2310.421821, 2315.431821, 2320.431821, 2325.441821,\n", + " 2330.451821, 2335.461821, 2340.471821, 2345.481821, 2350.491821,\n", + " 2355.491821, 2360.501821, 2365.511821, 2370.521821, 2375.531821,\n", + " 2380.541821, 2385.551821, 2390.561821, 2395.561821, 2400.571821,\n", + " 2405.581821, 2410.591821, 2415.601821, 2420.611821, 2425.621821,\n", + " 2430.621821, 2435.631821, 2440.641821, 2445.651821, 2450.661821,\n", + " 2455.671821, 2460.681821, 2465.691821, 2470.691821, 2475.701821,\n", + " 2480.711821, 2485.721821, 2490.731821, 2495.741821, 2500.751821])" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# You can create an array of the bands centers like this\n", + "bands = np.array(aviris.bands.centers)\n", + "bands" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "12a02e71", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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5uqrr9bhw4c1e/Zsf28LAH6zWqWVK82ix46qq82Ztm3bwjMuAAAAvwO1r776SpI0cOBAj31HjBghSfryyy/9vS0A+G3HDvftZH8EAADhkuTvBX766SelpqaqefPmHvs2b95cqamp2rt3r7+3BQC/eUrX3qJFaMYBIH5ZreaHRuyXBHAqv2fUqqurnRa5dnnDhAQdOXLE39sCgN9s2R+dsVikBx4I7XgQnaxWs5g2S2Xhi6Iis1xEdrZZiL1rV/PPxcXhHhmASOF3oNa6dWtVVFRouxdrhLZv367y8nK1bNnS39sCQEA8+qjz44bBPjW4xxtt+CMvz0xc5IhERgAc+R2oDRkyRJL01FNPeez75JNPymKxaOjQof7eFgAC4uBB9+3sU4MrvNFGfVmt5gdBjoXXJRIZAajN70DtlltukWEYev3113X//ffr+PHjdfocP35c9913n15//XX7OQAQCTztU+vcOTTjQHThjTb8QSIjAN7wO5nIueeeq9tvv10vvPCCnnzySb322msaOXKk2rdvL4vFosLCQi1dulSHDh2SJN16661eZYgEgFCw7VMrKKj9pjshQRo0iM39cM6bN9o8O3CFD4gAeMNiGIbh70Vqamp033336ZlnnlFNTU2d5CKGYSgxMVF33323HnvsMSWcWl02hvlSfRxAeBQXm8vVFi+u2zZ6tJSfbxbIDjbH7G+GYX6fmGgGkGSEiyxWq7k3zV07/15wJze37gdEiYlSTo60aFH4xgUguHyJDQISqNls27ZNb7/9ttasWaP9+/dLMpONDBo0SNdff706efoIKQYRqAHR4/zzpdWraxfADsUbp6Iic7+Ts0DRUbdu0pQpZuIKgoDw4402/OHsA6JQfjAEIDzCFqihLgI1IDqEc4bE2Rt+Ty68UJo7lzd04cQbbQTCtm3mUllmzYH44Ets4PceNQCIBeHac2RLSuGrzz6TLr5YWrky8GOCd7KyzJkz3mjDH1268NwAcC5+NosBgBvh2NxfVCRdemn9z1+1ylyuSd2u8OrSRRozhjfbAIDACtiMWllZmT755BNt3rxZRUVFOnHihMu+FovFnqofACKBq+yPNrffHtglbUVF5j1/TYhbb6tXm8vv2BMFAEBsCcgetbfeekt33HGHysvL7cecXdZiscgwDFksFlX7shkjirFHDYge7rI/BjpJRL9+0oYNgbmWRJZBAACiQUj3qC1evFg33XSTDMNQo0aNNHDgQLVp00ZJSWx/AxBdsrKk5593nlTEsZCxPwFRUZE0blxggzRJGj/enA0kiQUAALHB72jqqaeekmEYGjhwoObNm6fmzZsHYlwAEBbBTiqSlyetWeN9/3POkaqqpB9+cN9v0yaWQAIAEEv8TiayYcMGWSwWvfXWWwRpAKJeMJOK2DI8OtZpc6ZfP2nBArP/pk3S99+b33fvLlkszs+pqTGvvX59/ccHAAAih9+BWlVVldLS0tSFzREAYoAtqUiCk1fHZs0kfz6P8jRbZ7vHkiV1swh26WKm4u/d2/35kybVf3wAACBy+B2oderUSceOHYub5CAAYp+r7I6HD5vLC+vL02xdv37mHjhX+8yyssyxubNli9SjBzNrAABEO78DtYkTJ+rEiRNauHBhIMYDAGH3yy/O0+Y7JhTxVVGR9P/9f87bEhKkIUOkdes8JwPp2lXq08d9nx9+kPr3l4YOpcYaAADRyu9A7fe//7369++v//u//9O2+rx7AYAI401CEV/l5ZlZGZ0ZOVKaP9/7a738snf9Vq2S2rdndg0AgGjkdx21WbNmqaysTNOmTdORI0d0xRVXaMCAAUpPT3d73nXXXefPbaMGddSA6GO1Ok/RbzN0qDRvnvep8D1drz410HJzpaVLPScmsRk9OrAFuwEAgO98iQ38DtQSEhJk+TUNma2YtScWi0VVVVX+3DZqEKgB0Sk315wBc7b91tfi1889J915p+v2BQvM5CG+KC6WLr7YnDXzRqALdgMAAN+FNFDr0KGDV8HZqXbt2uXPbaMGgRoQnbwJhDzNhBUVmUseFy92f6/6zKjZnH++OUZvX8n9uRcAAPCPL7GB3wWvCwsL/b0EAEScrCzp/vulsWNd9xk/3px1c7WcMC/PXJ7oztCh/gVO8+aZmSg9BYM233xDoAYAQDTwO5kIAMQqT+n0N21yna7f2+LWt91Wr6HZZWWZyxnXrZO8mbR/8UX/7gcAAEKDQA0AXHBX/Foyg7DFi51nVfSmuLXkuYC1t/r1kwoLzRk6d1aurF95AQAAEFoEagDgRn6+1KuX+z4331z7z0VF0oMPuj8nMdEMAgO5DDErS/riCzN5iTv1KS8AAABCy+9kIo7WrFmjVatW6aefflJFRYVcXdpisej1118P1G0jGslEgOjnKb2+ZM6sVVdLFRXSTTdJpaXu+wczXX6gywsAAIDACGnWR0natm2b8vLytHHjxlrHnaXrtx2rdpbzOgYRqAGxoW9f6ZSXuHrp3l166y1zqWIwBbK8AAAACAxfYgO/lz4eOnRIF154oTZs2KDTTjtNV155pQzDUKNGjTRx4kSNGDFCaWlpMgxDzZo106RJk+Km2DWA2PHyy4G5zsyZwQ/SJHO2buBA523V1eYMIHvVAACIXH4Has8995z27t2rAQMGaMeOHZo9e7YkKTMzU7NmzdKSJUu0b98+3X333Tp48KBSUlL05ptv+j1wAAil/v3dJxbxVufOgRmPJ7byAu6wVw0AgMjld6D26aefymKx6PHHH1dqaqrTPo0bN9aTTz6pO+64Q6+88ormzJnj720BIOS8SSzijr8103zlqbzAjBlmYW8AABB5/A7UduzYIYvFoqGn5IQ+fvx4nb733nuvJOnvf/+7v7cFgJDLyjKDtfpo1sxM4BFKtvICiYnO29escV0HDgAAhJffgdqJEyeUmZmppKQk+7HU1FSVlZXV6duyZUtlZmZq8+bN/t4WAMLCU201Z4YMMfeDhSPLInvVAACITn4Ham3atFFJSYmqqqrsx1q2bKmqqirt3LmzVt8TJ06otLRUJSUl/t4WAMImP18aOdJzvz59pHXrzCLT4UqFz141AACik9+BWseOHWUYhvbs2WM/1r9/f0nSO++8U6vvW2+9pZqaGp1++un+3hYAwiYry0xtv26dGYw56ttXev99s5bZhg2hyfDoiae9ai1ahGYcAADAe34HaqNGjZIkLXIoyHPttdfKMAw99thjuvXWW/Xqq6/qtttu02233SaLxaJLLrnE39sCQNj162cGY1artGCB+d/166Wrrgpt0hBPbMs1nbFYpAceCO14AACAZ34XvLZarRo1apQGDRqk9957z348Ly9Ps2fPrlXw2jAMnX322VqzZo0yMzP9uW3UoOA1gEiwbp107rmu263WyAouAQCIRb7EBkluW73QtWtXFRYW1jn+7rvvavjw4Xr//fe1Z88eZWZmKjc3V1OnTo2bIA0AIsXBg+7bt28nUAMAIJL4PaMG95hRAxAJrFYpO9t9O4EaAADB5Uts4PceNQBA5HNVUy0x0TxOkAYAQGTxO1BLSEjwKYtjx44da9VcAwCERn6+lJNT+9g550iPPRae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KEkqLy/X1q1bfRk2AACAJCkvz1zO6KigwEzj78hTwWzH2msAYldUBGqVlZVavXq1JGnMmDFO+1gsFvvM15IlSwJ6/0aNGtm/rz51HQIAAIAHvixndFUwOzHRPE72RyA+REWgtnXrVtXU1EiSevTo4bKfrW3//v0qKioK2P1XrFghSWrYsKG6du0asOsCAID44Otyxvx8M3GII3e11wDEnqioo7Zv3z7796effrrLfo5t+/btU9OmTf2+965du/Tyyy9Lkq6++mqP2VmOHTtmz0IpmZldAABAfPN1OaNjwWxfa68BiA1RMaNWVlZm/z41NdVlP8c2x3Pq68iRI7ryyitVWVmpZs2aacaMGR7PmTFjhjIzM+1f7dq183scAAAgupya2bG+yxm9qb3mKYskgOgUFYFaOFRVVSkvL08bNmxQgwYN9N5777mdzbO57777VFJSYv/as2dPCEYLAAAigbvMjoFezkhRbCC2RcXSx/T0dPv3lZWVLvs5tjme46vq6mpNnDhR//znP5WUlKT33ntPo0aN8urc5ORkJScn1/veAIDYYLWa+5JYshZf3GV2XLQosMsZPd0LQHSLihk1W20zSdq7d6/Lfo5tjuf4whakvf/++0pMTNQ777yjK664ol7XAgDEH2Y54pe3mR29Wc4YqHsBiF5REaidffbZSkgwh/r999+77Gdra9WqVb0SiVRXV+uaa67R7Nmz7UHa1VdfXb9BAwDikre1shB7QlmomqLYQOyLikAtNTVVgwcPliQtcjGXbxiGFi9eLEleL1N0ZAvSHGfSxo8fX/9BAwDiDrMc8auoSHr8cfd9AlmomqLYQOyLikBNkiZNmiRJWr58ub7++us67XPmzNHOnTslSdddd51P166urlZeXp7ef/99JSUl6d133yVIAwD4jFmO+JWXJ335pfO2YBSqpig2EPuiKlDr2bOnDMPQ5ZdfrmXLlkmSampqNGfOHE2ePFmSNGbMGI0YMaLWudOnT5fFYpHFYlFhYWGtturqal177bX64IMP7IlDWO4IAKgPZjni09q1zmdSbQYNCk6haopiA7EtKrI+SlJSUpLmz5+v4cOHq7CwUDk5OUpNTVVNTY2OHj0qSerdu7feffddn667evVq5f/6imaxWHT77bfr9ttvd9n/L3/5C4EcAMAp2yxHQUHtN+2JieYbaGY5YtMtt7hv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LCVz2aQrjm2O59i+d3euY7vjuYhf4X7ueG5RH40aNdLjjz8uSSovL9eyZctqtfNcwld33XWXXnzxRUnSs88+qxtvvLFOH14vEWrePJeexNrrJYEagqpz585q3ry5JGnnzp32423atLF/v3fvXpfn29oyMjKUlpZW5/zi4mK3vyy28x3vh/gV7ufO9md393Z3PuLXwIED7d87vpZKPJfwzT333GNfEjZz5kz9/ve/d9qP10uEkrfPpTdi6fWSQA1h4ZhByjEDz6lsbd26dXN5vruMOrbz3WX2QfwI93NnO/+///2vfvnlF6fnVldX69///rfT8wFneC7hrbvvvlszZ86UJD311FO66667XPbl9RKh4stz6a9oey4J1BBUO3bs0MGDByVJHTt2tB/Pzs7WGWecIUlatGiR03MrKiq0cuVKSeZeOEdDhgxRSkqK2/N3796trVu3Oj0f8Sncz93IkSPt37s6f/Xq1fbNxzy3sPnqq6/s3zu+lko8l/DOXXfdZd+O8NRTT+nuu+9225/XS4SCr8+lN2Lq9dKvctmIazU1NR7bL730UkOSkZCQYPz73/+u1f7AAw8YkozU1FRj165ddc5/8sknDUlGYmKi8eOPP9ZpnzhxoiHJaN26tXH48OE67bfccoshyUhPTzeKiop8++EQddq3b29IMh566CG3/cL93A0ZMsSQZJxzzjnG8ePH67SPGTPGkGS0b9/eqKqqcvuzIPJ581x6ei09evSoMWDAAEOS0bhxY6O4uLhOH55LuDN16lRDkiHJePrpp70+j9dLBFN9nst4e70kUEO97dq1y+jfv7/x8ssvGzt27LD/8lRXVxtffvmlMXr0aPsv4C233FLn/MOHDxutWrUyJBndunUz1q9fbxiGYRw7dsx46aWXjIYNG7o81zAMY+fOnUbjxo0NScbQoUMNq9VqGIZhlJeXGw8//LBhsVgMScaTTz4ZpL8BhFNRUZHxyy+/2L/atWtnSDLuvvvuWsfLyspqnRfu527NmjVGYmKiIcm47LLLjJ9++skwDMM4dOiQ/X8Okoz3338/UH9VCKH6PJcrVqwwRowYYfzjH/8w9uzZYz9+/Phxo6CgwOjfv7/9uXD1XPFcwpV77rnH/u/35z//2adzeb1EsNT3uYy310sCNdTbrl277A+jJCM5Odlo3ry5kZycXOv4DTfcYJw4ccLpNdavX280a9bM3jc9Pd1o0KCB/c+jRo0yjh496nIMn376qZGammrvn5mZaf/lkWRcf/31Hj99QXSyzVR4+po0aVKdc8P93L366qtGUlKSvX+TJk3s/2PwZlYQkas+z+Xy5ctrtaWkpBjNmzev9UwmJCQY999/v9t781ziVLt37671DLVs2dLt18yZM+tcg9dLBJo/z2W8vV4SqKHeKisrjRdeeMHIy8szunXrZrRo0cJISkoy0tLSjLPOOsu48cYbjVWrVnm8zv79+40777zT6NKli9GoUSOjSZMmxpAhQ4xXX33VqK6u9nj+9u3bjcmTJxsdOnQwGjZsaDRr1swYOXKkMXfu3ED8mIhQ/gRqhhH+527Dhg1GXl6ecfrppxsNGzY0WrZsaVxyySXGsmXLfPlrQISpz3N58OBB4+mnnzYuv/xyo2vXrkbTpk2NpKQkIyMjwzjnnHOM2267zdi8ebNX9+e5hKNTP1D19OXqzSWvlwgkf57LeHu9tBiGYQgAAAAAEDHI+ggAAAAAEYZADQAAAAAiDIEaAAAAAEQYAjUAAAAAiDAEagAAAAAQYQjUAAAAACDCEKgBAAAAQIQhUAMAAACACEOgBgAAAAARhkANABBzLBaLLBaLVqxYEe6hhFxhYaH95y8sLAz49d966y379W1fvXr1Cvh9gu3w4cN1fo5g/Z0BQH0QqAFAlCopKVFSUpIsFoueeeYZl/22bt1qfxPasWNHt9ccPXq0LBaLBg0aFOjhIgCee+45TZ8+XZs2bQr3UJSQkKCWLVuqZcuWat68ebiH47NoHz+A2EegBgBRKjMzU71795YkLV++3GU/x1mlwsJClzMGVVVVWrNmjSRp+PDhARsnAue5557Tww8/HBGBWrt27bR//37t379fBQUF4R6OzzIyMuzjX7duXbiHAwB1EKgBQBSzBVQrV65UdXW10z62QK1Vq1a1/nyqdevWqby8vNZ1AQBAeBCoAUAUswVUpaWl2rhxo9M+n3/+uSTp7rvvluR69s12vGHDhix9BAAgzAjUACCKDR06VElJSZKcz5Rt3bpVBw4cUHZ2tsaPH++yn+PxAQMGKDU1VZJ05MgRzZ8/X5MnT1avXr3UokULJScnq02bNrrkkku0cOFCp9e6+OKLZbFYdNlll7kd/44dO+z751atWlWnvaSkRH/60580YMAAZWVlKTk5We3atdOECRP01Vdfub22JytWrNCECRN0xhlnqFGjRsrMzNS5556rp556ShUVFU7Puf7662WxWHT99ddLkubOnasLLrhATZs2VWpqqnr16qW//OUvqqmpcXlfwzD05ptvauDAgUpPT1dmZqYGDBigv//97zIMo849JGn69OmyWCzavXu3JOmGG26okwTDlQMHDuiOO+5Qx44d1ahRI7Vs2VLjx4/Xv//9b9//0nxgG/MFF1wgSVq2bJl++9vfqkWLFmrUqJHOPvtsPfzwwzp69KjT80/9e3jrrbc0cOBAZWZmqmnTpsrJydEXX3xh719VVaUXXnhBffv2VUZGhjIzMzV27FiXH2AAQMQzAABR7bzzzjMkGWPHjq3T9tJLLxmSjClTphiGYRidO3c2JBk7d+6s1e/48eNG48aNDUnGtGnT7MfffPNNQ5L9KyUlxUhNTa11bOrUqXXuO2fOHEOS0bBhQ+PQoUMuxz59+nRDktGxY0ejpqamVttXX31ltGzZ0n6fxMREIz093f5ni8ViPP74406va+uzfPnyOm0nTpwwfve739X6GdLS0ozExET7n7Ozs43CwsI6506aNMmQZEyaNMm49dZbDUlGQkKC0aRJk1rXu+6665yOq6qqyrj66qtr/QxZWVlGQkKCIcmYMGFCrXvYzJw502jZsqW9X0ZGhtGyZctaXza7du2yX/+TTz4xTjvtNEOSkZqaaiQnJ9vbMjIyjE2bNrn8t3HF9ky0b9/ebb+HHnrIkGQMGzbMeOqppwyLxWJYLBajSZMmhsVisY9j+PDhRlVVldu/a9v3SUlJtZ6BpKQk41//+pdx9OhRY9SoUfZnzvYs237u9evXux2r49/Zrl27fP47AYBgIFADgCh33333GZKM9PT0Om94r7rqKkOS8d577xmGYRg33XSTIcl4/fXXa/VbtWqV0+Dm448/NqZMmWIsX77cOHjwoP34vn37jIcfftho0KCBIcmYN29eresdPXrUyMrKMiQZf/vb31yO3RY4OgaHhmG+cbYFP1dccYWxYcMG48SJE4ZhGMaBAweMBx980EhKSjIkGR9//HGd67oL1O644w5DktGyZUvjpZdesgeSx48fN5YvX2707t3bkGT06dPHqK6urnWuLWDIysoyGjZsaPz5z382SkpKDMMwjIMHD9YKAJctW1bn3jNmzLC3/+EPf7D/nZaUlBiPP/64PXA7NVCzad++vSHJePPNN13+nToGHVlZWcbgwYONdevWGYZhBqlLly41WrdubUgyhg4d6vI6rvgaqDVp0sRISEgw7rvvPuOXX36x/7zTpk2zj/PU59EwTv5dN2nSxEhJSTFeeeUVo7Ky0jAMw/j3v/9t9O3b15BkdOjQwbjtttuMpk2bGh988IFx/Phxo6amxli/fr3RqVMnQ5IxePBgt2MlUAMQiQjUACDKLVmyxP4m8+uvv67VZpuR2rt3r2EYhjFr1ixDknHttdfW6vfYY48ZkoxGjRoZR48e9freM2fONCQZI0aMqNN28803G5KMgQMHOj13zZo19nFv27atVtsVV1zhdJyO/vznPxuSjHPOOadOm6tA7bvvvjMsFouRmppqbN682el1S0tLjbZt2zoNAm3Bg7tgyRZA/O53v6t1vKKiwsjIyDAkGTfddJPTc23BTaACtbPOOsse3DiaP3++vc+ePXtcXssZXwM1ScZDDz3ktM9ll11mSDJycnLqtDn+Xb/zzjt12nfs2FFrZm7lypV1+ixbtsyrn5NADUAkYo8aAES5wYMHq0GDBpJqJwrZsmWLDhw4oC5duqhNmzaSpGHDhtXp5/jngQMHKjk52et7//a3v5Ukffnll3WyTl577bX2tu3bt9c59x//+If9np07d7YfLyoq0kcffSRJuvfee13e+7rrrpMkffvttzpw4IBX43399ddlGIZ++9vfqmfPnk77pKen65JLLpEkLV682Gmfdu3a2e9/qosvvliStHnz5lrHFy9erNLSUknSH//4R6fnTp061b4/MBCmTp2qlJSUOsfHjBmjhg0bSpK+++67gN3PmeTkZN11111O28aNGyep7t+VozPOOEN5eXl1jp955pnq1KmTJHOv5pAhQ+r0GTZsmP15dncPAIhEBGoAEOVSU1N17rnnSqqdKMT2vS04k8w3vR06dNBPP/2kHTt2SJKOHz+uL7/8UpJ04YUX1rn+gQMH9NBDD2ngwIFq1qyZvci2xWJRt27dJEmVlZUqLi6udd7gwYPtb6TfeeedWm3Hjx/X+++/L0l1Ap4vv/zSnozjwgsvVKtWrZx+de/e3X6OLcmGJ7aEJQsXLnR53VatWunNN990e93+/fsrIcH5/0JtQXFRUVGt47akFmeccYbLwuPp6enq27evVz+LNwYMGOD0eFJSklq0aOF0nIHWvXt3paWlOW1z9XflqF+/fi6TpbRs2VKS+e/hTGJior2Y9anPJwBEuqRwDwAA4L/hw4dr9erVWrVqlaqqqpSUlGQP1GxZ92yGDRumwsJCrVixQp06ddLatWtVWVlpv46jL7/8UmPHjtXhw4ftx9LS0pSamiqLxaLq6modPHhQklRRUWF/U2xz7bXXavr06frHP/6h6dOn248vWLBARUVFSk5O1tVXX13rnH379tm/93amzDZ+T2zXLi8vt9eMq89109PTXZ5jy8J54sSJWsd/+eUXSSeDE1dOP/10j+PyVn3GGWjejKGqqsqv8yPh5wSAQGNGDQBigC3AKi8v1/r16yWdrJ/mOKPm+Gfbckfbfx1n5iTzzfOECRN0+PBh9erVSwsWLFBpaanKysp04MAB7d+/v1aKfMMw6ozLtvxx586dWr16tf24bdnj//zP/ygrK6vWObYllCkpKTLMvdQev04NRl2xXfuJJ57w6rquShnUh+3vx10qfcd+AID4RqAGADFg0KBB9r04K1as0JYtW/Tf//5XnTp1Utu2bWv1tQVqtiDE9t8hQ4bY97pJ5mza7t27lZiYqE8++URjxoypM3Oxf/9+t+M688wzNXjwYEkng7Pi4mJ9+umnkk4Gco5atWolyazh5mxvmz9s1w72vixnTjvtNEm1Zwyd8dQOAIgPBGoAEAMaNWqk8847T5I5Q+Zsf5rNmWeeqbZt22rv3r364Ycf7PvTTl32uGfPHklSixYtXC7HKygo8Dg22x60Dz74QMeOHbP/t3nz5ho7dmyd/oMGDbLPOs2ePdvj9X1hCxo//fRTr5Y+BlKfPn0kmfveCgsLnfYpLy/Xhg0bXF7Dti+OWTcAiH0EagAQI2yB1urVq7V06VJJdfen2dgCuCeeeEJHjhypdb5NZmamJHOfmLO9Yj/99JOef/55j+O66qqrlJycrOLiYn3yySf2mbXx48fXmsGzOe200+zZAGfOnCmr1er2+r4kw5g8ebIsFosOHz6su+++223fEydOBDSYGzVqlDIyMiRJjz/+uNM+zz77rNv9drbzHfcMAgBiE4EaAMQIW6BVUVGhf/3rX5Kcz6g5Hs/Pz5fkPNvgkCFD1LhxYxmGoauuusoeMFVXV2vx4sW64IILPO63kqQmTZrooosukiTNmDHDvlfN2bJHm2eeeUbNmjVTaWmphgwZojfeeEMlJSX29oMHD+qjjz7SZZddpgkTJngcg02vXr30+9//XpL08ssv68orr9SmTZvsM1TV1dX69ttv9eijj6pTp07atGmT19f2pHHjxvp//+//SZJeffVV3XPPPfYgs6ysTE8++aSmT59eZ8+eox49ekiS5s6dSxZDAIhxBGoAECPOO+88e82s6upqdezYUWeccYbTvrZAzZZcY+jQofbseDaZmZl6+umnJUlffPGFsrOzlZ6errS0NOXm5qqkpMSext4T2/JH27K+7OzsWolLTnXmmWdq6dKl6tChg3755RfddNNNysrKUtOmTZWenq4WLVro8ssv18cff2xP5e+tmTNn2oO1uXPnqnfv3kpNTVXz5s3VqFEj9erVS9OmTdOePXu8CkR9cc899+iKK66wj6NFixZq2rSpsrKydO+99+qaa66xB7WNGjWqc/6UKVNksVi0Zs0atWjRQm3atFGHDh3UoUOHgI4TABB+BGoAECMaNmyoQYMG2f/sajZNkrp27WpPrCHVXfZo87//+7/69NNPdcEFFygtLU1VVVU6/fTTdfvtt+vbb791WTT6VGPGjLHX7ZLq1k5zpnfv3tqyZYtefPFF5eTkqHnz5iorK1NNTY26dOmivLw8zZ49214c21uJiYl69tlntXHjRk2ZMkXZ2dlKTExUSUmJsrKyNHjwYE2fPl2bNm2y72kLlKSkJH3wwQd67bXXdO655yolJUVVVVXq16+fXnvtNc2aNcu+rLFJkyZ1zj///PP16aefKicnR5mZmTpw4IB2797tdR05AED0sBjsSAYAICIYhqEzzjhDP/30k2bNmuV2eWi4vPXWW7rhhhvUvn17l0lRok1hYaG9CPmuXbuYoQQQEZhRAwAgQvzjH//QTz/9pKSkJI0YMSLcwwEAhBGBGgAAITRhwgTNnTtXBw8etB87cOCAnnjiCU2ePFmSuTS0TZs24RqiV3bv3i2LxSKLxaJevXqFezg+O3z4sH38ttk0AIgkSZ67AACAQFm4cKG9PlxqaqoaNGhQK6Pl0KFD9eyzz4ZreB6lpKSoZcuWtY41b948TKOpv4SEhDo/h2TuYQSASMAeNQAAQmjWrFlauHChvvnmG/33v/9VeXm5mjRpol69emn8+PG69tprndaXAwDEFwI1AAAAAIgw7FEDAAAAgAhDoAYAAAAAEYZADQAAAAAiDIEaAAAAAEQYAjUAAAAAiDAEagAAAAAQYQjUAAAAACDCEKgBAAAAQIQhUAMAAACACPP/A+ZYzs/mNLnuAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# A simple data visalization by selecting random indices\n", + "i = 900\n", + "j = 300\n", + "pixel = rfl_array[i,j,:]\n", + "\n", + "fig, ax = plt.subplots(1, 1, figsize=(10,5))\n", + "plt.rcParams.update({'font.size': 18})\n", + "ax.scatter(bands, pixel, color='blue', s=20)\n", + "ax.set_xlabel('Wavelength [nm]')\n", + "ax.set_ylabel('Reflectance')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "c5d92aff", + "metadata": {}, + "source": [ + "## Lastly, a very important note!\n", + "Please notice that convention for aspect follows $-\\pi$ to $\\pi$." + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "d32fe140", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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dPbr18862c4777zjt668vNy6zmR6erpXX1pamqKjo4PW5+fna8uWLX7rR40aZd0OVL927VrrhDiB6ktLS7Vu3Tq/9Z7L9VwfAAAAADS3JoXIurq6oK24uFjvvvuuhg0bpk6dOumjjz5qVIisra2t9/qSq1at0v/93/9JOn6E1NPNN98sSVq8eLF27tzpU/vkk0+qrKxMoaGhuvHGG736YmNjde2110qSnn76ablcLp/6efPmSToeXjMzM736+vbtq7S0NEnS/PnzVV1d7VP/0EMPSZJSU1N9vuo7bNgwpaameo3zVF1drfnz50s6Hnj79u3rMwYAAAAAmo1pAXV1debqq682iYmJJi8vr8H1O3bsMOeee6555plnzPbt201dXZ3Vt2vXLjN37lwTGxtrJJlOnTqZffv2edUXFxebbt26GUlm4MCBZsOGDcYYY6qqqsxTTz1lIiIijCSTnZ3td/15eXnW8ocOHWq+/fZbY4wxZWVlZs6cOcbhcBhJZt68eX7r161bZ0JDQ40kM3bsWLN7925jjDGHDx822dnZRpKRZJYsWeK3fsmSJdaY7Oxsc/jwYWOMMbt37zZjx441kkxoaKhZt25dA7bqcS6Xy0gyLperwbUAgJPH/b5Po3W0BqDtspsNWuxf8tatW43D4TC33nprg2t37Njh9eYTERFhTjvtNCvYuVufPn3Mxo0b/S5jw4YNpnPnztbY+Ph4Ex4ebt1PT083lZWVAeewYsUKExMTY413Op1WMJRkbrnlFq9we6Lc3FwTFhZmjU9MTLTCpySTk5MTdBvk5ORYYx0Oh0lMTLTuh4WFmdzcXFvb8kSESABom1r7gz6NdrIagLbLbjZwGFPP90SbUWJiouLj4xt8WYljx47p3//+tz788EN99tln2rdvnw4dOqTQ0FB16dJF5557rq655hqNHz/e+v2iPwcOHNC8efP05ptvqqCgQFFRURo0aJAmTpyoSZMmKSQk+Ld7t2/frnnz5um9997T3r17FR8frx/96EfKysqyvvIazMaNGzV//nx99NFHKiwsVFJSki6++GJNmTJFl19+eb31H3zwgf7yl79o/fr1OnLkiLp06aJhw4bpN7/5jc4///x66/0pKSmR0+mUy+UKeOZaAEDLa+iJ64D2ogU/egJoILvZoMVCZHV1teLi4uRwOFRZWdkSq4QNhEgAaJsI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CCPJZGdn+103+6F+O3bsMBdccIF55plnzPbt201dXZ0xxpja2lqzfv16k5GRYb3eA23npu4nGFNdXW0GDx5sJJmUlBTz/vvvG2OO74elS5eahIQEI8mMHj26lWfafjX1tc7rvGEa+97P+37zasx+4HNQ+0SIBJpJamqq9SYXrE2cONGrbvXq1V790dHR5rTTTjPh4eHWYyEhIea+++4Luv4VK1aYmJgYq8bpdJrQ0FDr/i233GJ9iOnIGrsf3DZs2GA6d+5sjYuPj/faF+np6aaysjLg+tkPwe3YscNrP0RGRprTTjvNREZGej1+6623murq6oDLaep+wvF90bt3b2ubxcTEmKioKOv+eeedZ4qKilp7mu1Wc7zWeZ3b15T3ft73m09j9gOfg9onQiTQTBr7B+zQoUPm0UcfNddee60566yzTKdOnUxYWJhJSEgw5557rrn77rvN119/bWsO33//vbnjjjtM7969TUREhOncubMZNWqUefXVV0/CM26bmhoijTFm//79ZurUqebMM880UVFRJjEx0aSlpZnc3FxTW1tb7xzYD4FVVFSYv/zlL2b8+PFm4MCBpkuXLiYsLMzExcWZ/v37m0mTJpk1a9bYWlZT9xOMKSkpMffff78ZNGiQiY2NNfHx8eb88883jz76qKmqqmrt6bVrzfVa53VuT1Pf+3nfbx6N2Q98DmqfHMbU80VkAAAAAAD+f5xYBwAAAABgGyESAAAAAGAbIRIAAAAAYBshEgAAAABgGyESAAAAAGAbIRIAAAAAYBshEgAAAABgGyESAAAAAGAbIRIAAAAAYBshEgCADuiyyy6Tw+Hwak888USTljV79uxmnSP8e+KJJ3z23WWXXdba0wIAS1hrTwAAcOo5cuSIunfvrqqqKknSt99+qzPPPLOVZ9U2/Oc//9Hy5cuVmJioX//6101eXmxsrOLi4qzbaPtiY2PVtWtXSVJZWZnKy8tbeUYA4I0jkQCAFrdo0SIrQErSs88+24qzaVv+85//aM6cOY0+anii6dOna//+/dq/f7/uuOOOZlkmTq477rjD2mfTp09v7ekAgA9CJACgxf3973+XJE2ZMkWS9MILL6i2trY1pwQAAGwiRAIAWtTGjRv1n//8R4mJiXr44YfVt29f7du3T2+//XZrTw0AANhAiAQAtCj3Uchf/OIXioqK0k033eT1eDDvvvuuxo4dq549eyoiIkIJCQnq27ev0tPT9eijj6qoqMhr/OzZs71OSrJ06VINGzZMnTp1UmxsrM4//3wtWLCg3qOgLpdLf/zjH3XRRRcpKSlJkZGR6tWrl2644QZ9+umn9c575cqVGjdunFJTUxUdHa1OnTrpnHPO0ZQpU7R+/XprnMPh0K233ipJys/P9zm5ysk6sU1tba0WLFigH/3oR4qNjVWnTp102WWX6dVXX7W9jC+//FKTJk3SD37wA8XExCguLk7nnnuuZs2apUOHDgWt/fjjj3XVVVfptNNOU3R0tPr166ff/va3Kisr0/PPPy+Hw6HevXv71N1yyy1yOBy65ZZbZIzRwoULlZaWps6dO8vhcOj555/3Gr9//3797//+r84991w5nU5FRUWpb9++uv322/XNN9/U+xyXL1+uzMxM9ejRQxEREUpKStKll16qZ555RtXV1QHrli5dqtGjR6tr164KDw9XYmKizjzzTF199dV68sknVVlZWe+6AaBNMQAAtJCjR4+axMREI8msXbvWGGPM9u3bjcPhMGFhYWb//v0Ba+fMmWMkWS0mJsbExcV5PbZ69WqvmpycHCPJDBs2zNxzzz1GknE4HCYpKcmEhIRYdRkZGaaystLvej/99FPTtWtXa2xoaKiJj4+37jscDvPggw/6rS0vLzfXXXed1xzj4+NNZGSkdf/cc8+1xnft2tUkJCQYSSYkJMR07drVqz3yyCO2t/WwYcOMJJOTkxN0XGVlpcnIyLDmExISYhITE43D4TCSzL333lvvsu6//35rvHvfREREWPe7d+9uNm7c6Lf2z3/+s1et0+m0agcMGGAef/xxI8mkpqb61E6cONFIMjfffLP5+c9/bs3fvX+fe+45a+wbb7zh9XoJDw83sbGx1v2IiAjzwgsv+J1jaWmpufLKK732Y0JCgte8L774YlNUVORTO2nSJK+6uLg4ExMT4/XYjh07Au4fz9cwALQVhEgAQIt56aWXjCRzxhlneD0+dOhQIylgSNq5c6cV+n7zm9+YPXv2WH3FxcXmk08+MXfddZfZsGGDV537A7jT6TSSzN13320OHjxojDHG5XKZ3//+91YQmDp1qs96d+zYYYXen//85+aLL74w1dXVxhhjDhw4YH73u9+ZsLAwI8n861//8qm//vrrrWBz7733moKCAmOMMXV1dWb37t1m0aJF5s477/Sqee655wKGpoawGyKnTp1qheE//OEPxuVyWc8vOzvba/v5W5Y75MXHx5u5c+eaffv2GWOMqampMRs2bDCXX365kWR69uxpSktLvWrXrl1r7ddRo0aZbdu2GWOMqa6uNq+88orp1KmTSUpKqjdExsXFmbCwMPPoo49a8y8tLTV79+41xhjz2WefWcE0KyvLbNmyxdTU1BhjjMnPzzd33XWXkWTCwsLM559/7rOezMxM63X7z3/+05SUlBhjjv+nyL///W/Tt29fI8lkZmZ61X3yySfW/p83b545fPiw1Xfo0CHz7rvvmokTJ3q9nk9EiATQFhEiAQAtZvjw4UaSeeCBB7wez83NNZJM//79/dYtWbLESDJnnXVWg9bn/gAuydx0001+x8yaNcsKECd+mHcf3QpUa4wxjz32mM8RRWOMef/99611P/XUU7bn3JIhcs+ePVYI/t3vfud3zA033GA9jxOXVVhYaGJiYozD4TDvv/++3/rq6mpz/vnnG0nm8ccf9+obMWKEkWQGDhzo90jwBx98YK07WIiUZP785z8HfJ4XXHBB0OdojDG/+tWvjCRzzTXXeD3+5ptvGkmmW7duZvfu3X5rCwoKrKOaX375pfX4vHnzjCSTnp4ecL31IUQCaIv4TSQAoEXk5eXpww8/lMPhsH4H6Xb99dcrOjpaW7du1bp163xqExMTJUmlpaWNvmbe/fff7/fxGTNmKDo6WjU1NVq2bJn1eFFRkV577TVJ0v/+7/8GXO7NN98sSfrqq6904MAB63H3ZUvOPvtsZWdnN2rOJ9urr76qmpoaRUdHB7yURLDfYS5atEgVFRX68Y9/rBEjRvgdExYWphtuuEHS8d+0uhUVFemDDz6QdHwfREZG+tQOHz5cQ4cOrfd5JCUlKSsry2/fV199pc8//1zh4eGaNm1awGW49+P777/v9RvZhQsXSpJuuukmpaSk+K3t2bOnhg8fLsn7Obpft4WFhZx9GECHEtbaEwAAnBqeffZZGWN06aWX+pwkJSEhQZmZmXr55Zf17LPP6pJLLvHqv/DCC3Xaaadp3759uuiii3TnnXdq5MiR6tevnxwOR73r7tWrl8444wy/fQkJCTr//PO1Zs0abdiwwXp8/fr1qqurkyRdfvnltp5jfn6+dZF4dxi+6qqrbNW2Bvfz/fGPf6yEhAS/Y8466yylpKRoz549Pn1r1qyRJG3atEndunULuJ6jR49KOr593L788ksZYyRJw4YNC1h72WWX6ZNPPgn6PC644AJFRET47XPPsa6uTv369Qu4DHfIKy8v1+HDh5WcnOxV/7e//U0vvvhiwHqXyyXJ+zmOHDlSUVFR+vLLLzV06FDddtttuvzyy9WnT5+gzwcA2jpCJADgpKurq9MLL7wg6f8d8TnRxIkT9fLLL2vJkiV64oknFBcXZ/UlJibq5Zdf1vjx47V582br+pJOp1OXXnqprr/+ev3iF79QeHi432UHOoJ0Yv/Bgwetx/bu3Wvd9jzCGExFRYV1e//+/ZKk1NRUW7Wtwf1869s+PXv29Bsi3dvo6NGjVlAMxnP7FBYWWrd79OgRsKa+uUmyAp8/7jnW1tY2eD9WV1dbZ5Z1uVxWULRTK0l9+/bVwoULdeedd2r9+vXWmXi7dOmi4cOHa/z48br66qtt/UcIALQlfJ0VAHDSvfvuu9q9e7ck6fbbb/e5dIXD4dAVV1whSSorK9PSpUt9ljFy5Ejt2LFDL774oiZOnKgzzzxTLpdLb7zxhm666Sadd955foOOpEZ9SHcfmYqOjpY5fg6Bepv7UiKe62wPAaGxc3RvozvvvNPW9tm5c6dV6z4KWd/6PccFEhoaWu8c+/fvb3s/uo+Ue34FdfHixbZqT7ysyI033qj8/Hw988wz+sUvfqFevXqpsLBQS5cuVWZmpoYNG6aSkpJ6nyMAtCWESADASWfnGpCe3L8nPFFsbKxuuukmPf/88/r222+1e/duzZs3T1FRUV5HKE/kDrCBuMOn5xEt99czjx49qu+//75B8/es9wxObY37+drdPidyP8f//ve/jV635H3U90TB+uxwzzEvL6/Bv6eNioqS0+mU1Ljn6NapUydlZWVp8eLF2rVrl77//nv97//+rxwOhz755JOTdv1PADhZCJEAgJOqsLBQr7/+uqTjJ3IpLS0N2P7v//5PkrR27Vpt3bq13mWnpKTonnvusU6Y8t577/kdV1BQoO3bt/vtKy0t1RdffCHp+G8D3S655BLrCNnixYttPtv/x/27zjfeeKNBdSEhx/802zkC11Tu57thwwaVlpb6HfPdd98FDJlDhgyRJH366adevwW047zzzrO274cffhhwXLA+O9xzPHbsmP71r381uv6VV16xfiPbVD/4wQ80d+5cjR8/XlLg1y0AtFWESADASfWPf/xD1dXVcjqduuqqqxQXFxewXXDBBerfv78k76ORVVVVQdcRHR0tKfjXGn//+9/7fXz+/Pk6evSowsLCNHbsWOvx5ORkXXPNNZKkRx55RN9++23QORQVFXndv+222yRJmzdv1tNPPx201pP7BDfFxcW2axrr2muvVVhYmI4ePar58+f7HfPAAw8ErL/pppsUHR2t2tpa/fKXvwx6BtK6ujqv59SpUyfrjKbz58/XsWPHfGo+/vjjek+qU58f//jHOu+88yRJv/3tb71+i+nPiftx8uTJkqRvv/1WjzzySNDa8vJyr+fRHK9bAGiLCJEAgJPKHQavueaagGfQ9HTddddJkl588UXV1NRIkubNm6fRo0frH//4h9dRsaqqKi1dutT6cP/Tn/7U7zKdTqdeeOEF/c///I91opTS0lI9+OCDVrj85S9/6XMSl/nz56tz584qKSlRWlqann32Wa+Tqxw6dEivvfaaxo4da13Gwm348OEaN26cJOnuu+/WzJkzrbkbY7R3714tXLjQCptugwYNkiSVlJT4/W1oc0pJSdFdd90l6XjInjt3rnVEsrCwUHfffbdeeukl6yudJ+rWrZseeughSdKKFSs0atQorV271gqTxhht3bpVjz32mAYNGqQ333zTq37OnDlyOBzatGmTrr76an333XeSpJqaGr322mu69tprlZSU1KTn6HA49MwzzygyMlK7du3SRRddpFdffdXrBDh79uzRSy+9pFGjRunee+/1qr/mmms0ZswYSccv9ZKdne31HwrHjh3TZ599pnvvvVepqaleJ2e6++67df3112vZsmVej5eVlemZZ56xzvYa6HULAG3WSbn6JAAAxpj169dbF4N/4403bNV8/fXXVs3y5cuNMf/vguvuFh0dbTp16mQcDof12IABA8y+ffu8luV5ofZ77rnHSDIhISGmU6dOJjQ01KodOXKkOXr0qN/5bNy40fTu3dsa63A4TFJSkomLi/Oa08iRI31qy8vLzdixY73GJSQkmMjISOv+ueee61M3YsQIqz8+Pt6kpqaa1NRU8/jjj9vahsYYM2zYMCPJ5OTkBB139OhRM3LkSGt9oaGhJikpydq29957b73Levjhh722Z0REhOncubMJDw/3eu4vvfSST+3jjz/uNSYxMdHaPoMGDbL6+/Xr51M7ceJEI8lMnDix3u2xcuVK07lzZ6/n2blzZxMTE+O1/ttvv92ntry83IwbN85rXGxsrElKSjIhISFej+/evdtnfu4WFxdnEhMTvR5LS0szZWVlAeft+RoGgLaCI5EAgJPGfUIdp9Op9PR0WzWDBw/WgAEDvOonT56sv/3tb7rhhhs0aNAgxcTEqKSkRElJSRo6dKieeOIJbdy4Mei1CufNm6fFixdryJAhqqurU0REhH74wx/qT3/6k9555x1FRUX5rTvvvPP0zTffaMGCBRo5cqROO+00lZaWqq6uTmeeeabGjx+vxYsX67XXXvOpjYmJ0bJly/Tmm29qzJgx6tGjhyorKxUXF6dzzjlHv/rVr/S3v/3Np+7VV1/V1KlTddZZZ6m6ulr5+fnKz88/KV9xjYqK0ttvv60//elP+uEPf6iIiAgZYzR06FAtXbrUOtIYzIwZM7R161ZNnTpV55xzjqKiolRcXGx9Rfmee+7RunXrrN8Aevr1r3+tDz/8UD/96U+VlJSkyspK9e7dW7NmzdKnn35q/TY0MTGxSc9z1KhR+v777zV37lylpaXJ6XSquLhYISEhGjhwoG677Ta9/vrr+stf/uJTGxMTo5dfflmrV6/WTTfdpL59+6qurk5lZWVKTk7W5Zdfrocffljfffed19Hs3/3ud/rzn/+sMWPGqH///goLC7NqRo0apWeffVYffvihYmNjm/TcAKClOYxpgV/uAwDQCmbPnq05c+Zo2LBhTT5BS3tz2WWX6aOPPlJOTk67PvvnjTfeqH/+85+aNGlSg8/y2xGcyq9hAG0XRyIBAECb9O2331pHeN3XEQUAtD5CJAAAHZj75DUOh0NPPPFEa0/Hx/33368FCxZo165d1iU0ysvLtWTJEg0fPlyVlZXq37+/MjMzW3eiLeiJJ56w9tmcOXNaezoA4COstScAAACaX6dOndS1a1evx9rib+++/vpr/fvf/9aUKVMUHh6u+Ph4FRcXW4EyJSVFr7zyisLDw1t5pi0nNjbWZ9916tSplWYDAL4IkQAAdED+TvTTFk2dOlU9evTQunXrtG/fPhUVFSk+Pl5nnXWWrrzySt19992nXIC64447dMcdd7T2NAAgIE6sAwAAAACwjd9EAgAAAABsI0QCAAAAAGwjRAIAAAAAbCNEAgAAAABsI0QCAAAAAGwjRAIAAAAAbCNEAgAAAABsI0QCAAAAAGwjRAIAAAAAbPv/AG1n0PmClo3KAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Terrain bands:\n", + "# 0 - Path length (m)\n", + "# 1 - To sensor azimuth\n", + "# 2 - To sensor zenith\n", + "# 3 - To sun azimuth\n", + "# 4 - To sun zenith\n", + "# 5 - Solar phase\n", + "# 6 - Slope\n", + "# 7 - Aspect\n", + "# 8 - cosine(i) (local solar illumination angle)\n", + "# 9 - UTC Time\n", + "# 10 - Earth-sun distance (AU)\n", + "\n", + "# open envi object\n", + "terrain = envi.open(path_to_terrain_hdr)\n", + "\n", + "# Save to an array in memory\n", + "terrain_array = terrain.open_memmap(writeable=True)\n", + "\n", + "# Grab just aspect and flatten (remove nan)\n", + "aspects = terrain_array[:,:,7].flatten()\n", + "aspects = aspects[aspects>-9999]\n", + "\n", + "\n", + "# Plot a histogram to show aspect range\n", + "fig, ax = plt.subplots(1, 1, figsize=(10,5))\n", + "plt.rcParams.update({'font.size': 18})\n", + "ax.hist(aspects, color='black', bins=50)\n", + "ax.set_xlabel('Aspect [degrees]')\n", + "ax.set_ylabel('Count')\n", + "plt.show()\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "749f5c79-19d7-48ac-9421-852c3c83cc5f", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "To further explore these topics:\n", + "\n", + "* https://snowex-2022.hackweek.io/tutorials/aviris-ng/AVIRIS-NG_Tutorial.html\n", + "\n", + "* https://www.spectralpython.net/#documentation" + ] + } + ], + "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 +} From a28295d9dd1362a8d104502076a5acbd5f1182b5 Mon Sep 17 00:00:00 2001 From: Joachim Meyer Date: Mon, 22 Jul 2024 16:39:47 -0700 Subject: [PATCH 2/2] Tutorials - Add Aviris NG data to book TOC --- book/_config.yml | 2 +- book/_toc.yml | 4 +++ .../aviris-ng-data.ipynb} | 26 ++++++++++++------- book/tutorials/albedo/index.md | 4 +++ 4 files changed, 26 insertions(+), 10 deletions(-) rename book/tutorials/{tutorial-notebook-bw.ipynb => albedo/aviris-ng-data.ipynb} (99%) create mode 100644 book/tutorials/albedo/index.md diff --git a/book/_config.yml b/book/_config.yml index 1fec8fd..068337b 100644 --- a/book/_config.yml +++ b/book/_config.yml @@ -32,7 +32,7 @@ execute: # NOTE: 'cache' to use jupyter-cache, or 'force' to run all execute_notebooks: 'force' exclude_patterns: - - "**/geospatial-advanced.ipynb" + - "**/aviris-ng-data.ipynb" allow_errors: false # Per-cell notebook execution limit (seconds) timeout: 300 diff --git a/book/_toc.yml b/book/_toc.yml index 1edd86b..e83e9e7 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -21,6 +21,10 @@ parts: - file: tutorials/index sections: - file: tutorials/example/tutorial-notebook + - file: tutorials/albedo/index + title: Albedo + sections: + - file: tutorials/albedo/aviris-ng-data - caption: Projects chapters: - file: projects/list_of_projects diff --git a/book/tutorials/tutorial-notebook-bw.ipynb b/book/tutorials/albedo/aviris-ng-data.ipynb similarity index 99% rename from book/tutorials/tutorial-notebook-bw.ipynb rename to book/tutorials/albedo/aviris-ng-data.ipynb index cfd8ccd..6a7d9a8 100644 --- a/book/tutorials/tutorial-notebook-bw.ipynb +++ b/book/tutorials/albedo/aviris-ng-data.ipynb @@ -5,8 +5,10 @@ "id": "suffering-union", "metadata": {}, "source": [ - "# Lessons learned working with the NSIDC dataset,\n", - "# __\"SnowEx21 Senator Beck Basin and Grand Mesa, CO AVIRIS-NG Surface Spectral Reflectance\"__\n", + "# AVIRIS-NG Surface Spectral Reflectance\n", + "Lessons learned working with the NSIDC dataset. \n", + "__Dataset__: SnowEx 2021; Senator Beck Basin and Grand Mesa \n", + "__Tutorial Author__: [Brent Wilder](https://github.com/brentwilder)\n", "\n", "```{admonition} Learning Objectives\n", "- Understand how this data is structured\n", @@ -93,21 +95,25 @@ "id": "5b99d916-deb8-4af0-9fce-1e38e5c18d87", "metadata": {}, "source": [ - "## Using python package, `spectral`, to open data\n" + "## Using python package, `spectral`, to open data\n", + "\n", + "```{important}\n", + "Update the paths below to your local environment\n", + "```" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "id": "equipped-qualification", "metadata": {}, "outputs": [], "source": [ "# INSERT YOUR PATHS HERE\n", - "path_to_aviris = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1'\n", - "path_to_aviris_hdr = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1.hdr'\n", - "path_to_terrain = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1_obs_ort'\n", - "path_to_terrain_hdr = '/Users/brent/Documents/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1_obs_ort.hdr'" + "path_to_aviris = '/data/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1'\n", + "path_to_aviris_hdr = '/data/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1.hdr'\n", + "path_to_terrain = '/data/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1_obs_ort'\n", + "path_to_terrain_hdr = '/data/Albedo/AVIRIS/ang20210429t191025_rfl_v2z1_obs_ort.hdr'" ] }, { @@ -142,7 +148,9 @@ "cell_type": "code", "execution_count": 44, "id": "ed222d1f", - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { diff --git a/book/tutorials/albedo/index.md b/book/tutorials/albedo/index.md new file mode 100644 index 0000000..bd56303 --- /dev/null +++ b/book/tutorials/albedo/index.md @@ -0,0 +1,4 @@ +# SnowEx Albedo data + +```{tableofcontents} +```