{ "metadata": { "kernelspec": { "codemirror_mode": { "name": "python", "version": 3 }, "display_name": "Python 3", "language": "python", "name": "python3" }, "name": "", "signature": "sha256:a21152aa59b7f81d8288957344f3f7883a5d0841e77769a6d74f8c6265912367" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from IPython.core.display import HTML\n", "\n", "with open('creative_commons.txt', 'r') as f:\n", " html = f.read()\n", " \n", "name = '2014-08-11-supermoon'\n", "\n", "html = '''\n", "\n", "

This post was written as an IPython notebook.\n", " It is available for download\n", " or as a static html.

\n", "

\n", "%s''' % (name, name, html)\n", "\n", "%matplotlib inline\n", "from matplotlib import style\n", "style.use('ggplot')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yesterday we had the super \"moon event\". Unfortunately Salvador was cloudy and\n", "the show was not as impressive as we expected. All the same, watching the sunset\n", "while the moon was rising by the\n", "[Barra lighthouse](http://pt.wikipedia.org/wiki/Farol_da_Barra_%28Bahia%29)\n", "was quite impressive. The super moon event inspired me to go back there next\n", "full moon to take a fell pictures. Sure I could just Google for the date and\n", "time. But let's do this the hard way." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next two functions are part of a previous post, so I will not\n", "get into the details. Just to remember: `get_ip` returns the\n", "local machine ip address and `get_location` gets, among other things,\n", "the geographical position." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import re\n", "import urllib\n", "from pygeoip import GeoIP\n", "\n", "def get_ip(url='http://checkip.dyndns.org'):\n", " request = urllib.request.urlopen(url).read().decode('utf-8')\n", " return re.findall(r\"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}.\\d{1,3}\", request)[0]\n", "\n", "def get_location(ip, fname):\n", " \"\"\"Database can be downloaded at:\n", " http://dev.maxmind.com/geoip/legacy/geolite/\"\"\"\n", " gi = GeoIP(fname)\n", " location = gi.record_by_addr(ip)\n", " return location" ], "language": "python", "metadata": { "internals": {}, "slideshow": { "slide_type": "-" } }, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get a nice dictionary back with all the information we need." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ip = get_ip()\n", "fname = './data/GeoLiteCity.dat'\n", "location = get_location(ip, fname)\n", "location" ], "language": "python", "metadata": { "internals": {}, "slideshow": { "slide_type": "-" } }, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "{'country_name': 'Brazil',\n", " 'continent': 'SA',\n", " 'longitude': -38.516699999999986,\n", " 'country_code3': 'BRA',\n", " 'country_code': 'BR',\n", " 'city': 'Salvador',\n", " 'time_zone': 'America/Bahia',\n", " 'area_code': 0,\n", " 'region_code': '05',\n", " 'latitude': -12.983300000000014,\n", " 'metro_code': None,\n", " 'dma_code': 0,\n", " 'postal_code': None}" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can create a [pyephem](http://rhodesmill.org/pyephem/) `moon` object," ] }, { "cell_type": "code", "collapsed": false, "input": [ "import ephem\n", "import numpy as np\n", "from datetime import date\n", "\n", "date = date(2014, 8, 10)\n", "moon = ephem.Moon()\n", "\n", "obs = ephem.Observer()\n", "obs.date = date\n", "obs.lon = np.deg2rad(location['longitude'])\n", "obs.lat = np.deg2rad(location['latitude'])\n", "obs" ], "language": "python", "metadata": { "internals": {}, "slideshow": { "slide_type": "-" } }, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "and query for the local time super moon rising." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(\"Next full Moon: %s\" % ephem.next_full_moon(date))\n", "print(\"Next rising: %s\" % ephem.localtime(obs.next_rising(moon)))" ], "language": "python", "metadata": { "internals": {}, "slideshow": { "slide_type": "-" } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Next full Moon: 2014/8/10 18:09:21\n", "Next rising: 2014-08-10 17:29:43.000006\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we could not see the moon rising let's just think positive and wait for\n", "the next one." ] }, { "cell_type": "code", "collapsed": false, "input": [ "az, alt, symbols, times = [], [], [], []\n", "for k in range(30):\n", " moon.compute(obs) \n", " nnm = ephem.next_new_moon(obs.date) \n", " pnm = ephem.previous_new_moon(obs.date) \n", " lunation = (obs.date - pnm) / (nnm - pnm) \n", " symbol = lunation * 26\n", " if symbol < 0.2 or symbol > 25.8:\n", " symbol = '1'\n", " else: \n", " symbol = chr(ord('A') + int(symbol + 0.5) - 1)\n", " times.append(ephem.localtime(obs.date).strftime(\"%d-%m-%Y\"))\n", " symbols.append(symbol)\n", " alt.append(moon.alt)\n", " az.append(moon.az)\n", " obs.date += ephem.hour * 24 # Increment in days.\n", "az, alt = map(np.rad2deg, (az, alt))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "from matplotlib.font_manager import FontProperties\n", "\n", "prop = FontProperties(fname='./data/moon_phases.ttf', size=25)\n", "sub = slice(0, -1, 2)\n", "fig, ax = plt.subplots(figsize=(6, 3.75))\n", "[ax.text(x, y, text, fontproperties=prop, alpha=0.3, zorder=1)\n", " for x, y, text in zip(az, alt, symbols)]\n", "[ax.text(x, y, hour, fontdict=dict(size=11, weight='bold'), zorder=0, color='#0B3B0B', alpha=0.75)\n", " for x, y, hour in zip(az[sub], alt[sub], times[sub])]\n", "\n", "ax.set_xlim(0-10, 360+30)\n", "ax.set_ylim(-90-5, 90+15)\n", "ax.set_ylabel(\"Elevation (degrees above horizon)\")\n", "ax.set_xlabel(\"Azimuth (compass direction, in degrees)\")\n", "ax.grid(False)\n", "seaborn.despine(trim=True)" ], "language": "python", "metadata": { "internals": {}, "slideshow": { "slide_type": "-" } }, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nDAzDMAzgvwG8KzxdBBenugAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And to display the result let use the\n", "[moon-phases](http://michelanders.blogspot.com.br/2011/01/moon-phases-with-pyephem.html)\n", "graph. This is probably a very confusing way to plot this. I should stack the\n", "plots horizontally every 360 degrees to pass the idea of time. Anyways, we can\n", "that the next full moon will be around 2014-09-08, let's hope it does not rain!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "HTML(html)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "

This post was written as an IPython notebook.\n", " It is available for download\n", " or as a static html.

\n", "

\n", "
python4oceanographers by Filipe Fernandes is\n", "licensed under a Creative Commons\n", "Attribution-ShareAlike 4.0 International License.
Based on a work at https://ocefpaf.github.io/.\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] } ], "prompt_number": 8 } ], "metadata": {} } ] }