HajimeKawahara/exojax

View on GitHub
documents/userguide/premodit_trange.ipynb

Summary

Maintainability
Test Coverage
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# PreMODIT: The robust range of temperature as a function of dE  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What is the elower grid trange file?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The elower grid trange file contains the robust temeprature range, (Tl - Th) K as a function of $\\Delta E$, $T_\\mathrm{ref}$, and $T_\\mathrm{wt}$. \n",
    "ExoJAX has the default elower grid trange (degt) files.  Currently (Jan 2024), The current default version is `2`.  \n",
    "Let's use `version=2`, which expands the temperature range. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "#if needed\n",
    "#import ssl\n",
    "#ssl._create_default_https_context = ssl._create_unverified_context"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "default elower grid trange (degt) file version: 2\n",
      "(2, 75, 75, 39, 3)\n",
      "(2, 75, 75, 39, 3)\n",
      "Twt=151.42184657305015K, Tref=86.94822365864665K\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from exojax.spec.lbderror import default_elower_grid_trange_file\n",
    "import numpy as np\n",
    "\n",
    "filename = default_elower_grid_trange_file(version=2)\n",
    "dat = np.load(filename)\n",
    "arr = dat[\"arr_0\"]\n",
    "Tarr = dat[\"arr_1\"] # np.logspace(np.log10(100),np.log10(5000),120)\n",
    "Twtarr = dat[\"arr_2\"] #np.logspace(np.log10(100.1),np.log10(2000.1),50)\n",
    "Trefarr = dat[\"arr_3\"] #Trefarr - np.logspace(np.log10(100),np.log10(2000),50)\n",
    "dEarr = dat[\"arr_4\"] #dEarr - np.linspace(100,1500,29)\n",
    "\n",
    "print(np.shape(arr)) # (tl/th, len(Twtarr), len(Trefarr), len(dEarr), diffmode0,1,2)\n",
    "print((2, len(Twtarr), len(Trefarr), len(dEarr),3))\n",
    "\n",
    "i = 20\n",
    "j = 10\n",
    "Twt = Twtarr[i]\n",
    "Tref = Trefarr[j]\n",
    "subscript = \"Twt=\"+str(Twt)+\"K, Tref=\"+str(Tref)+\"K\"\n",
    "print(subscript)\n",
    "\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "diffmode = 0\n",
    "tlow = arr[0,i,j,:,diffmode]\n",
    "thigh = arr[1,i,j,:,diffmode]\n",
    "\n",
    "plt.fill_betweenx(dEarr, tlow, thigh, color=\"C2\", alpha=0.3, label=\"robust T range for diffmode=0\")\n",
    "plt.plot(tlow, dEarr, color=\"C2\", label=\"diffmode=0\")\n",
    "plt.plot(thigh, dEarr, color=\"C2\")\n",
    "\n",
    "diffmode = 1\n",
    "tlow = arr[0,i,j,:,diffmode]\n",
    "thigh = arr[1,i,j,:,diffmode]\n",
    "plt.plot(tlow, dEarr, color=\"C2\", alpha=0.3, ls=\"dashed\", label=\"diffmode=1\")\n",
    "plt.plot(thigh, dEarr, color=\"C2\", alpha=0.3, ls=\"dashed\")\n",
    "\n",
    "\n",
    "diffmode = 2\n",
    "tlow = arr[0,i,j,:,diffmode]\n",
    "thigh = arr[1,i,j,:,diffmode]\n",
    "plt.plot(tlow, dEarr, color=\"C2\", alpha=0.3, ls=\"dotted\", label=\"diffmode=2\")\n",
    "plt.plot(thigh, dEarr, color=\"C2\", alpha=0.3, ls=\"dotted\")\n",
    "\n",
    "\n",
    "plt.axvline()\n",
    "plt.axvline(Twt,label=\"$T_\\mathrm{wt}$\",color=\"gray\")\n",
    "plt.axvline(Tref,label=\"$T_\\mathrm{ref}$\",ls=\"dashed\",color=\"gray\")\n",
    "plt.xscale(\"log\")\n",
    "plt.yscale(\"log\")\n",
    "plt.xlim(50,1000)\n",
    "plt.xlabel(\"temperature (K)\")\n",
    "plt.ylabel(\"dE ($\\\\mathrm{cm}^{-1}$)\")\n",
    "plt.legend()\n",
    "plt.title(subscript)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How to specify the version of the degt file."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`OpaPremodit` has an argument to choose the version of the degt file. The version=2 has a wider range of the temperature range than version 1. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "xsmode =  premodit\n",
      "xsmode assumes ESLOG in wavenumber space: mode=premodit\n",
      "======================================================================\n",
      "We changed the policy of the order of wavenumber/wavelength grids\n",
      "wavenumber grid should be in ascending order and now \n",
      "users can specify the order of the wavelength grid by themselves.\n",
      "Your wavelength grid is in ***  descending  *** order\n",
      "This might causes the bug if you update ExoJAX. \n",
      "Note that the older ExoJAX assumes ascending order as wavelength grid.\n",
      "======================================================================\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/exoplanet01/exojax/src/exojax/utils/grids.py:145: UserWarning: Resolution may be too small. R=10481.566628569737\n",
      "  warnings.warn('Resolution may be too small. R=' + str(resolution),\n",
      "/home/exoplanet01/exojax/src/exojax/utils/jaxstatus.py:19: UserWarning: JAX is 32bit mode. We recommend to use 64bit mode. \n",
      "You can change to 64bit mode by writing \n",
      "\n",
      "    from jax import config \n",
      "    config.update(\"jax_enable_x64\", True)\n",
      "\n",
      "  warnings.warn(msg+how_change_msg)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OpaPremodit: params automatically set.\n",
      "default elower grid trange (degt) file version: 2\n",
      "Robust range: 79.45501192821337 - 740.1245313998245 K\n",
      "Change the reference temperature from 296.0K to 91.89455622053987 K.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/exoplanet01/exojax/src/exojax/spec/api.py:631: RuntimeWarning: divide by zero encountered in log\n",
      "  self.logsij0 = np.log(self.line_strength_ref)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OpaPremodit: Tref_broadening is set to  154.91933384829665 K\n",
      "OpaPremodit: gamma_air and n_air are used. gamma_ref = gamma_air/Patm\n",
      "# of reference width grid :  6\n",
      "# of temperature exponent grid : 2\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "uniqidx: 100%|██████████| 4/4 [00:00<00:00, 33.59it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Premodit: Twt= 328.42341041740974 K Tref= 91.89455622053987 K\n",
      "Making LSD:|####################| 100%\n"
     ]
    }
   ],
   "source": [
    "from exojax.spec.api import MdbHitemp\n",
    "from exojax.spec.opacalc import OpaPremodit\n",
    "from exojax.utils.grids import wavenumber_grid\n",
    "nus_start = 10000.0\n",
    "nus_end = 11000.0\n",
    "N=1000\n",
    "nus, wav, res = wavenumber_grid(nus_start,nus_end,N,unit=\"cm-1\",xsmode=\"premodit\")\n",
    "mdb = MdbHitemp(\"CH4\",nurange=[nus_start,nus_end], isotope=1)\n",
    "opa = OpaPremodit(mdb, nu_grid=nus, allow_32bit=True, auto_trange=[80.0, 300.0],diffmode=0, version_auto_trange=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How to generate your elower grid trange file"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The degt file is actually generated by `src/exojax/spec/generate_elower_grid_trange.py`. Extracting the essence of the code, we just set the parameters \n",
    "\n",
    "```\n",
    "N_Twt (int): the number of Twt grid\n",
    "N_Tref (int): the number of Tref grid\n",
    "N_Trange (int): the number of Trange to serach for Tlow and Thigh\n",
    "N_dE (int): the number of dE grid\n",
    "Treflow (float): lower limit of Tref grid\n",
    "Trefhigh (float): upper limit of Tref grid\n",
    "Twtlow (float): lower limit of Twt grid\n",
    "Twthigh (float): upper limit of Twt grid\n",
    "Tsearchl (float): lower limit of Trange grid\n",
    "Tsearchh (float): upper limit of Trange grid\n",
    "dErangel (float): lower limit of dE grid\n",
    "dErangeh (float): upper limit of dE grid\n",
    "filename (str): output filename\n",
    "```\n",
    "     \n",
    "as"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "N_Twt = 75                   \n",
    "N_Tref = N_Twt\n",
    "N_Trange = 120\n",
    "N_dE = 39\n",
    "Treflow = 50.0\n",
    "Twtlow = Treflow + 0.1\n",
    "Trefhigh = 3000.0\n",
    "Twthigh = Trefhigh + 0.1\n",
    "Tsearchl = 50.0\n",
    "Tsearchh = 7500.0\n",
    "dErangel = 50\n",
    "dErangeh = 1000\n",
    "filename = \"elower_grid_trange_v2.npz\"\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The above code just sets the parameters of the degt file. Then, using these parameters, we can generate the degt file as following.\n",
    "Note that it takes hours to a day."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from exojax.spec.generate_elower_grid_trange import generate_elower_grid_trange\n",
    "generate_elower_grid_trange(\n",
    "    N_Twt,\n",
    "    N_Tref,\n",
    "    N_Trange,\n",
    "    N_dE,\n",
    "    Treflow,\n",
    "    Trefhigh,\n",
    "    Twtlow,\n",
    "    Twthigh,\n",
    "    Tsearchl,\n",
    "    Tsearchh,\n",
    "    dErangel,\n",
    "    dErangeh,\n",
    "    filename,\n",
    ")\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "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.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}