{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ENV / ATM 415: Climate Laboratory, Spring 2016\n", "\n", "## Assignment 3\n", "\n", "Out: Tuesday February 23, 2016\n", "\n", "Due: Thursday March 3, 2016 at 10:15 am." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "____________________________________________\n", "\n", "## About this document\n", "\n", "This file is a [Jupyter notebook](http://jupyter-notebook.readthedocs.org/en/latest/notebook.html) (also formerly called IPython notebook).\n", "\n", "Each cell contains either a block of Python code, or some formatted text.\n", "\n", "To open this document, you should launch your Jupyter notebook server by typing\n", "```\n", "jupyter notebook\n", "```\n", "from your command line (or use the `ipython-notebook` button on the Anaconda launcher)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic navigation\n", "\n", "To select a particular cell for editing, just double-click on it.\n", "\n", "There is a pull-down menu at the top of the window, used for setting the content of each cell. A text cell like this one will say `Markdown`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8\n" ] } ], "source": [ "# This is an example of a Python code cell.\n", "# Note that I can include text as long as I use the # symbol (Python comment)\n", "\n", "# Results of my code will display below the input\n", "\n", "print 3+5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Go ahead and edit the Python code cell above to do something different. To evaluate whatever is in the cell, just press `shift-enter`.\n", "\n", "Notice that you are free to jump around and evaluate cells in any order you want. The effect is exactly like typing each cell into a Python console in the order that you evaluate them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Your assignment\n", "\n", "Answer all questions below, using the example code as a guide.\n", "\n", "**You will submit your work as a single notebook file**. You can use this file as a template, or create a new, empty notebook. Select `Markdown` for cells that contain your written answers to the questions below.\n", "\n", "Save your notebook as\n", "```\n", "[your last name]_Assignment03.ipynb\n", "```\n", "\n", "(so for example, my submission would be `Rose_Assignment03.ipynb`).\n", "\n", "The easiest way to do this is just click on the title text at the top of the window. Currently it says `Assignment03`. When you click on it, you get a prompt for a new notebook name.\n", "\n", "Try to make sure your notebook **runs from start to finish without error**. Do this:\n", "\n", "- Save your work\n", "- From the `Kernel` menu, select `Restart` (this will wipe out any variables stored in memory).\n", "- From the `Cell` menu, select `Run All`. This will run each cell in your notebook in order.\n", "- Did it reach the end without error, and with the results you expected? \n", " - Yes: Good. \n", " - No: Find and fix the errors. (remember that the Python interpreter only knows what has already been defined in previous cells. The order of evaluation matters)\n", "- Save your work and submit your notebook file by email to \n", "\n", "_________________________________" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/Brian/anaconda/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n", " warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n" ] } ], "source": [ "# We usually want to begin every notebook by setting up our tools:\n", "\n", "# graphics in the notebook, rather than in separate windows\n", "%matplotlib inline \n", "\n", "# Some standard imports\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# We need the custom climlab package for this assignment\n", "import climlab" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Question 1\n", "\n", "(Primer Section 3.8, Review question 1)\n", "\n", "List 10 questions that a strictly zero-dimensional climate model cannot answer. For at least five of the 10 questions, add your explanation of why." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Your answer here..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_______________________\n", "\n", "## Question 2\n", "\n", "(Primer Section 3.8, Review question 2)\n", "\n", "The similarities between the first two EBMs (those of Budyko and Sellers) are fairly obvious -- what are they? Now list at least differences bewteen these very early EBMs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Your answer here..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_________________\n", "\n", "## Question 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the function `climlab.solar.insolation.daily_insolation()`, calculate the incoming solar radiation (insolation) at three different latitudes: \n", "- the equator\n", "- 45ºN\n", "- the North Pole. \n", "\n", "Use present-day orbital parameters.\n", "\n", "a) **Make a well-labeled graph** that shows **all three insolation curves on the same plot**. The x\n", "axis of your graph should be days of the calendar year (beginning January 1), and the y axis should be insolation in W/m2. Include a legend showing which curve corresponds to which latitude.\n", "\n", "b) Comment on the very different shapes of these three curves." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# This is a code cell. \n", "# Use the '+' button on the toolbar above to add new cells. \n", "# Use the arrow buttons to reorder cells." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a text cell." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_____________________________\n", "\n", "## Question 4\n", "\n", "**Make the same graph using the orbital parameters of 10,000 years ago** (just after the end of the last ice age). Compare with your graph from Question 1 to answer these questions:\n", "\n", "a) Was the insolation at northern high latitudes at summer solstice weaker or stronger 10,000 years ago compared to present conditions?\n", "\n", "b) Was the summer season longer or shorter at high northern latitudes? To see this, look at the length of time between polar sunrise and polar sunset.\n", "\n", "c) What other differences do you notice?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_______________________________\n", "\n", "## Question 5\n", "\n", "a) Calculate the **annual average insolation** for an array of latitudes ranging from the South Pole to the North Pole.\n", "\n", "There is more than one way to do this. You loop through a list of days of the year, add up the insolation, and divide by the number of days. Or you can use a shortcut like `np.mean()`.\n", "\n", "Present your results as a well-labeled graph of annual average insolation as a function of latitude. You may use either present-day, or any other orbital parameters, but make sure you explain clearly what you using." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Recall that the equilibrium temperature in our zero-dimensional EBM is\n", "\n", "$$ T_{eq} = \\left( \\frac{(1-\\alpha) ~ Q}{\\tau~ \\sigma} \\right)^{\\frac{1}{4}} $$\n", "\n", "\n", "**Suppose that this model applies independently at every latitude, where $Q$ is the annual average insolation at that latitude** (i.e. ignore exchanges of energy between adjacent latitude bands). Using the annual mean $Q$ you computed in part (a), make a graph of $T_{eq}$ as a function of latitude. Make sure to state clearly any assumptions you make about the parameter values $\\alpha, \\tau$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) What are typical annual-average surface temperature values at the South Pole, North Pole, and equator on Earth? Make sure to state your sources for these numbers. How do these compare to the equilibrium temperatures you computed in part (b)? Discuss some possible shortcomings of the simple model you used in part (b)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_________________________________\n", "\n", "## Bonus question (for fun and extra credit)\n", "\n", "Repeat question 4 and 5 for a planet with zero eccentricity and 90º obliquity.\n", "\n", "Speculate on what the seasonal cycle of temperature might look like at different locations on this planet.\n", "\n", "*90º obliquity means the planet’s rotation axis is parallel with the earth-sun plane, as if the planet were lying on its side. In our solar system, the planet Uranus has an obliquity close to 90º, as do many of the newly discovered extra-solar planets.*" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }