{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Air Mass Factor Calculation with MC\n", "\n", "In this example we calculate a box air mass factor profile by tracking the length of each ray within each atmospheric \"box\" (layer)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import sasktran as sk\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sasktran.geometry import VerticalImage\n", "\n", "# First recreate our geometry and atmosphere classes\n", "geometry = sk.NadirGeometry()\n", "\n", "tempo = sk.Geodetic()\n", "tempo.from_lat_lon_alt(0, -100, 35786000)\n", "\n", "geometry.from_lat_lon(lats=52.131638, lons=-106.633873, elevations=0,\n", " mjd=57906.843, observer=tempo\n", ")\n", "\n", "atmosphere = sk.Atmosphere()\n", "atmosphere['ozone'] = sk.Species(sk.O3OSIRISRes(), sk.Labow())\n", "atmosphere['air'] = sk.Species(sk.Rayleigh(), sk.MSIS90())\n", "atmosphere['no2'] = sk.Species(sk.NO2OSIRISRes(), sk.Pratmo())\n", "atmosphere.brdf = 0.05\n", "\n", "# And now make the engine\n", "engine = sk.EngineMC(geometry=geometry, atmosphere=atmosphere)\n", "\n", "engine.max_photons_per_los = 1000 # cap the calculation at 1000 rays per line of sight\n", "engine.solar_table_type = 0 # calculate single scatter source terms on the fly; no cache\n", "engine.debug_mode = 1234 # disable multi-threading, fix rng seed for reproducibility\n", "engine.min_fraction_higher_order = 1 # disable higher order optimization\n", "\n", "engine.air_mass_factor = 1 # calculate air mass factors using path length\n", "engine.air_mass_factor_shells = np.linspace(0, 6e4, 61) # define amf layers\n", "\n", "# Choose a wavelength to do the calculation at\n", "engine.wavelengths = [440.]\n", "\n", "# And do the calculation\n", "engine_output = engine.calculate_radiance()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "alts = 5e-4 * (engine.air_mass_factor_shells[:-1] + engine.air_mass_factor_shells[1:])\n", "amf = engine_output.air_mass_factor[0][0]\n", "stdev = np.sqrt(engine_output.air_mass_factor_variance[0][0])\n", "\n", "plt.plot(amf, alts, 'C0')\n", "plt.fill_betweenx(alts, amf - stdev, amf + stdev, color='C0', alpha=0.5)\n", "plt.xlim([0, 3.5])\n", "plt.xlabel('Box Air Mass Factor')\n", "plt.ylabel('Altitude [km]') \n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }