{ "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", "- Follow these directions for doing these steps using a linux terminal window\n", "- are you in your atmos_5340/chapter1 directory?\n", "- check the directory you are in: pwd\n", "- If not in that directory, then type: cd \n", "- And then type: cd atmos_5340/chapter1\n", "- Type the following (Note the dot after the space): cp ~u0035056/atmos_5340_2022/chapter1/* . \n", "- Have you already copied the data directory? If not, you'll need to do that too. Review the instructions for that\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": 14, "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 2022" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1946. 1947. 1948. 1949. 1950. 1951. 1952. 1953. 1954. 1955. 1956. 1957.\n", " 1958. 1959. 1960. 1961. 1962. 1963. 1964. 1965. 1966. 1967. 1968. 1969.\n", " 1970. 1971. 1972. 1973. 1974. 1975. 1976. 1977. 1978. 1979. 1980. 1981.\n", " 1982. 1983. 1984. 1985. 1986. 1987. 1988. 1989. 1990. 1991. 1992. 1993.\n", " 1994. 1995. 1996. 1997. 1998. 1999. 2000. 2001. 2002. 2003. 2004. 2005.\n", " 2006. 2007. 2008. 2009. 2010. 2011. 2012. 2013. 2014. 2015. 2016. 2017.\n", " 2018. 2019. 2020. 2021. 2022.]\n", "[1145.54 949.96 1394.46 1328.42 1211.58 886.46 1628.14 1043.94\n", " 972.82 1198.88 1168.4 980.44 1421.13 980.44 1004.57 828.04\n", " 1019.81 1018.54 1437.64 1455.42 1099.82 1381.76 1217.93 1437.894\n", " 1165.86 1223.01 1185.164 1261.11 1512.824 1536.7 1116.33 798.83\n", " 1332.23 1493.52 1305.56 993.14 1767.84 1617.98 1888.49 1160.78\n", " 1521.46 969.772 1042.162 1477.01 1137.92 1473.708 1003.3 1652.016\n", " 1245.362 1893.316 1427.48 1521.714 1460.246 1164.336 1132.84 1193.038\n", " 1441.958 1014.476 1449.832 1406.144 1609.09 904.24 1661.16 1468.12\n", " 1092.2 1404.62 836.93 971.55 908.05 679.45 998.22 1347.47\n", " 731.52 1206.5 1056.64 949.96 717.296]\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 = 1)\n", "print(year)\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=1)\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": 16, "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", "
Alta Snow (cm)
19461145.5
1947950.0
19481394.5
19491328.4
19501211.6
......
2018731.5
20191206.5
20201056.6
2021950.0
2022717.3
\n", "

77 rows × 1 columns

\n", "
" ], "text/plain": [ " Alta Snow (cm)\n", "1946 1145.5\n", "1947 950.0\n", "1948 1394.5\n", "1949 1328.4\n", "1950 1211.6\n", "... ...\n", "2018 731.5\n", "2019 1206.5\n", "2020 1056.6\n", "2021 950.0\n", "2022 717.3\n", "\n", "[77 rows x 1 columns]" ] }, "execution_count": 16, "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": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\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=(1945,2023),ylim=(600,2000))\n", "ax1.set(xlabel=\"Year\",ylabel=\"Snowfall (cm)\")\n", "ax1.set(xticks=decade_ticks)\n", "ax1.set(title=\"Alta Snowfall: 1946-2022\")\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": 18, "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 (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.5" } }, "nbformat": 4, "nbformat_minor": 4 }