{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This block contains comments as markdown code\n", "# **Chapter 1** \n", "**ATMOS 5340: Environmental Programming and Statistics** \n", "**John Horel **\n", "\n", "- If you are viewing using a linux terminal window, are you in your atmos_5340/chapter1 directory?\n", "- If you are viewing using Jupyter notebook, then ignore the following\n", "- Don't type the ' ' quote marks\n", "- check! 'pwd'\n", "- If not, then 'cd'\n", "- 'cd atmos_5340/chapter1'\n", "- Do the following. Note the dot after the space\n", "- 'cp ~u0035056/atmos_5340_2021/chapter1/* . '\n", "- Have you already copied the data directory? If not, you'll need to do that too\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using Python modules\n", "\n", "`numpy` provides routines to handle arrays and many calculations efficiently and is imported by convention as `np`. Numpy functions are very good at handling homogeneous data arrays (and similar in that respect to matlab functions).\n", "\n", "`pandas` is really good at handling tabular/array data that may have heterogeneous types (floating and text, for example). It is imported by convention as `pd`. \n", "\n", "There are a couple sets of panda library routines (`Series`, and `DataFrame`) used so frequently that we'll import those directly too.\n", "\n", "`scipy` has a bunch of statistical functions and we'll import `stats` from `scipy`\n", "\n", "\n", "`pyplot` is a _submodule_ of matplotlib. It is typically imported as the alias `plt` to handle basic plotting" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# these are python modules used in the program\n", "import numpy as np\n", "import pandas as pd\n", "from pandas import Series, DataFrame\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alta snowfall\n", "https://utahavalanchecenter.org/alta-monthly-snowfall\n", "\n", "\n", "Look in the `data` folder at the called `alta_snow.csv`\n", "\n", "Open the `alta_snow.csv` file see the column contents and the units.\n", "\n", "- The 0th column is the Year at Season End\n", "- The 1st-6th column are the total snowfall in each month from November to April (in inches)\n", "- The 7th column is the Nov-Apr total snowfall (inches)\n", "\n", "Begins in the 1946 season and ends in 2021" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 949.96 1394.46 1328.42 1211.58 886.46 1628.14 1043.94 972.82\n", " 1198.88 1168.4 980.44 1421.13 980.44 1004.57 828.04 1019.81\n", " 1018.54 1437.64 1455.42 1099.82 1381.76 1217.93 1437.894 1165.86\n", " 1223.01 1185.164 1261.11 1512.824 1536.7 1116.33 798.83 1332.23\n", " 1493.52 1305.56 993.14 1767.84 1617.98 1888.49 1160.78 1521.46\n", " 969.772 1042.162 1477.01 1137.92 1473.708 1003.3 1652.016 1245.362\n", " 1893.316 1427.48 1521.714 1460.246 1164.336 1132.84 1193.038 1441.958\n", " 1014.476 1449.832 1406.144 1609.09 904.24 1661.16 1468.12 1092.2\n", " 1404.62 836.93 971.55 908.05 679.45 998.22 1347.47 731.52\n", " 1206.5 1056.64 949.96 ]\n", "Min: 679.5 Max: 1893.3\n" ] } ], "source": [ "#read the year of the Alta snowfall data\n", "year = np.genfromtxt('../data/alta_snow.csv', delimiter=',', usecols=0, skip_header=2)\n", "#read the seasonal total and convert from inches to cm\n", "snow = 2.54 * np.genfromtxt('../data/alta_snow.csv', delimiter=',', usecols=7, skip_header=2)\n", "#print out the data after converting it to cm\n", "print(snow)\n", "#what are the min and max values?\n", "print(\"Min: %.1f Max: %.1f\" % (np.min(snow),np.max(snow)))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Alta Snow (cm)
1947950.0
19481394.5
19491328.4
19501211.6
1951886.5
19521628.1
19531043.9
1954972.8
19551198.9
19561168.4
1957980.4
19581421.1
1959980.4
19601004.6
1961828.0
19621019.8
19631018.5
19641437.6
19651455.4
19661099.8
19671381.8
19681217.9
19691437.9
19701165.9
19711223.0
19721185.2
19731261.1
19741512.8
19751536.7
19761116.3
......
19921003.3
19931652.0
19941245.4
19951893.3
19961427.5
19971521.7
19981460.2
19991164.3
20001132.8
20011193.0
20021442.0
20031014.5
20041449.8
20051406.1
20061609.1
2007904.2
20081661.2
20091468.1
20101092.2
20111404.6
2012836.9
2013971.6
2014908.1
2015679.5
2016998.2
20171347.5
2018731.5
20191206.5
20201056.6
2021950.0
\n", "

75 rows × 1 columns

\n", "
" ], "text/plain": [ " Alta Snow (cm)\n", "1947 950.0\n", "1948 1394.5\n", "1949 1328.4\n", "1950 1211.6\n", "1951 886.5\n", "1952 1628.1\n", "1953 1043.9\n", "1954 972.8\n", "1955 1198.9\n", "1956 1168.4\n", "1957 980.4\n", "1958 1421.1\n", "1959 980.4\n", "1960 1004.6\n", "1961 828.0\n", "1962 1019.8\n", "1963 1018.5\n", "1964 1437.6\n", "1965 1455.4\n", "1966 1099.8\n", "1967 1381.8\n", "1968 1217.9\n", "1969 1437.9\n", "1970 1165.9\n", "1971 1223.0\n", "1972 1185.2\n", "1973 1261.1\n", "1974 1512.8\n", "1975 1536.7\n", "1976 1116.3\n", "... ...\n", "1992 1003.3\n", "1993 1652.0\n", "1994 1245.4\n", "1995 1893.3\n", "1996 1427.5\n", "1997 1521.7\n", "1998 1460.2\n", "1999 1164.3\n", "2000 1132.8\n", "2001 1193.0\n", "2002 1442.0\n", "2003 1014.5\n", "2004 1449.8\n", "2005 1406.1\n", "2006 1609.1\n", "2007 904.2\n", "2008 1661.2\n", "2009 1468.1\n", "2010 1092.2\n", "2011 1404.6\n", "2012 836.9\n", "2013 971.6\n", "2014 908.1\n", "2015 679.5\n", "2016 998.2\n", "2017 1347.5\n", "2018 731.5\n", "2019 1206.5\n", "2020 1056.6\n", "2021 950.0\n", "\n", "[75 rows x 1 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#use pandas module to organize the data in a convenient manner\n", "#by default the pandas display format shows up to 5 places to the right of the decimal point, limit it to 1\n", "#this next line is really obtuse, so don't stress over what it means\n", "pd.set_option('display.float_format', lambda x: '%.1f' % x)\n", "#define a dataframe, df, from the snow organized by year\n", "df = pd.DataFrame(snow, index=year.astype(int),columns=['Alta Snow (cm)'])\n", "#list out the content of the dataframe\n", "df" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAADgCAYAAACzZkroAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de5wcVZ338c8XomQGQUIQN0AUWIMusqgQgcVdQVFu6sKuouCFLLDyqOB15bbqg+jiw6KPt8WXmpUIeAFReVZWUYwoIqsgN+WOBFQYCYYQ7jMBQn7PH3Uqqemp7qru6Z7pmfm+85pXek5VnfrVr6urz5y6HEUEZmZmZtZ/NpjsAMzMzMysnBtqZmZmZn3KDTUzMzOzPuWGmpmZmVmfckPNzMzMrE+5oWZmZmbWp9xQM7NKks6S9G+THUe3SHq+pOskPSLpPRXzbispJM1Kv18q6Z8nJlIzm+ncUDOzdVIj5AFJG7WYZ29JQ+Ncz1GSbk0NpT9L+oGkTcZTZ5uOBy6NiE0i4vO9WomknSRdLGmlpDEPrZT0V5J+KukhScsk/UOTek5OjcVXNZS/StK1kh6TdLekN7aI5VOSbk85v1XS4Q3TXyzpGknD6f8XF6YdJ+nGtOzvJR3XsOzHJd0gaY2kj9ZMj5nV4IaamQFZzxHwd0AAf9/D9ewFfAI4LCI2Af4KOL9X62viucBNE7CeJ8m27ajGCamH7nvA94HNgaOBr0vaoWG+vwTeACxvKN8R+CbwIeCZwIuBa1rE8hjwujTvIuBzkvZMdT09xfJ1YA5wNvC9VA4g4PA0bX/gWEmHFupeRtb4/UGL9ZtZB9xQM7Pc4cAVwFlkX+RjSNoY+CGwlaRH089WknaT9CtJD0paLumMwpd8o5cCv4qI6wAiYlVEnB0Rj6R1nCXpC6mX7RFJV6bGSh7DnpKuSr1QVxUaG6+QdENhvp9I+nXh98slHSzpp8ArgDNS/DtIek06Ffpw6pn6aMdZLIiI2yLiTMobhS8AtgI+ExFPRcRPgf8B3tYw3xnACcATDeUfBr4cET+MiDURcX9E3NEilpMj4taIWBsRVwK/AP4mTd4bmAV8NiIeT72MAl6Zlj09Iq5N67mNrFH3skLdZ0fED4FHqrNiZu1wQ83McocD30g/+0l6duMMEfEYcABwT0Q8I/3cAzwFvB/YguzLfx/gXU3Wc2Wq/xRJL2tymvUw4BSyHpxlwKkAkjYn67X5PDAX+DTwA0lzgV8Bz5O0Reqt2gnYRtImkgaAXYFfRMQryRopx6b4f0fW23Q4sBnwGuCdkg6uSpik56TG6XOq5i1bvEnZToX6DwGeiIiLSubdI81zQ2ocfz3lp3rFWT5eyvoG5AuB62P0mILXp/LGZUXW8zoRPZJmM54bamaGpL8lOx14fkRcA9wBvLnu8hFxTURckXpc/gB8Gdiryby/AP4R2IWs0XW/pE9L2rAw2wUR8euIWEPWcMyvl3oNcHtEfC2t61zgVuB1EbEauBp4ObCQrKFxOVnPzx5pufubxHRpRNyQepuuB85tFn/DcndFxGYRcVfVvCVuBVYAx0l6mqR90zoHASQ9g+wU8fuaLL8NWe/b64EFwADwHzXX/SXgt8DF6fdnAA81zPMQUHbd4EfJvju+WnNdZjYObqiZGWSnOn8cESvT79+kyenPMun04fcl3SvpYbIGxhbN5k+n615Hdm3WQcA/AcU7Ke8tvB4ma0hAdqrwjw3V/RHYOr3+OdlpvJen15eSNX72Sr83i393ST+TdJ+kh4B3tIq/GyLiSeBgssbnvcC/kF3Plt+ocQrwtYj4fZMqRoCvRsTvIuJRspwfCCDpS4VT0/9aXEjSJ8l67d5Y6EF7FNi0of5NaTiVKelYsp7H10TE4+1us5m1zw01sxkunQZ7I7BXamjdS3Ya80WSXlSyyJi7F4EvkvUQLYiITYF/pfzU3uiKsh6sS4CfUjjl18I9ZD1/Rc8B/pReNzbUfk6NhhpZw/RCYH5EPJOsx6ky/vGKiOsjYq+ImBsR+wHbA/l1dfsA7ym8J/OB8yWdkKZfT/l7QUS8o3Bq+hN5uaRTyE5d7xsRDxcWuQnYOZ3WzO1M4fSmpCOBE4F9ImJcd/2aWX1uqJnZwWTXmO1IdorxxWR3Yv6CrPek0Z+BuZKeWSjbBHgYeFTSC4B3NluZpIMkHSppjjK7kTWkrqgR60XADpLeLGmWpDeluL+fpv8SeD6wG/DriLiJrGG3O3BZi3o3AVZFxOoUT+3Tvq2k7ZsNPD39Prt4TZ6knVPZoKQPAvPIbuaArKG2E+vfk3uA/wV8IU3/KnCEpO0lDZLdcJDnoSyWk9J2vbrkFPClZPvAeyRtlHrOIGtAI+ktZD12r46IO0vqflrazg2AWWmbNmycz8za54aamS0iO4V2V0Tcm/+Q3W34lnRh/joRcSvZNVx3pgvptwI+SNYIeAT4T+BbLdb3APB24Hayxt3XgU9GxDeqAk0NjNeSnSa8n+yREK/NT9mmmx2uBW6KiPwuyV8Bf4yIFS2qfhfwMUmPAP+bmo8LSTcTPNriZoLnkp2izHumRoDbCtPfRvbYjRVkDbNX56cU012cxffjKeCBdJqTiFgCnEN2c8YfgceBVg/v/QRZ7+PtjadFU64OJmuYPwgcCRxcyOG/kd28cVVh2S8V6v7PtG2HkT0uZISxd6+aWQc0+iYfMzMzM+sX7lEzMzMz61M9a6hJmp/uorpF0k2S3pvKN5e0VNlQJkslzUnlkvR5ZcOoXC9pl0Jdi9L8t0uqfSeamZmZ2VTWs1OfkuYB8yLiWmVj+F1Ddg3EP5FdtHuapBOBORFxgqQDgXeT3V6+O/C5iNg9PcDxarLnIkWqZ9eIeKAngZuZmZn1iZ71qEXE8oi4Nr1+BLiF7FlHB5GNI0f6P3/690HAOZG5AtgsNfb2A5amYWYeAJaSjTVnZmZmNq1NyDVqygZ7fgnZ3UnPjojlkDXmgC3TbFsDdxcWG0plzcrNzMzMprVZ1bOMTxoG5bvA+yLi4dHPUxw9a0lZtChvXM/RwNEAG2+88a477LBDZwF3aO3atQBssIHvz2jGOarHearmHNXjPFVzjqo5R/WMJ0/XXXfdyoh4Vtm0njbUJD2NrJH2jYi4IBX/WdK8iFieTm3mzzYaInvydm4bsgc8DpE9abxYfmnjuiJiMbAYYOHChXH11Vd3cUuqDQ8PAzA4ODih651KnKN6nKdqzlE9zlM156iac1TPePIkqXFovHV6edengDOBWyLi04VJF7J+DMFFwPcK5Yenuz/3AB5Kp0YvBvZNTzGfA+zL+oGEzczMzKatXvaovYzsydQ3SPpNKvtX4DSy8eqOAu4CDknTLiK743MZ2SDMRwBExCpJHweuSvN9LCJW9TBuMzMzs77Qs4ZaRFxO80GN9ymZP4BjmtS1BFjSvei6r8W1d5Y4R/U4T9Wco3qcp2rOUTXnqJ5e5clXBpqZmZn1KTfUzMzMzPqUG2pmZmZmfcoNNTMzM7M+5YaamZmZWZ9yQ83MzMysT7mhZmZmZtanej7Wp5mZzWw6pfz5UnHymGGbzayBG2pmZhXKGhpuZJjZRPCpTzMzM7M+5YaamZmZWZ/yqc8uyYYqtVaco3qcp2rOUT3OUzXnqJpzVE+v8uQeNTMzM7M+5YaamZmZWZ/qWUNN0hJJKyTdWCh7saQrJP1G0tWSdkvlkvR5ScskXS9pl8IyiyTdnn4W9SpeMzMzs37Tyx61s4D9G8pOB06JiBcD/zv9DnAAsCD9HA18EUDS5sDJwO7AbsDJkub0MGYzMzOzvtGzhlpEXAasaiwGNk2vnwnck14fBJwTmSuAzSTNA/YDlkbEqoh4AFjK2MafmZmZ2bQ00Xd9vg+4WNKnyBqJe6byrYG7C/MNpbJm5S2tXbuW4eHhMeVS+dOxyzS7e6NZHatXry6d3m493YqnV3WMp57GHE2HbepFPatXry6tZypvU7djGRkZ6Uo9deMZYGBMWdkxZiJiaaeeZseliY5lkEGCsXU3vo+9iKeqjro5ms6fp6p6qnI0FbepF/X04jsOJv5mgncC74+I+cD7gTNTeVnU0aJ8DElHp+verl65cmVXgjUzMzObTBPdo7YIeG96/W3gK+n1EDC/MN82ZKdFh4C9G8ovLas4IhYDiwEWLlwYg4OD3Yq5LQMDY//yttGco3qcp+byv0gnKkcjjO35maxjTDsmOk/NDFPe+zjZcRX1Uyz9yjmqp9t5mugetXuAvdLrVwK3p9cXAoenuz/3AB6KiOXAxcC+kuakmwj2TWVmZmZm017PetQknUvWG7aFpCGyuzffDnxO0ixgNdkdngAXAQcCy4Bh4AiAiFgl6ePAVWm+j0VE4w0KZmZmZtNSzxpqEXFYk0m7lswbwDFN6lkCLOliaGY2A+mUJhdCn+zhccysf3lkAjMzM7M+5YaamZmZWZ9yQ83MzMysT7mhZmZmZtan3FAzMzMz61NuqJmZmZn1qYkemWDaajaml63nHNXjPFVzjupxnqo5R9Wco3p6lSf3qJmZmZn1KTfUzMzMzPqUG2pmZmZmfcoNNTMzM7M+5ZsJzMzMpjGPczu1uaHWJVL5B8HWc47qcZ6qOUf1dDtPZV/4U/3L3vtSNeeonl7lyac+zczMzPqUG2pmZmZmfapnDTVJSyStkHRjQ/m7Jd0m6SZJpxfKT5K0LE3br1C+fypbJunEXsU7GXSKxvyYmZmZ5Xp5jdpZwBnAOXmBpFcABwE7R8TjkrZM5TsChwIvBLYCfiJph7TYF4BXA0PAVZIujIibexi3mc0wvtjazPpVzxpqEXGZpG0bit8JnBYRj6d5VqTyg4DzUvnvJS0DdkvTlkXEnQCSzkvztmyorV27luHh4THl7Vzo12woiGZ1jIyMtF3PAANdqaeubtQxnnoat206bFMv6hkZGSEixtQ1lbep27Hk+1L+e516ip83sX7+4eFhBhkkGBtjvp6yz2rZMaZuLEW9fJ9Wr17d1VjqHrMa66nKb6fx1FFVR1UM3YxlPPXMPX3u6PnTPnzfcfdV1lH2vkH9fbgf3qepUE8vvuNg4q9R2wH4O0lXSvq5pJem8q2BuwvzDaWyZuVjSDpa0tWSrl65cmUPQjczMzObWBP9eI5ZwBxgD+ClwPmStgfKmpdBeUOytIkaEYuBxQALFy6MwcHBrgTcroGB8r9cyoww9q+UdpafqmbCNnaD89Tcuh6ecX7eAAYHBxmmvGchr79s2ck6xrSjkzy10ukxqyq//aCfYinTav/t5bJF/Z6jftHtPE10Q20IuCCy/sBfS1oLbJHK5xfm2wa4J71uVm5mZmY2rdVqqKWL/l9GdqH/CHAjcHVErG1zff8FvBK4NN0s8HRgJXAh8E1Jn07rWAD8mqynbYGk7YA/kd1w8OY212lmZmY2JbVsqKW7NE8ENgeuA1YAs4GDgb+U9B3g/0bEwyXLngvsDWwhaQg4GVgCLEmP7HgCWJR6126SdD7ZTQJrgGMi4qlUz7HAxcCGwJKIuGncW21mZmY2BVT1qB0IvD0i7mqcIGkW8FqyR2d8t3F6RBzWpM63lhVGxKnAqSXlFwEXVcQ56Zrd3WHrOUf1OE/VnKN6nKdqzlE156ieXuWpZUMtIo5rMW0N2alMMzMzM+uButeobQYcDmxbXCYi3tObsMzMzMys7l2fFwFXADcA7d5AYGZTkJ/Wb2Y2+eo21GZHxAd6GomZ2TTjxu74OYc209VtqH1N0tuB7wOP54URsaonUZnZhPCXoJlZf6vbUHsC+CTwIdaPDBDA9r0Iaipqd+yumcg5qsd5quYc1eM8VXOOqjlH9fQqT3Ubah8AnhcRHkTTzMzMbILUbajdBE0GazMz6yKfjjUzW69uQ+0p4DeSfsboa9T8eA4zMzOzHqnbUPsv/HBbM7O+MJ5eR/dYmk0tdRtq3wFWF8bf3BDYqGdRmZmZWc+54d7/6jbULgFeBTyafh8Afgzs2YugzHrNByezqc+fY5sJ2nngbd5IIyIelTTYo5jMzMymHTcsrRN1G2qPSdolIq4FkLQrMNK7sMzGr98Oiv0Wj5l1xp9lm0h1G2rvA74t6Z70+zzgTa0WkLQEeC2wIiJ2apj2QbIH6D4rIlYqe0rc54ADyR4D8k+FRuEi4MNp0X+LiLNrxmxmZlNAWcPHjR6zTK2GWkRcJekFwPMBAbdGxJMVi50FnAGcUyyUNB94NXBXofgAYEH62R34IrC7pM2Bk4GFZCMhXCPpwoh4oE7c1l0+mJqZmU2sDVpNlPS3+euIeDIiboyIG/JGmqRNJe1UtmxEXAaUjQX6GeB41g9FBXAQcE5krgA2kzQP2A9YGhGrUuNsKbB/G9tnZmZmNmVV9ai9XtLpwI+Aa4D7gNnA84BXAM8F/qXuyiT9PfCniPhtw5hYWwN3F34fSmXNyltau3Ytw8NjB1JoZxyuiPKeomZ1lK2vqp4BBsaUj4yUX/rXbjy9qKMYr8iWKW53VT2NOer1NpXlF7Icl00TGhNju2O3dRpP0fDwMBExpq5uxpKrk6P8vS7G12487bzXrWLK68ljyH+vE0vZ/pvXNcggwdgY8/emLKZmn/m6+c118jmou/+WHU/q5LdZLHWPWY31dJLfPJ5BRt+3ltfT7HPcGFPVNjV7HxsV68ljatymZsfv3AADYz5PeQySmHv63NLl7j/+/jHb2s4xuFme8n2/qJjf4nxl8ngbt+m+4+5rGU+ZbnwfTHY9vfiOg4qGWkS8X9Ic4A3AIWTXpo0AtwBfjojL664o3SX6IWDfssllq29RXlb/0cDRAPPnz68bFkDTD8fK4zy0qZmZmU2eymvU0inH/0w/4/GXwHZA3pu2DXCtpN3IesqKrattgHtS+d4N5Zc2iXMxsBhg4cKFMThY/+khI01uYG2njrzlPDBQ/pdL3fW2s/xEK4u31zkaj2bv68DAQFfe827GU5TnqZex1IlpMnIE9fPUbiyttme4yVDG+To73ffb2ZZ2tPveFNc3npg6PWZ1kt98Wqtlu5HfTo5LVdvTTNX71qvP43j2fWieo8k6RvSrXn3H1b3rc9wi4gZgy/x3SX8AFqa7Pi8EjpV0HtnNBA9FxHJJFwOfSL16kPXGnTRRMZuV8a35ZmY2UVreTDAeks4FfgU8X9KQpKNazH4RcCewjKzn7l0AEbEK+DhwVfr5WCozMzMzm/Z61qMWEYdVTN+28DqAY5rMtwRY0tXgzMzMzKaAlg01Sf/YanpEXNDdcKaudu/imImco3qcp2rOUT3OUzXnqJpzVE+v8lTVo/a6FtMCcEPNzMzM+t5Uvb646vEcR0xUIGZmZmY2WtWpzw+0mh4Rn+5uOP3JQyeZdc9U/avWzGwyVJ363GRCojAzMzOzMapOfZ4yUYGYmZmZ2Wi1Hs8haTZwFPBCsrE+AYiII3sUl5nZGPlp03zswvzJ6D5tambTVd0H3n4N+AtgP+DnZEM5PdKroMzMzMysfkPteRHxEeCxiDgbeA3w170Ly8zMzMzqNtSeTP8/KGkn4JnAtj2JyMzMzMyA+kNILU4Do38YuBB4BvCRnkVlZmZmZpXPUXtvRHwOuCUiHgAuA7afkMjMrCv83DIzs6mr6tRnPjLBf/Q6kKkuIsjGlrdmnKN6nKdqSv+sNe9L1Zyjas5RPb3KU9Wpz1sk/QF4lqTrC+XKYoqdux6RmZlNOe65NeuNlj1qEXEYsAewjGyA9vzntbQesB1JSyStkHRjoeyTkm6VdL2k/ydps8K0kyQtk3SbpP0K5funsmWSTuxoK83MzMymoMqbCSLi3jTm530RMdxG3WcBZwDnFMqWAidFxBpJ/w6cBJwgaUfgULIH6m4F/ETSDmmZLwCvBoaAqyRdGBE3txGH2ZTn3gozs5mp7l2fi4AvSrof+EX6uTzdYFAqIi6TtG1D2Y8Lv14BvCG9Pgg4LyIeB34vaRmwW5q2LCLuBJB0XprXDTXrS25QmZlZN9VqqEXE4QCStiJrXH2BrOerbkOvzJHAt9LrrckabrmhVAZwd0P57lUVr127luHhsZ1/UvmXaD4cTaO8jkEG15UF2RfuyEg2dM3c0+cCMDuNrLWa1QDcf/z92fxNLiyUVLrevN5Greqpa7x1FOPNL+Qu5rmqnnzb8vl6vU3N3teRkZHSaUJj9puyWFrVW9xX1sVINF1nvlzj743bNcjgun2v1bKj1pvqKNt/82Xr5Kjxov08R52+T63igdb5HWAAoXWft7yOVnnIle2/kG1PVX7LYio7xsDovNR5zzv5HNTdfxs/c1UxVcXS6pjVOK14jOgkv3k8jZ+p4jG4G/kty1GZsn24cZuq9sN8/200PDzc9jGrnWNwq++4Vvktrr+s/l4dI4raqaOqnrrH4MZ6nvXJZ2VlDe93/j3fWE83v+Og/lifbwX+jmw0gpVkpzR/0daaRtf3IWAN8I28qGS2oPwautItl3Q0cDTA/PnzOw1tWsgbj0WNO9RkaHfnnKmcJ+sW70vVnKNqzlE9vcpT3R6xzwJ3AF8CfhYRf+h0hZIWkd2MsE+sb24OAcXW1TbAPel1s/JRImIxsBhg4cKFMTg4tmejmXxg50Z5HcOM/ct5YGD0oNCNdeXT211vneX6qd528tzNWOpo9r4ODAxUvued1lu2r1Sts1k+iuWt6q3SaUzjyVGn8UC9923dX/3j/LxBtj2dxDTefWU86r4363rCCusbT0ytji3dzm8+rZufqVaKy1RdwtDp57HqfZvoY1ad96ZVWa+OEb3S6f7S7vvd7e+4uqc+t5D0QuDlwKmSFgC3RcTb2lmZpP2BE4C9Gm5MuBD4pqRPk51SXQD8mqynbYGk7YA/kd1w8OZ21mk23fm6ODOz6avuqc9NgecAzyUb4/OZwNqKZc4F9ga2kDQEnEx2l+dGwNL0l94VEfGOiLhJ0vlkNwmsAY6JiKdSPccCFwMbAksi4qY2t9HMzMxsSqp76vPyws8ZETFUtUB6BlujM1vMfypwakn5RcBFNeO0Cu596V/5e5Nf8LruNJ/fm77mz1T/8ntj00HdU587A0jahCYX85uZmZlZd1WN9QmApJ0kXQfcCNws6RpJO/U2NDMzM7OZre6pz8XAByLiZwCS9k5le/YoLjMz61DZaXSf7jObmuo21DbOG2kAEXGppI17FJOZmVlP+ZpQmyrqNtTulPQR4Gvp97cCv+9NSGZmZmYG9RtqRwKnABeQPdvsMuCIXgVlZv3Pd9SZmfVe3bs+HwDe0+NYbJprNu6ZmZn1Lx+76+lVnuo+8HYH4INkD7tdt0xEvLInUU1BZQPt2tQ02T1F3peqOUf1OE/VnKPm8mNhPnB7PpSSe80nVt1Tn98mG+fzK8BTvQvHzMzMzHJ1G2prIuKLPY3EzMzMzEap9cBb4L8lvUvSPEmb5z89jczMzMxshqvbo7Yo/X9coSyA7bsbjpmZmZnl6t71uV2vA5nqwkOgVpJ80W4d3peqOUf1OE/VnKNqzlFrvX54csuGmqSXAndHxL3p98OB1wN/BD4aEau6EoWNMdl3HprZ5PIxwMyg+hq1LwNPAEh6OXAacA7wENlYn2ZmZmbWI1UNtQ0LvWZvAhZHxHcj4iPA81otKGmJpBWSbiyUbS5pqaTb0/9zUrkkfV7SMknXS9qlsMyiNP/tkhaVrcvMzMxsOqq6Rm1DSbMiYg2wD3B0G8ueBZxB1gOXOxG4JCJOk3Ri+v0E4ABgQfrZHfgisHu6s/RkYCHZzQvXSLowjZRgM0Cr0z8+NWRmZtNdVWPrXODnklYCI8AvACQ9j+z0Z1MRcZmkbRuKDwL2Tq/PBi4la6gdBJwT2fgLV0jaTNK8NO/SvFdP0lJg/xRXU2vXrmV4eHhMebOL2fMLABvldeRPZYb1F1WOjIyMWnY2s0ctm09vNqSEpNL1Nta7bv709OzG7Srbpmb1RsSobckFsW69rRTrLYun6maBxnW0yk3ZOhvryqc1Pll8eHi4aX4blx21XsTw8PC6HDVeQNvsvSlOb5XfVssV653NbJT+5dszyGDpBb2t6m21/1YtW5XfYrzNtqeo+F63iqeq3gEGEFr3eRMa1/6bb0+r/DaLqSy/xW2q855D889Bp/tvMaaN2KjWtuTTqz6TnR6zOslvs2NWO/lttQ+3OnbX/UyVHSPmnj63dNn7j79/3f5bVm+7x6x2jsGttqdOfpt9v1UdI9q5gazO98F46xnvMavqO6ExT2XtkDyWdrRsqEXEqZIuAeYBP471kW8AvLutNWWeHRHLU93LJW2ZyrcG7i7MN5TKmpWPIeloUo/f/PnzOwjNeiU/cOU78WpWA7DyuJWTFpOZjbXFJ7cobUisPN6fVet/+XdN4z5833H3TUY4XVP5eI6IuKKk7HddjqOseRktyscWRiwm3eCwcOHCGBwc27PRTH4rbaO8jnx8s6KBgdG34TbWlU9vd73N6m2MqdN6y7alOL3dejuJJ/+9022BLN6qHHW6bFWOWtXbatlWy5XVW8xTJ/W22n/rxDSe/LYynvyuu+09/6u/8HmrOhXe7fd8vPmtMp73Zt2YjIU8tZPfZvF2eszqJL91jlmdxJvH1OrY3Y+fqW5/J+TLtrMtjd9v44mpF/rlmNXOd1wddR942y1/ljQv9abNA1ak8iGg2A22DXBPKt+7ofzSCYhzRhrPNV++XszMzKz7JrqhdiHZKAenpf+/Vyg/VtJ5ZDcTPJQacxcDn8jvDgX2BU6a4Jj7jhtFZmZmM0PPGmqSziXrDdtC0hDZ3ZunAedLOgq4CzgkzX4RcCCwDBgGjgCIiFWSPg5cleb7mB+ya2bTRdkfXf6Dy6Y7dza0p2cNtYg4rMmkfUrmDeCYJvUsAZZ0MTQzMzOzKWGiT31OGrfgzczMbCJ1o+0xYxpqvVZ2S7uN5hzV4zxVc47qcZ6qOUfVnKN6epWnqiGkzMzMzGySuKFmZmZm1qfcUDMzMzPrU75GrUvKxrGz0Zyjepynas5RPc5TtemQo17fLDfROZqqN//1Kk/uUTMzMzPrU+5R66Gp+leBmZmZ9Qf3qJmZmZn1KTfUzMzMzPqUG2pmZmZmfcoNNTMzM7M+5YaamZmZWZ/yXZ9mZoVD8OAAAA33SURBVGbWVX7qQfdMSkNN0vuBfwYCuAE4ApgHnAdsDlwLvC0inpC0EXAOsCtwP/CmiPjDZMRtveEPtJmZWbkJP/UpaWvgPcDCiNgJ2BA4FPh34DMRsQB4ADgqLXIU8EBEPA/4TJrPzMzMbNqbrGvUZgEDkmYBg8By4JXAd9L0s4GD0+uD0u+k6ftIKu+CMTMzM5tGJvzUZ0T8SdKngLuAEeDHwDXAgxGxJs02BGydXm8N3J2WXSPpIWAusLLZOtauXcvw8PCosgEGSucdGRlpOi2vY5DB9fGnsbxGRkZG1Tub2U3rFaPblcPDw0gqXW9jvbm8juHh4XXxNI4r1mzZfFpEjNqW4ja1ykNZvcV4mq0zX7ZZjlrlt3HZVvW2k99W9Qp1nN98ejfyO5vZKP3Lt2eQwdJx5Drdf6uWrcpvMd5m21MUsX69reKpqneAAYTW7UtC49p/8+1pld9mMZXlt7hN7cTUGE+zdbaqN99/izFtxEa1tqVYb+P7XbVs3WNWu/ltdswab37zmOocuxs15rfsGNFJfjs5Zo33O6Fx2VxZfstyVKy3VX7rbEtxOag+RjQznu+ERmXHrKr8ln3HtfpOqGvCG2qS5pD1km0HPAh8GzigZNY8I2W9Z2M+8ZKOBo4GmD9/fldibUfZh89Gc47qKTbSpqq5p88dUybEfcfd15X6p3p+JorzVM05quYc1dOrPE3GzQSvAn4fEfcBSLoA2BPYTNKs1Ku2DXBPmn8ImA8MpVOlzwRWNVYaEYuBxQALFy6MwcHRrdgRyluvAwMDTafldQwzPGbawMDAqHrzNyj/vU69ZdMb6y1btiyeqmXzaa2WbZWjZvW22pbGehtz1Cq/dWLqJL91lu0kv/n0buR33V/Kqa6qmDrZf+vE1I/5bZyW19Xp/juemMab36p6u3nMGmGko/zWiXeqHbPymMZz7J4un6m6x5ayHFXV2+3v3OJ6mxlPflupm9+y77hOt6VoMq5RuwvYQ9JgutZsH+Bm4GfAG9I8i4DvpdcXpt9J038axT5JMzMzs2lqwhtqEXEl2U0B15I9mmMDsp6wE4APSFpGdg3amWmRM4G5qfwDwIkTHbOZmZnZZJiU56hFxMnAyQ3FdwK7lcy7GjhkIuIyMzMz6ycemaBLyu5ostGco3qcp2rOUT3OUzXnqJpzVE+v8uSxPs3MzMz6lHvUzMzMbEbr56EM3aNmZmZm1qfcUDMzMzPrU26omZmZmfUpN9TMzMzM+pQbamZmZmZ9yg01MzMzsz7lx3OYmZnZlNDPj9HoFfeomZmZmfUpN9TMzMzM+pQbamZmZmZ9yteodYkoP29u6zlH9ThP1Zyjepynas5RNeeonl7laVJ61CRtJuk7km6VdIukv5G0uaSlkm5P/89J80rS5yUtk3S9pF0mI2YzMzOziTZZpz4/B/woIl4AvAi4BTgRuCQiFgCXpN8BDgAWpJ+jgS9OfLhmZmZmE2/CG2qSNgVeDpwJEBFPRMSDwEHA2Wm2s4GD0+uDgHMicwWwmaR5Exy2mZmZ2YSbjGvUtgfuA74q6UXANcB7gWdHxHKAiFguacs0/9bA3YXlh1LZ8mYrWLt2LcPDw6PKBhgonXdkZKTptLyOQQbXlQWxbrlivbOZPWZ6Pq3xvPXw8DCSStfbWG8ur2N4eHhdPPm6qpbNp0XEqG0pblOrPJTVW4yn2TrzZZvlqFV+G5dtVW87+W1Vr1DH+c2ndyO/s5k9apvymBrjabUt+XLQm/wW460bU2N+y+KpU68Y/d6OZ//Nt6dVfpvFVJbf4ja1E1NjPM3W2arePL/FmIqfuXbyWxVvnWmNx6x289vsmDXe/OYx1Tl2N2rMb9kxopP8dnLMGu93QuOyubI8lOWoWG+r/NbZluJy0B/fCZ3kt+w7rtV3Ql2KmNiHxElaCFwBvCwirpT0OeBh4N0RsVlhvgciYo6kHwD/JyIuT+WXAMdHxDUN9R5NdmoU4PnAbROwOY22AFZOwnqnEueoHuepmnNUj/NUzTmq5hzV02menhsRzyqbMBk9akPAUERcmX7/Dtn1aH+WNC/1ps0DVhTmn19YfhvgnsZKI2IxsLh3YVeTdHVELJzMGPqdc1SP81TNOarHearmHFVzjurpRZ4m/Bq1iLgXuFvS81PRPsDNwIXAolS2CPheen0hcHi6+3MP4KH8FKmZmZnZdDZZz1F7N/ANSU8H7gSOIGs0ni/pKOAu4JA070XAgcAyYDjNa2ZmZjbtTUpDLSJ+A5R1De5TMm8Ax/Q8qO6Y1FOvU4RzVI/zVM05qsd5quYcVXOO6ul6nib8ZgIzMzMzq8djfZqZmZn1KTfUWpC0RNIKSTcWyl4k6VeSbpD03+kBvkjaVtKIpN+kny8Vltk1zb8sDYc1rQZOaydPadrOadpNafrsVD5t89TmvvSWwn70G0lrJb04TZu2OYK28/Q0SWen8lsknVRYZn9Jt6U8nVi2rqmqzRw9XdJXU/lvJe1dWGba7kuS5kv6WdovbpL03lTe9lCFkhal+W+XtKjZOqeaDnL0grSPPS7pgw11TefPW7t5ekvah66X9Etlz4vN6+osTxHhnyY/ZCMo7ALcWCi7CtgrvT4S+Hh6vW1xvoZ6fg38DSDgh8ABk71tk5inWcD1wIvS73OBDad7ntrJUcNyfw3c6X2pdF96M3Beej0I/CF9DjcE7iB7uPbTgd8CO072tk1Sjo4Bvppeb0n2gPENpvu+BMwDdkmvNwF+B+wInA6cmMpPBP49vT4w5UDAHsCVqXxzshveNgfmpNdzJnv7JilHWwIvBU4FPlioZ7p/3trN0575PkI2BGa+L3WcJ/eotRARlwGrGoqfD1yWXi8FXt+qDmXPhNs0In4V2bt1DuuHx5oW2szTvsD1EfHbtOz9EfHUdM/TOPalw4BzwftSel3MUwAbS5oFDABPkD08ezdgWUTcGRFPAOeRDUU3LbSZox3Jxk4mIlYADwILp/u+FBHLI+La9PoRsvGkt6b9oQr3A5ZGxKqIeIAst/tP4Kb0TLs5iogVEXEV8GRDVdP989Zunn6Z9hXIHu6/TXrdcZ7cUGvfjcDfp9eHMPphvNtJuk7SzyX9XSrbmuyhvbl8CKzprlmedgBC0sWSrpV0fCqfiXlqtS/l3kRqqDEzcwTN8/Qd4DGy4eTuAj4VEatoPuzcdNYsR78FDpI0S9J2wK5p2ozZlyRtC7wEuJKGoQrJeomg+T4zI/almjlqZkbkCDrK01FkPbUwjjy5oda+I4FjJF1D1g36RCpfDjwnIl4CfAD4ZrpOpOy6j5lwq22zPM0C/hZ4S/r/HyTtw8zMU7McASBpd2A4IvJrkWZijqB5nnYDngK2ArYD/kXS9szMPDXL0RKyL4Srgc8CvwTWMENyJOkZwHeB90XEw61mLSmLFuXTRhs5alpFSdm0yhG0nydJryBrqJ2QF5XMVitPk/XA2ykrIm4lO32HpB2A16Tyx4HH0+trJN1B1ns0xPquT2gyBNZ00yxPZPn4eUSsTNMuIrve5uvMsDy1yFHuUNb3poH3pcY8vRn4UUQ8CayQ9D9kz2e8mxrDzk0nLY5La4D35/NJ+iVwO/AA03xfkvQ0si/Wb0TEBam43aEKh4C9G8ov7WXcE6nNHDVTa5jHqazdPEnaGfgK2XWf96fijvPkHrU2Sdoy/b8B8GHgS+n3Z0naML3eHlhAdhH4cuARSXuku6oOZ/3wWNNWszwBFwM7SxpM1xbtBdw8E/PUIkd52SFk1zEA67rXZ1SOoGWe7gJeme7Y25jsIvBbyS6sXyBpO2WjnxxKNhTdtNXiuDSYcoOkVwNrImLaf97SNp0J3BIRny5ManeowouBfSXNSXf17ZvKprwOctTMtP68tZsnSc8BLgDeFhG/K8zfeZ4m+g6KqfRD1puxnOziySGybsz3kt318TvgNNY/NPj1wE1k14RcC7yuUM9CsmtI7gDOyJeZLj/t5CnN/9aUqxuB02dCnjrI0d7AFSX1TNsctZsn4BnAt9O+dDNwXKGeA9P8dwAfmuztmsQcbQvcRnYB9E+A586EfYnssoogu8P8N+nnQLK7zC8h61W8BNg8zS/gCykXNwALC3UdSTaE4TLgiMnetknM0V+k/e1hsptShshuSJnun7d28/QVsh7rfN6rC3V1lCePTGBmZmbWp3zq08zMzKxPuaFmZmZm1qfcUDMzMzPrU26omZmZmfUpN9TMzMzM+pQbamY2o6VnZ10u6YBC2Rsl/Wgy4zIzA/x4DjMzSTuRPZPtJcCGZM8/2j8i7hhHnbMiGxnAzKxjbqiZmQGSTicb5H1j4JGI+LikRcAxwNPJxsk8NiLWSlpMNvTZAPCtiPhYqmMI+DKwP/DZiPj2JGyKmU0jHuvTzCxzCtmoIk8AC1Mv2z8Ae0bEmtQ4OxT4JnBiRKxKw6D9TNJ3IuLmVM9jEfGyydgAM5t+3FAzMwMi4jFJ3wIejYjHJb0KeClwdTbcHwNkA74DHCbpKLJj6FbAjmTDWAF8a2IjN7PpzA01M7P11qYfyMZ/XBIRHynOIGkB2diau0XEg5K+DswuzPLYhERqZjOC7/o0Myv3E+CNkrYAkDRX0nOATYFHgIclzQP2m8QYzWyac4+amVmJiLhB0inATyRtADwJvAO4muw0543AncD/TF6UZjbd+a5PMzMzsz7lU59mZmZmfcoNNTMzM7M+5YaamZmZWZ9yQ83MzMysT7mhZmZmZtan3FAzMzMz61NuqJmZmZn1KTfUzMzMzPrU/wd9sea7c2Qn6wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Create bar plot time series of Alta seasonal snowfall\n", "#create a list for the times for tick marks on the x axis. This will stop at 2020 (not 2030)\n", "decade_ticks = np.arange(1950,2030,10)\n", "\n", "#create a fig of Alta snowfall time series\n", "fig,(ax1) = plt.subplots(1,1,figsize=(10,3))\n", "ax1.bar(year,snow,color='green')\n", "ax1.set(xlim=(1946,2022),ylim=(600,2000))\n", "ax1.set(xlabel=\"Year\",ylabel=\"Snowfall (cm)\")\n", "ax1.set(xticks=decade_ticks)\n", "ax1.set(title=\"Alta Snowfall: 1946-2021\")\n", "#add grids to the plot\n", "ax1.grid(linestyle='--', color='grey', linewidth=.2)\n", "\n", "#save the figure to \n", "plt.savefig('alta_snowfall.png')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#generate a Gaussian type empirical distribution for figure 1.3\n", "from numpy.random import normal\n", "sample = normal(loc=0, scale=1, size=1000000)\n", "# plot the histogram\n", "fig,(ax1) = plt.subplots(1,1,figsize=(5,5))\n", "ax1.hist(sample, bins=31, color='cyan',edgecolor='black',linewidth=1,align='mid')\n", "ax1.set(xlim=(-3,3),ylim=(0,150000))\n", "ax1.set(xlabel=\"Magnitude\",ylabel=\"Count\")\n", "ax1.set(title=\"Figure 1.3\")\n", "#add grids to the plot\n", "ax1.grid(linestyle='--', color='grey', linewidth=.2)\n", "#save the figure to \n", "plt.savefig('figure_1.3.png')\n" ] } ], "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.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }