Created
November 20, 2012 22:58
-
-
Save darribas/4121857 to your computer and use it in GitHub Desktop.
Revisions
-
darribas revised this gist
Aug 6, 2014 . 2 changed files with 402 additions and 212 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,212 +0,0 @@ -
darribas revised this gist
Nov 20, 2012 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -17,7 +17,7 @@ "\n", "This notebook is an attempt to show, on the one hand, how the toolkit from the Python stack can be used for a real world data hack and, on the other, to offer deeper analysis beyond mapping of the events, both exploiting the spatial as well as the temporal dimension of the data.\n", "\n", "+ The source document (`.ipynb` file) is stored on Github as a gist [here](https://gist.github.com/4121857), which means you can fork it and use it as a start for you own data-hack.\n", "+ A viewable version is available [here](http://nbviewer.ipython.org/4121857/), via the IPython Notebook Viewer.\n", "\n", "## Collaborate on the notebook!!!\n", -
darribas revised this gist
Nov 20, 2012 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,7 +18,7 @@ "This notebook is an attempt to show, on the one hand, how the toolkit from the Python stack can be used for a real world data hack and, on the other, to offer deeper analysis beyond mapping of the events, both exploiting the spatial as well as the temporal dimension of the data.\n", "\n", "+ The source document (`.ipynb` file) is stored on Github as a gist, which means you can fork it and use it as a start for you own data-hack.\n", "+ A viewable version is available [here](http://nbviewer.ipython.org/4121857/), via the IPython Notebook Viewer.\n", "\n", "## Collaborate on the notebook!!!\n", "\n", -
darribas created this gist
Nov 20, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,212 @@ { "metadata": { "name": "Gaza-Israel crisis 2012" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A IPython Notebook to analyze the Gaza-Israel 2012 crisis\n", "\n", "The Guardian is tracking and mapping live ([link](http://www.guardian.co.uk/news/datablog/interactive/2012/nov/19/gaza-israel-verified-incidents-mapped)) the recent incidents in Gaza and Israel. As part of their data-journalism spirit, they are sharing the data as a Google Fusion Table available for access.\n", "\n", "This notebook is an attempt to show, on the one hand, how the toolkit from the Python stack can be used for a real world data hack and, on the other, to offer deeper analysis beyond mapping of the events, both exploiting the spatial as well as the temporal dimension of the data.\n", "\n", "+ The source document (`.ipynb` file) is stored on Github as a gist, which means you can fork it and use it as a start for you own data-hack.\n", "+ A viewable version is available here, via the IPython Notebook Viewer.\n", "\n", "## Collaborate on the notebook!!!\n", "\n", "In its initial version (Nov. 20th), the notebook only contains code to stream the data from the Google Fusion Table into a [`pandas`](http://pandas.pydata.org) DataFrame (which means you get the data ready to hack!). Step in and collaborate in making it a good example of how Python can help analyze real world data. Add a new view, quick visualization, summary statistic of fancy model that helps understand the data better!\n", "\n", "To contribute, just fork the gist as you would with any git repository.\n", "\n", "*Happy hacking!*" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import datetime\n", "import urllib2, urllib\n", "import pandas as pd\n", "from StringIO import StringIO" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 91 }, { "cell_type": "code", "collapsed": false, "input": [ "# Trick from http://stackoverflow.com/questions/7800213/can-i-use-pythons-csv-reader-with-google-fusion-tables\n", "\n", "request_url = 'https://www.google.com/fusiontables/api/query' \n", "query = 'SELECT * FROM 1KlX4PFF81wlx_TJ4zGudN_NoV_gq_GwrxuVau_M'\n", "\n", "url = \"%s?%s\" % (request_url, urllib.urlencode({'sql': query}))\n", "serv_req = urllib2.Request(url=url)\n", "serv_resp = urllib2.urlopen(serv_req)\n", "table = serv_resp.read()\n", "print '\\nLast pull of data from the Google FusionTable: ', datetime.datetime.now()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Last pull of data from the Google FusionTable: 2012-11-20 23:15:46.881851\n" ] } ], "prompt_number": 92 }, { "cell_type": "code", "collapsed": false, "input": [ "def parse_loc(loc, ret_lon=True):\n", " try:\n", " lon, lat = loc.split(',')\n", " lon, lat = lon.strip(' '), lat.strip(' ')\n", " lon, lat = map(float, [lon, lat])\n", " if ret_lon:\n", " return lon\n", " else:\n", " return lat\n", " except:\n", " return None" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 93 }, { "cell_type": "code", "collapsed": false, "input": [ "db = pd.read_csv(StringIO(table))\n", "db['lon'] = db['Location (approximate)'].apply(lambda x: parse_loc(x))\n", "db['lat'] = db['Location (approximate)'].apply(lambda x: parse_loc(x, ret_lon=False))\n", "db['Date'] = db['Date'].apply(pd.to_datetime)\n", "db" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 94, "text": [ "<class 'pandas.core.frame.DataFrame'>\n", "Int64Index: 97 entries, 0 to 96\n", "Data columns:\n", "Date 97 non-null values\n", "Day 97 non-null values\n", "Name of place 96 non-null values\n", "Location (approximate) 94 non-null values\n", "Details 97 non-null values\n", "Source url 97 non-null values\n", "Image url 13 non-null values\n", "Icon 1 97 non-null values\n", "lon 92 non-null values\n", "lat 92 non-null values\n", "dtypes: datetime64[ns](1), float64(2), object(7)" ] } ], "prompt_number": 94 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Very basic descriptive analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "+ Volume of incidents by day" ] }, { "cell_type": "code", "collapsed": false, "input": [ "t = db['Date']\n", "t = t.reindex(t)\n", "by_day = t.groupby(lambda x: x.day).size()\n", "by_day.plot(kind='bar')\n", "title('Number of events by day')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 95, "text": [ "<matplotlib.text.Text at 0x49b4b10>" ] }, { "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n" } ], "prompt_number": 95 }, { "cell_type": "markdown", "metadata": {}, "source": [ "+ Location of events coloured by day" ] }, { "cell_type": "code", "collapsed": false, "input": [ "f = figure(figsize=(10, 6))\n", "ax = f.add_subplot(111)\n", "x, y = db['lon'], db['lat']\n", "s = scatter(x, y, marker='.', color='k')\n", "for d, day in db.set_index('Date').groupby(lambda x: x.day):\n", " x, y = day['lon'], day['lat']\n", " c = cm.Set1(d/30.)\n", " s = scatter(x, y, marker='^', color=c, label=str(d), s=20)\n", "ax.get_yaxis().set_visible(False)\n", "ax.get_xaxis().set_visible(False)\n", "legend(loc=2)\n", "title('Spatial distribution of events by day')\n", "ax.set_axis_bgcolor(\"0.2\") " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\nfv16du3axbXXXlshsI0fP55//OMf/Pe//yU5OZk+ffoc8jOLxAsFHolr33//PY888kgk1Kxbt445\nc+ZwyimnRLbZunUrjz32GOXl5cydO5cVK1YwbNgwysrKKCsro2nTpjgcDt5++23eeeedyH5ZWVns\n2LGDoqKiKo9dXFxMQkICmZmZlJSUcNddd1VYf6jgM2rUKB577DE2bNjAzp07+b//+79qt507dy7r\n168HoHHjxliWFemSZGVlRU4/1JQxhr/85S9s2LCBwsJCHnjgAUaPHg2EJ0AvX76cr776Cp/PR0FB\nQYV9s7KyDhm2xowZw/3338/27dvZvn0706ZNq1WH4LjjjqNfv37ceeed+P1+vv76a5555hkuu+yy\nGu1/7bXX8tvf/jYyiXz37t3MnTs3sv6EE06gadOmXHXVVZxzzjmkp6cDcPLJJ5OWlsZDDz2E1+sl\nGAyybNmyyG0ODhdmD/5+LFy4kG+++YZgMEhaWhputxun01nlvof6vgCMGDGCL774gscee4zLL7+8\n2hpGjRrFrFmz+O677ygtLa10Squ4uJiMjAw8Hg+fffYZL7zwQoWgdsopp2BZFrfccsshjyMSbxR4\nJK6lpaXx6aef0qdPH1JTUznllFPo0aMHDz/8cGSbPn368OOPP9KsWTOmTJnCv/71LzIyMkhLS+Ox\nxx5j1KhRZGZmMmfOnMiVRxA+VTZmzBjatm1LZmYmmzZtqnCvlMsvv5y8vDxycnLo1q1b5AfFPoe6\nr8rVV1/NkCFD6NmzJ/n5+Vx44YXVbrt48WL69u0buTLqscceo3Xr1kD4qqHx48eTkZHByy+/XO0x\nD65r7NixnH322bRr144OHTpwzz33ANCxY0emTp3KmWeeSadOnRg4cGCFfa+88kq+/fZbMjIyGDly\nZKXj3HPPPeTn59OjRw969OhBfn5+ZOyD6zicOXPmsHr1arKzsxk5ciTTpk3j9NNPj4xzqLEuuOAC\nbr/9dkaPHk2jRo3o3r078+fPr7DNpZdeyoIFC7j00ksjyxwOB/PmzWPp0qW0bduWZs2aMWnSpEjo\nreq4B76/8847uf/++8nIyODhhx9m8+bNXHzxxTRq1Ijjjz+eU089tdoAeKjvC4RPN40cOZLVq1dX\n+Xe/zznnnMPkyZM5/fTT6dixI2eccUaFGv/6178ydepU0tPTmT59OpdcckmlMS6//HK++eabGgdM\n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\nNEzq8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI\n7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjt\nKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p\n8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7Snw\niIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCI\niIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7SnwiIiIiO0p8IiI\niIjtKfCIiIiI7SnwiIiIiO0p8IiIiIjtKfCIiIiI7VnGGFPlCsuq71pEREREaq2aSAOAqzY7iYiI\niMQTndISERER21PgEREREdtT4BERERHbU+ARERER21PgEREREdtT4BERERHb+/88uds0EYivlwAA\nAABJRU5ErkJggg==\n" } ], "prompt_number": 139 } ], "metadata": {} } ] }