{
 "metadata": {
  "name": "",
  "signature": "sha256:a316c159f0ae91b72b083f5776bf1a91ba0db78467df44905bede050dcae6ff9"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Working with Imaging Data"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Data"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The data that will be analyzed is available here: http://www.phys.ethz.ch/~ast/cosmo/ASCW/Imaging/\n",
      "\n",
      "Images and additional files are split up in different folders, depending on whether SExtractor is installed and/or one wants to look at full images.\n",
      "- Required: In here are all the files required for this session\n",
      "- +SExtractorFiles: Those files are required to run SExtractor\n",
      "- +AdditionalData: In here full images can be find (very large, 4GB each)"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Software Download and Installation"
     ]
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "DS9"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "DS9 is a software to visualize FITS-images, data cubes, spectra, and tables.\n",
      "\n",
      "The software can be found here: http://ds9.si.edu/site/Download.html (Mac, Linux, and Windows). Installation should be straight-forward.\n",
      "\n",
      "It can also be installed via Macports on Mac and apt-get on Linux."
     ]
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "pyfits"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "There are different python modules that can handle FITS files. The most commonly used are astropy and pyfits. The latter was merged into astropy, and it won't be supported anymore in the near future. For the purpose of this course, it is however adviseable to install pyfits, as astropy contains a lot more functions not needed for this session.\n",
      "\n",
      "Installation of pyfits is straight-forward and is described here: http://www.stsci.edu/institute/software_hardware/pyfits/Download. It can be installed with pip, easy_install, or macports:\n",
      "- $: pip install pyfits\n",
      "\n",
      "- $: easy_install pyfits\n",
      "\n",
      "- $: port install py27-pyfits (for python 2.7)"
     ]
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "SExtractor"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Installing SExtractor for this session is not required, but might give more insight. SExtractor output catalogs, which can be read with numpy, will be provided. Installing it is slightly more tricky. Do not try for too long in case it shouldn't work out of the box. Installation might also take a couple of hours (it requires ATLAS). Therefore, if desired it should be installed before the start of the session.\n",
      "\n",
      "A working version can now be found in Macports. It is also available via apt-get on Linux. This is the esiest way to install the software package.\n",
      "\n",
      "A package can also be found on the official SExtractor website: http://www.astromatic.net/software/sextractor. It might however not work out of the box and some patches may be required. If that's the case, don't bother trying to fix it.\n",
      "\n",
      "ATLAS needs to be installed. An installation guide can be found here: http://math-atlas.sourceforge.net/atlas_install/ (also available via apt-get and Macports)."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "FITS-Files"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "FITS is a file standard commonly employed in astronomy. It can handle many different types of astronomical data (images, spectra, data tables, data cubes, ...). There are packages for all the commonly used programming languages in astronomy (C, Fortran, Python, IDL, ...) to deal with FITS files.\n",
      "\n",
      "FITS files store data in different so called 'extensions'. Every extension consists of a 'header' and a 'data' section. The 'header' contains information on the data set (metadeta; e.g. when the image was taken and processed, which conventions were chosen, what region in the sky was imaged, etc.). The 'data' section then contains the data set.\n",
      "\n",
      "Advantages:\n",
      "- Everyone uses FITS files\n",
      "- Can deal with various kinds of astronomical data and was optimized to deal with them well\n",
      "- Can store in different extensions different information on a given target (everyhing in one file)\n",
      "- Header allows one to have access to all the information to understand the data set\n",
      "\n",
      "See also: http://www.aanda.org/index.php?option=com_article&access=bibcode&Itemid=129&bibcode=2001A%2526A...376..359HFUL"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Challenge I: Look at images"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Optically examining any imaging dataset should be the first step in working with any new dataset. It allows one to quickly assess the quality of the image and spot special features. In many cases, it is helpful to examine special objects that might introduce biases in the analysis.\n",
      "\n",
      "A common tool to display images is ds9."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "- To open an image with ds9 from the terminal type (will open the first non-empty extension, and can load others):\n",
      "    - $: ds9 Required/des_r_cutout.fits\n",
      "\n",
      "- To open a specific extension i:\n",
      "    - $: ds9 AdditionalData/des_r.fits[i]\n",
      "\n",
      "An interactive session is launched and most tools are best understand by trying."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "If different images in different filters are available, ds9 can also make nice fake-color rgb images. This can be done by typing in the terminal:\n",
      "- $: ds9 -rgb -red Required/des_i_cutout.fits -green Required/des_r_cutout.fits -blue Required/des_g_cutout.fits"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Interesting questions which can already be asked are:\n",
      "- How many objects are there?\n",
      "- Is there any structure in the image?\n",
      "- Are there artifacts?\n",
      "- What objects can be seen? Which are stars, which are galaxies?\n",
      "\n",
      "The last question, which is also known as the 'Star/Galaxy-Separation'-problem, is extremely relevant for all analyses, as stars can pollute a galaxy sample or vice-versa. Depending on the science question adressed, this can lead to significant biases in the analysis."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Challenge II: Detect objects and find out which are stars, which are galaxies"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "To detect objects and measure certain properties, special tools are applied. A commonly used software is SExtractor. It analyzes images and Extracts Sources. For all those sources, some properties are measured or assigned by fitting certain profiles."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "To execute SExtractor to extract sources and write them in a catalog, the following command was executed:\n",
      "- $: sex AdditionalData/des_r.fits -c SExtractorFiles/default.sex -CATALOG_NAME Required/des_r_out.fits"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "There are a couple of products besides an output catalog SExtractor can output. In this session we however only care about the output catalog. In this catalog, every row is an object, the columns are measured or fitted properties."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "An interesting plot to look at besides 1d-histograms of all the quanities is the magnitude vs. size plane.\n",
      "\n",
      "Note: The magnitude corresponds to the brightness of sources and is a logarithmic scale of the flux. Large magnitude values correspond to faint, small values to bright objects. Example: Sun (daytime) has magnitude -27, Sirius has magnitude -1.5"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "import matplotlib\n",
      "import matplotlib.pyplot as plt\n",
      "%matplotlib inline\n",
      "\n",
      "import pyfits as pf\n",
      "#If you're using astropy instead, comment the line above and uncomment the next line:\n",
      "#import astropy.io.fits as pf"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Modify this path to the base directory where the data is stored\n",
      "DATAPATH = '/Users/cbruderer/ETH_Astro/AdvSciCompWorkshop/ImagingSession/'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fname = DATAPATH+'Required/des_r_out.cat'\n",
      "HDUlist = pf.open(fname)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The relevant SExtractor output tables are saved in the second extension. Let's have a look therefore at it's contents:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cat = HDUlist[2]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cat.header"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "XTENSION= 'BINTABLE'           / THIS IS A BINARY TABLE (FROM THE LDACTOOLS)    \n",
        "BITPIX  =                    8 /                                                \n",
        "NAXIS   =                    2 /                                                \n",
        "NAXIS1  =                   78 / BYTES PER ROW                                  \n",
        "NAXIS2  =                  724 / NUMBER OF ROWS                                 \n",
        "PCOUNT  =                    0 / RANDOM PARAMETER COUNT                         \n",
        "GCOUNT  =                    1 / GROUP COUNT                                    \n",
        "TFIELDS =                   17 / FIELDS PER ROWS                                \n",
        "EXTNAME = 'LDAC_OBJECTS'       / TABLE NAME                                     \n",
        "TTYPE1  = 'NUMBER  '           / Running object number                          \n",
        "TFORM1  = '1J      '                                                            \n",
        "TDISP1  = 'I10     '                                                            \n",
        "TTYPE2  = 'FLAGS   '           / Extraction flags                               \n",
        "TFORM2  = '1I      '                                                            \n",
        "TDISP2  = 'I3      '                                                            \n",
        "TTYPE3  = 'X_IMAGE '           / Object position along x                        \n",
        "TFORM3  = '1E      '                                                            \n",
        "TUNIT3  = 'pixel   '                                                            \n",
        "TDISP3  = 'F11.4   '                                                            \n",
        "TTYPE4  = 'Y_IMAGE '           / Object position along y                        \n",
        "TFORM4  = '1E      '                                                            \n",
        "TUNIT4  = 'pixel   '                                                            \n",
        "TDISP4  = 'F11.4   '                                                            \n",
        "TTYPE5  = 'FLUX_BEST'          / Best of FLUX_AUTO and FLUX_ISOCOR              \n",
        "TFORM5  = '1E      '                                                            \n",
        "TUNIT5  = 'count   '                                                            \n",
        "TDISP5  = 'G12.7   '                                                            \n",
        "TTYPE6  = 'FLUXERR_BEST'       / RMS error for BEST flux                        \n",
        "TFORM6  = '1E      '                                                            \n",
        "TUNIT6  = 'count   '                                                            \n",
        "TDISP6  = 'G12.7   '                                                            \n",
        "TTYPE7  = 'MAG_BEST'           / Best of MAG_AUTO and MAG_ISOCOR                \n",
        "TFORM7  = '1E      '                                                            \n",
        "TUNIT7  = 'mag     '                                                            \n",
        "TDISP7  = 'F8.4    '                                                            \n",
        "TTYPE8  = 'MAGERR_BEST'        / RMS error for MAG_BEST                         \n",
        "TFORM8  = '1E      '                                                            \n",
        "TUNIT8  = 'mag     '                                                            \n",
        "TDISP8  = 'F8.4    '                                                            \n",
        "TTYPE9  = 'FLUX_RADIUS'        / Fraction-of-light radii                        \n",
        "TFORM9  = '1E      '                                                            \n",
        "TUNIT9  = 'pixel   '                                                            \n",
        "TDISP9  = 'F10.3   '                                                            \n",
        "TTYPE10 = 'CLASS_STAR'         / S/G classifier output                          \n",
        "TFORM10 = '1E      '                                                            \n",
        "TDISP10 = 'F6.3    '                                                            \n",
        "TTYPE11 = 'A_IMAGE '           / Profile RMS along major axis                   \n",
        "TFORM11 = '1E      '                                                            \n",
        "TUNIT11 = 'pixel   '                                                            \n",
        "TDISP11 = 'F9.3    '                                                            \n",
        "TTYPE12 = 'B_IMAGE '           / Profile RMS along minor axis                   \n",
        "TFORM12 = '1E      '                                                            \n",
        "TUNIT12 = 'pixel   '                                                            \n",
        "TDISP12 = 'F9.3    '                                                            \n",
        "TTYPE13 = 'THETA_IMAGE'        / Position angle (CCW/x)                         \n",
        "TFORM13 = '1E      '                                                            \n",
        "TUNIT13 = 'deg     '                                                            \n",
        "TDISP13 = 'F6.2    '                                                            \n",
        "TTYPE14 = 'ELLIPTICITY'        / 1 - B_IMAGE/A_IMAGE                            \n",
        "TFORM14 = '1E      '                                                            \n",
        "TDISP14 = 'F8.3    '                                                            \n",
        "TTYPE15 = 'X2WIN_IMAGE'        / Windowed variance along x                      \n",
        "TFORM15 = '1D      '                                                            \n",
        "TUNIT15 = 'pixel**2'                                                            \n",
        "TDISP15 = 'E18.10  '                                                            \n",
        "TTYPE16 = 'Y2WIN_IMAGE'        / Windowed variance along y                      \n",
        "TFORM16 = '1D      '                                                            \n",
        "TUNIT16 = 'pixel**2'                                                            \n",
        "TDISP16 = 'E18.10  '                                                            \n",
        "TTYPE17 = 'XYWIN_IMAGE'        / Windowed covariance between x and y            \n",
        "TFORM17 = '1D      '                                                            \n",
        "TUNIT17 = 'pixel**2'                                                            \n",
        "TDISP17 = 'E18.10  '                                                            "
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cat.data.columns"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "ColDefs(\n",
        "    name = 'NUMBER'; format = '1J'; disp = 'I10'\n",
        "    name = 'FLAGS'; format = '1I'; disp = 'I3'\n",
        "    name = 'X_IMAGE'; format = '1E'; unit = 'pixel'; disp = 'F11.4'\n",
        "    name = 'Y_IMAGE'; format = '1E'; unit = 'pixel'; disp = 'F11.4'\n",
        "    name = 'FLUX_BEST'; format = '1E'; unit = 'count'; disp = 'G12.7'\n",
        "    name = 'FLUXERR_BEST'; format = '1E'; unit = 'count'; disp = 'G12.7'\n",
        "    name = 'MAG_BEST'; format = '1E'; unit = 'mag'; disp = 'F8.4'\n",
        "    name = 'MAGERR_BEST'; format = '1E'; unit = 'mag'; disp = 'F8.4'\n",
        "    name = 'FLUX_RADIUS'; format = '1E'; unit = 'pixel'; disp = 'F10.3'\n",
        "    name = 'CLASS_STAR'; format = '1E'; disp = 'F6.3'\n",
        "    name = 'A_IMAGE'; format = '1E'; unit = 'pixel'; disp = 'F9.3'\n",
        "    name = 'B_IMAGE'; format = '1E'; unit = 'pixel'; disp = 'F9.3'\n",
        "    name = 'THETA_IMAGE'; format = '1E'; unit = 'deg'; disp = 'F6.2'\n",
        "    name = 'ELLIPTICITY'; format = '1E'; disp = 'F8.3'\n",
        "    name = 'X2WIN_IMAGE'; format = '1D'; unit = 'pixel**2'; disp = 'E18.10'\n",
        "    name = 'Y2WIN_IMAGE'; format = '1D'; unit = 'pixel**2'; disp = 'E18.10'\n",
        "    name = 'XYWIN_IMAGE'; format = '1D'; unit = 'pixel**2'; disp = 'E18.10'\n",
        ")"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Let's analyze some columns and look at plots of those:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "mag = np.array(cat.data['MAG_BEST'],dtype=float)\n",
      "size = np.array(cat.data['FLUX_RADIUS'],dtype=float)\n",
      "\n",
      "plt.figure(figsize=(15, 5))\n",
      "\n",
      "plt.subplot(131)\n",
      "plt.hist(mag, histtype='bar', color='b', bins=50, range=[16,26])\n",
      "plt.xlabel('Magnitude')\n",
      "plt.ylabel('#Objects')\n",
      "\n",
      "plt.subplot(132)\n",
      "plt.hist(size, histtype='bar', color='b', bins=50, range=[0,12])\n",
      "plt.xlabel('Size')\n",
      "plt.ylabel('#Objects')\n",
      "\n",
      "plt.subplot(133)\n",
      "plt.plot(mag, size, linestyle='None', marker='.', color='b')\n",
      "plt.xlim([16,26])\n",
      "plt.ylim([0,12])\n",
      "plt.xlabel('Magnitude')\n",
      "plt.ylabel('Size')\n",
      "\n",
      "plt.subplots_adjust(bottom=0.15, right=0.95, top=0.9, left=0.05, wspace=0.3)\n",
      "plt.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n+/dHjYBDh7L3MX8+vPTS9OWjo7Hdyv0+8EBsM32CJE9M/JUbQ0MjHD48vdLGccct5tChGqfcZmDi\n3759ZX3nsj7HZj/DdvHgsyX6PvZWi13d/i73++ei/DL2tkTfx94iyfuVYMi+ql+PJOFPV8lP3mMn\nTgakT0okRQDTbahc78c/Ls8CsGoVfPWrMVPAzp1TCx0ODsZJgn37ysuOOQYuvjjqEQCcc07MPLB/\nP/zsZ+Vt3n9//pJ+sKq/ciQOnCen3bIPqJVXWZ+jn6F6WXbskiQpNDqmvhvSlfcbSVqTsfZJ0r9w\nYdyfqdJ/q6RnG6inwGAyC0BS5X/16nju9NNjvH/iyJGpSf/RR0ddgr/5m3JxwZNOgieeKCf9ixfn\nN+mfDRN/SZIkSarTbJPqTqqcrq9eSbK9di0sWRLj7Xftql7pfzZTCdZr2zY4+eRyBf+s7S9bFlfy\nf/xjeOc7ox0PPgh33RUFBY86KnvbR47E+9i7t/weHnig/PzwMNxzT34/39nIc7csuzwVXHaXfGi2\ny6pd/du3r6zPpdrvO4/fT7ubtkTfx976Y4xd/SUw9rZI38de5UO6q31SRC8Z975nT9zuvDOurEN9\nwx6aGSIw0/bTzyeWL4+r+6OjcMMNcOqp8PLL2dufMyd6BiRX+SFqAXzzm3D22fW3sxvs6i9JkiRJ\nelW9V+bTPQXSPRv27o2x9Pv2xRj6RD3DHpoZIjDT9pPnFy0qr3fnneV2r14NF1009f0tXlx+/Mor\nU5N+iAKA/+SfNNbOIjDxVxcMMjAwMOU2NDTS7UYp43MZGPACjiRJUtHNJvnOGm+fdKtPTiDUM+yh\nmZoIM20/ef7ee6cm++lhDjt2wIYNUSzw3e+G006bOv4/ea/JCYEFC6JIYK/J81G9XZ4KrlZX/2a6\nsdrVPx/7yuP30+6mLdH3sTefXf3nAUemvTqvM2yovxh7W6LvY6/aa7ZV/hNZVfTrndHgssvgS1+K\nugE7dnR33HzW0IAlS+DSS+HGG+HFF6P3wL33locz5JVd/SVJ6jlHcJYUSSqedha/a0SzBQmzqujX\ne/V+796YIi8pEthNSe+DwcHysqefhi9/OZJ+gGefhTVrovL/BRd0/7NrlTyfnfXMZ8F5xb+395XH\n76dXnVqi72NvPq/4t6dYqtQKxt6W6PvY26vqKX7XLbMpupcu/rdlS32vb7a3QSsl7d+5s5zMDw9H\n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\nJDXGv9O4Jsk8bkKcAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10adb3650>"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Back to our problem of identifying stars and galaxies. Let's try some different ways to find stars (smart and not-so-smart ones):"
     ]
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "1: \"Stars are small, round objects\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "- What is round? What is small?\n",
      "- How do you select those objects?\n",
      "- How would you cut the sample?\n",
      "- How would the plots change?"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "... Code here ..."
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "ename": "SyntaxError",
       "evalue": "invalid syntax (<ipython-input-8-aee93bcdd1c3>, line 1)",
       "output_type": "pyerr",
       "traceback": [
        "\u001b[0;36m  File \u001b[0;32m\"<ipython-input-8-aee93bcdd1c3>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m    ... Code here ...\u001b[0m\n\u001b[0m    ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "2: \"Stars are point sources, no reason for them to be of different sizes\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "- Of which size should they be?"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "... Code here ..."
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "3: \"SExtractor has to have a solution for this problem!\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "One column in the SExtractor output table is called CLASS_STAR. Indeed, SExtractor tries to tackle this problem with neural networks and assigns a value between 0 (galaxy) and 1 (star).\n",
      "\n",
      "- Which objects seem to be galaxies, which stars?\n",
      "- Which objects are ambiguous?\n",
      "- How would you choose your cuts?"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "... Code here ..."
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Challenge III: Is our Universe truly accelerating or is it static?"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "We now found some way to distinguish between stars and galaxies. Let's now apply it to test some hypotheses!"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Let's assume that our Universe static.\n",
      "\n",
      "As it looks apparently the same in all directions, it seems reasonable that the number density of objects is constant.\n",
      "\n",
      "Let's assume for simplicity that all galaxies are the same, i.e. they are all of the same brightness, but some just appear fainter as they're farther away.\n",
      "\n",
      "It can be shown that we would expect the following number of galaxies as a function of mag:\n",
      "- $N(mag) = Normalization \\cdot 10^{(3/5)\\cdot mag}$"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "What do we see in the data? How does this compare with the theory curve we can overplot?"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "... Code here ..."
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}