{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 地学実験II 〜大気の運動を理解するための計算機実習〜\n",
    "## 京都大学防災研究所 榎本剛\n",
    "## 2017年8月21〜22日"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 実習1 地球大気の成り立ちと大気大循環"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 地球大気の鉛直構造\n",
    "地球大気は,下から対流圏(troposphere),成層圏(stratosphere),中間圏(mesosphere),熱圏(thermosphere)に分けられる。\n",
    "高度約11~kmまでを対流圏と呼び,気温は1~kmつき6.5$^\\circ$C下がる。\n",
    "対流圏では,空気は上下によくかき混ぜられている。\n",
    "成層圏下部では気温の高度変化が少なく,高度20~kmから約50~kmではオゾンが紫外線を吸収するために,気温が高さとともに上昇している。\n",
    "対流圏,成層圏,中間圏の上端をそれぞれ対流圏界面(tropopause),成層圏界面(stratopause),中間圏界面(mesopause)と呼ぶ。\n",
    "\n",
    "国際(米国)標準大気に基づいて気温の高度分布を描いてみよう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108caa5c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "T = [15.0, -56.5, -56.5, -44.5, -2.5, -2.5, -58.5, -86.2]\n",
    "h = [0., 11, 20., 32., 47, 51., 71, 84.852]\n",
    "plt.plot(T, h)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 地球大気の組成\n",
    "地球大気の組成を次の表に示す。この表にある数値から乾燥大気の平均分子量を計算してみよう。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|成分| 分子量| 容積比|重量比|\n",
    "|:---|:---:|:----:|:---:|\n",
    "|窒素 N$_2$| 28.013| 78.08%|75.53%|\n",
    "|酸素 O$_2$| 32.000| 20.95%|23.15%|\n",
    "|アルゴン A$_\\mathrm{r}$| 39.95| 0.93%|1.283%|\n",
    "|**水蒸気 H$_2$O**| 18.02| 0〜5%|0〜3%|\n",
    "|**二酸化炭素 CO$_2$**| 44.01| 380 ppm|557 ppm|\n",
    "|ネオン N$_\\mathrm{e}$| 20.18| 18 ppm|12.5 ppm|\n",
    "|ヘリウム H$_\\mathrm{e}$| 4.00| 5 ppm|0.7 ppm|\n",
    "|**メタン CH$_4$**| 16.04| 1.75 ppm|0.944 ppm|\n",
    "|クリプトン K$_\\mathrm{r}$| 83.80| 1 ppm|3 ppm|\n",
    "|水素 H$_2$| 2.02| 0.5 ppm|0.03 ppm|\n",
    "|**亜酸化窒素 N$_2$O**| 56.03| 0.3 ppm|0.6 ppm|\n",
    "|**オゾン O$_3$**| 48.00| 0〜0.1 ppm|0〜0.2 ppm|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "平均分子量は重量比を$m$,分子量を$M$とすると\n",
    "$$\n",
    "\\bar{M} = \\frac{\\sum_i m_i}{\\sum_i m_i/M_i}\n",
    "$$\n",
    "と定義される。$\\sum_i m_i = 1$ kgに対して,上位3つの成分の分子量をそれぞれ28, 32, 40とし重量比が75.5%, 23.2%, 1.3%とすると次のように計算される。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "28.952538517216418"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1/(0.755/28 + 0.232/32 + 0.013/40)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "平均分子量の定義の分母がキロモル分子量$n=m/M$であることに着目すると\n",
    "$$\n",
    "\\bar{M} = \\frac{\\sum_i n_i M_i}{\\sum_i n_i}\n",
    "$$\n",
    "$\\sum_i n_i=1$ molに対する$n_i$は容積比を表すので,平均分子量は分子量を容積比で重み付き平均したものになる。上位3つの成分の容積比がそれぞれ78%, 21%, 1%とすると次のように計算できる。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "28.959999999999997"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "28 * 0.78 + 32 * 0.21 + 40 * 0.01 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 太陽放射と地球放射\n",
    "入ってきた全ての放射を完全に吸収する仮想的な物体を黒体(black body)と呼ぶ。\n",
    "次に示すWienの変位則は,黒体放射の極大値をとる波長が温度とともに短くなることを示す。\n",
    "$$\n",
    "\\lambda_\\mathrm{m}T = 2897\n",
    "$$\n",
    "太陽放射の極大値が0.5$\\mu$mであるとすると太陽の温度は"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5794.0"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def calc_T_wien(l):\n",
    "    lT = 2897\n",
    "    return lT / l\n",
    "calc_T_wien(0.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Wienの変位則は次のPlanck函数から求めたものである。\n",
    "$$\n",
    "B_{\\lambda}(T) = \\frac{c_1}{\\lambda^5\\pi(\\exp(c_2/\\lambda T) - 1)}\n",
    "$$\n",
    "ここで$c_1 = 2\\pi c^2h$Wm$^2$, $c_2 = chk^{-1}$mK, 光速$c = 2.998\\times 10^8$ms$^{-1}$, Planck定数$h = 6.626\\times 10^{-34}$Js, Boltzmann定数$k = 1.381\\times 10^{-23}$JK$^{-1}$である。\n",
    "波長$\\lambda$に対して$\\lambda B_\\lambda(T)$を描いてみよう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "17202714.1756 56.0440591025 306949.825745\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108c85ba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.constants import pi, c, h, k\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def l_planck_func(l, T):\n",
    "    c1 = 2 * pi * c**2 * h \n",
    "    c2 = c * h / k\n",
    "    return c1 * l**-4 / (pi * (np.exp(c2/(l * T))-1))\n",
    "\n",
    "l = np.logspace(-1, 2)\n",
    "lw = l_planck_func(l * 1e-6, 255)\n",
    "sw = l_planck_func(l * 1e-6, 6000)\n",
    "print(sw.max(), lw.max(), sw.max()/lw.max())\n",
    "\n",
    "lw = lw / lw.max()\n",
    "sw = sw / sw.max()\n",
    "\n",
    "plt.semilogx(l, lw)\n",
    "plt.semilogx(l, sw)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "この黒体スペクトルは最大値で規格化されている。\n",
    "太陽放射に対する最大値は30万倍以上大きいことが分かる。"
   ]
  }
 ],
 "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.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}