Skip to content

Instantly share code, notes, and snippets.

@jenningsanderson
Created April 25, 2016 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jenningsanderson/83333abfdc7964ad7e31453c0412a17a to your computer and use it in GitHub Desktop.
Save jenningsanderson/83333abfdc7964ad7e31453c0412a17a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Nepal Earthquake OSM Data Exploration\n",
"=====================================\n",
"\n",
"First, require the main runtime of epic-osm; it is not bundled into a gem yet, so use the absolute path to where the framework was cloned on the running machine. Second, import the analysis window configuration file (YAML) and initialize."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Successfully initialized Analysis Window: Nepal Earthquake\n",
"\n"
]
},
{
"data": {
"text/plain": [
"#<AnalysisWindow:0x007f55ecdb99f0 @bounding_box=#<BoundingBox:0x007f55ecdb9c70 @bbox_array=[\"80.0134\", \"26.3033\", \"88.2202\", \"30.5149\"], @bottom_left=[80.0134, 26.3033], @top_right=[88.2202, 30.5149], @active=false>, @time_frame=#<TimeFrame:0x007f55ecdbaa30 @start_date=2015-04-25 00:00:00 +0000, @end_date=2015-05-31 00:00:00 +0000, @active=true>, @max_area=1000000000000, @min_area=1, @title=\"Nepal Earthquake\", @changeset_tags=nil>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"require '/opt/epic-osm/epic-osm.rb'\n",
"require 'json'\n",
"analysis_window = './nepal-earthquake.yml'\n",
"o = EpicOSM.new(analysis_window: analysis_window)\n",
"aw = o.analysis_window"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize some changesets information\n",
"First we will collect all of the changesets and save them in memory as changeset objects. We will collect them in bins of 4 hours for initial analysis"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{:unit=>:hour, :step=>4, :constraints=>{}, :collection=>\"changesets\", :type=>DomainObject::Changeset}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-25 00:00:00 +0000, \"$lt\"=>2015-04-25 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-25 04:00:00 +0000, \"$lt\"=>2015-04-25 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-25 08:00:00 +0000, \"$lt\"=>2015-04-25 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-25 12:00:00 +0000, \"$lt\"=>2015-04-25 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-25 16:00:00 +0000, \"$lt\"=>2015-04-25 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-25 20:00:00 +0000, \"$lt\"=>2015-04-26 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-26 00:00:00 +0000, \"$lt\"=>2015-04-26 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-26 04:00:00 +0000, \"$lt\"=>2015-04-26 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-26 08:00:00 +0000, \"$lt\"=>2015-04-26 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-26 12:00:00 +0000, \"$lt\"=>2015-04-26 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-26 16:00:00 +0000, \"$lt\"=>2015-04-26 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-26 20:00:00 +0000, \"$lt\"=>2015-04-27 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-27 00:00:00 +0000, \"$lt\"=>2015-04-27 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-27 04:00:00 +0000, \"$lt\"=>2015-04-27 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-27 08:00:00 +0000, \"$lt\"=>2015-04-27 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-27 12:00:00 +0000, \"$lt\"=>2015-04-27 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-27 16:00:00 +0000, \"$lt\"=>2015-04-27 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-27 20:00:00 +0000, \"$lt\"=>2015-04-28 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-28 00:00:00 +0000, \"$lt\"=>2015-04-28 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-28 04:00:00 +0000, \"$lt\"=>2015-04-28 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-28 08:00:00 +0000, \"$lt\"=>2015-04-28 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-28 12:00:00 +0000, \"$lt\"=>2015-04-28 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-28 16:00:00 +0000, \"$lt\"=>2015-04-28 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-28 20:00:00 +0000, \"$lt\"=>2015-04-29 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-29 00:00:00 +0000, \"$lt\"=>2015-04-29 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-29 04:00:00 +0000, \"$lt\"=>2015-04-29 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-29 08:00:00 +0000, \"$lt\"=>2015-04-29 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-29 12:00:00 +0000, \"$lt\"=>2015-04-29 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-29 16:00:00 +0000, \"$lt\"=>2015-04-29 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-29 20:00:00 +0000, \"$lt\"=>2015-04-30 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-30 00:00:00 +0000, \"$lt\"=>2015-04-30 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-30 04:00:00 +0000, \"$lt\"=>2015-04-30 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-30 08:00:00 +0000, \"$lt\"=>2015-04-30 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-30 12:00:00 +0000, \"$lt\"=>2015-04-30 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-30 16:00:00 +0000, \"$lt\"=>2015-04-30 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-04-30 20:00:00 +0000, \"$lt\"=>2015-05-01 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-01 00:00:00 +0000, \"$lt\"=>2015-05-01 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-01 04:00:00 +0000, \"$lt\"=>2015-05-01 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-01 08:00:00 +0000, \"$lt\"=>2015-05-01 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-01 12:00:00 +0000, \"$lt\"=>2015-05-01 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-01 16:00:00 +0000, \"$lt\"=>2015-05-01 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-01 20:00:00 +0000, \"$lt\"=>2015-05-02 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-02 00:00:00 +0000, \"$lt\"=>2015-05-02 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-02 04:00:00 +0000, \"$lt\"=>2015-05-02 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-02 08:00:00 +0000, \"$lt\"=>2015-05-02 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-02 12:00:00 +0000, \"$lt\"=>2015-05-02 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-02 16:00:00 +0000, \"$lt\"=>2015-05-02 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-02 20:00:00 +0000, \"$lt\"=>2015-05-03 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-03 00:00:00 +0000, \"$lt\"=>2015-05-03 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-03 04:00:00 +0000, \"$lt\"=>2015-05-03 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-03 08:00:00 +0000, \"$lt\"=>2015-05-03 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-03 12:00:00 +0000, \"$lt\"=>2015-05-03 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-03 16:00:00 +0000, \"$lt\"=>2015-05-03 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-03 20:00:00 +0000, \"$lt\"=>2015-05-04 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-04 00:00:00 +0000, \"$lt\"=>2015-05-04 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-04 04:00:00 +0000, \"$lt\"=>2015-05-04 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-04 08:00:00 +0000, \"$lt\"=>2015-05-04 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-04 12:00:00 +0000, \"$lt\"=>2015-05-04 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-04 16:00:00 +0000, \"$lt\"=>2015-05-04 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-04 20:00:00 +0000, \"$lt\"=>2015-05-05 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-05 00:00:00 +0000, \"$lt\"=>2015-05-05 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-05 04:00:00 +0000, \"$lt\"=>2015-05-05 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-05 08:00:00 +0000, \"$lt\"=>2015-05-05 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-05 12:00:00 +0000, \"$lt\"=>2015-05-05 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-05 16:00:00 +0000, \"$lt\"=>2015-05-05 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-05 20:00:00 +0000, \"$lt\"=>2015-05-06 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-06 00:00:00 +0000, \"$lt\"=>2015-05-06 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-06 04:00:00 +0000, \"$lt\"=>2015-05-06 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-06 08:00:00 +0000, \"$lt\"=>2015-05-06 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-06 12:00:00 +0000, \"$lt\"=>2015-05-06 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-06 16:00:00 +0000, \"$lt\"=>2015-05-06 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-06 20:00:00 +0000, \"$lt\"=>2015-05-07 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-07 00:00:00 +0000, \"$lt\"=>2015-05-07 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-07 04:00:00 +0000, \"$lt\"=>2015-05-07 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-07 08:00:00 +0000, \"$lt\"=>2015-05-07 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-07 12:00:00 +0000, \"$lt\"=>2015-05-07 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-07 16:00:00 +0000, \"$lt\"=>2015-05-07 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-07 20:00:00 +0000, \"$lt\"=>2015-05-08 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-08 00:00:00 +0000, \"$lt\"=>2015-05-08 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-08 04:00:00 +0000, \"$lt\"=>2015-05-08 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-08 08:00:00 +0000, \"$lt\"=>2015-05-08 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-08 12:00:00 +0000, \"$lt\"=>2015-05-08 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-08 16:00:00 +0000, \"$lt\"=>2015-05-08 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-08 20:00:00 +0000, \"$lt\"=>2015-05-09 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-09 00:00:00 +0000, \"$lt\"=>2015-05-09 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-09 04:00:00 +0000, \"$lt\"=>2015-05-09 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-09 08:00:00 +0000, \"$lt\"=>2015-05-09 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-09 12:00:00 +0000, \"$lt\"=>2015-05-09 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-09 16:00:00 +0000, \"$lt\"=>2015-05-09 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-09 20:00:00 +0000, \"$lt\"=>2015-05-10 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-10 00:00:00 +0000, \"$lt\"=>2015-05-10 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-10 04:00:00 +0000, \"$lt\"=>2015-05-10 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-10 08:00:00 +0000, \"$lt\"=>2015-05-10 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-10 12:00:00 +0000, \"$lt\"=>2015-05-10 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-10 16:00:00 +0000, \"$lt\"=>2015-05-10 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-10 20:00:00 +0000, \"$lt\"=>2015-05-11 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-11 00:00:00 +0000, \"$lt\"=>2015-05-11 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-11 04:00:00 +0000, \"$lt\"=>2015-05-11 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-11 08:00:00 +0000, \"$lt\"=>2015-05-11 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-11 12:00:00 +0000, \"$lt\"=>2015-05-11 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-11 16:00:00 +0000, \"$lt\"=>2015-05-11 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-11 20:00:00 +0000, \"$lt\"=>2015-05-12 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-12 00:00:00 +0000, \"$lt\"=>2015-05-12 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-12 04:00:00 +0000, \"$lt\"=>2015-05-12 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-12 08:00:00 +0000, \"$lt\"=>2015-05-12 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-12 12:00:00 +0000, \"$lt\"=>2015-05-12 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-12 16:00:00 +0000, \"$lt\"=>2015-05-12 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-12 20:00:00 +0000, \"$lt\"=>2015-05-13 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-13 00:00:00 +0000, \"$lt\"=>2015-05-13 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-13 04:00:00 +0000, \"$lt\"=>2015-05-13 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-13 08:00:00 +0000, \"$lt\"=>2015-05-13 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-13 12:00:00 +0000, \"$lt\"=>2015-05-13 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-13 16:00:00 +0000, \"$lt\"=>2015-05-13 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-13 20:00:00 +0000, \"$lt\"=>2015-05-14 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-14 00:00:00 +0000, \"$lt\"=>2015-05-14 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-14 04:00:00 +0000, \"$lt\"=>2015-05-14 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-14 08:00:00 +0000, \"$lt\"=>2015-05-14 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-14 12:00:00 +0000, \"$lt\"=>2015-05-14 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-14 16:00:00 +0000, \"$lt\"=>2015-05-14 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-14 20:00:00 +0000, \"$lt\"=>2015-05-15 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-15 00:00:00 +0000, \"$lt\"=>2015-05-15 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-15 04:00:00 +0000, \"$lt\"=>2015-05-15 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-15 08:00:00 +0000, \"$lt\"=>2015-05-15 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-15 12:00:00 +0000, \"$lt\"=>2015-05-15 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-15 16:00:00 +0000, \"$lt\"=>2015-05-15 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-15 20:00:00 +0000, \"$lt\"=>2015-05-16 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-16 00:00:00 +0000, \"$lt\"=>2015-05-16 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-16 04:00:00 +0000, \"$lt\"=>2015-05-16 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-16 08:00:00 +0000, \"$lt\"=>2015-05-16 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-16 12:00:00 +0000, \"$lt\"=>2015-05-16 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-16 16:00:00 +0000, \"$lt\"=>2015-05-16 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-16 20:00:00 +0000, \"$lt\"=>2015-05-17 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-17 00:00:00 +0000, \"$lt\"=>2015-05-17 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-17 04:00:00 +0000, \"$lt\"=>2015-05-17 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-17 08:00:00 +0000, \"$lt\"=>2015-05-17 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-17 12:00:00 +0000, \"$lt\"=>2015-05-17 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-17 16:00:00 +0000, \"$lt\"=>2015-05-17 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-17 20:00:00 +0000, \"$lt\"=>2015-05-18 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-18 00:00:00 +0000, \"$lt\"=>2015-05-18 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-18 04:00:00 +0000, \"$lt\"=>2015-05-18 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-18 08:00:00 +0000, \"$lt\"=>2015-05-18 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-18 12:00:00 +0000, \"$lt\"=>2015-05-18 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-18 16:00:00 +0000, \"$lt\"=>2015-05-18 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-18 20:00:00 +0000, \"$lt\"=>2015-05-19 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-19 00:00:00 +0000, \"$lt\"=>2015-05-19 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-19 04:00:00 +0000, \"$lt\"=>2015-05-19 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-19 08:00:00 +0000, \"$lt\"=>2015-05-19 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-19 12:00:00 +0000, \"$lt\"=>2015-05-19 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-19 16:00:00 +0000, \"$lt\"=>2015-05-19 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-19 20:00:00 +0000, \"$lt\"=>2015-05-20 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-20 00:00:00 +0000, \"$lt\"=>2015-05-20 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-20 04:00:00 +0000, \"$lt\"=>2015-05-20 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-20 08:00:00 +0000, \"$lt\"=>2015-05-20 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-20 12:00:00 +0000, \"$lt\"=>2015-05-20 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-20 16:00:00 +0000, \"$lt\"=>2015-05-20 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-20 20:00:00 +0000, \"$lt\"=>2015-05-21 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-21 00:00:00 +0000, \"$lt\"=>2015-05-21 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-21 04:00:00 +0000, \"$lt\"=>2015-05-21 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-21 08:00:00 +0000, \"$lt\"=>2015-05-21 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-21 12:00:00 +0000, \"$lt\"=>2015-05-21 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-21 16:00:00 +0000, \"$lt\"=>2015-05-21 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-21 20:00:00 +0000, \"$lt\"=>2015-05-22 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-22 00:00:00 +0000, \"$lt\"=>2015-05-22 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-22 04:00:00 +0000, \"$lt\"=>2015-05-22 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-22 08:00:00 +0000, \"$lt\"=>2015-05-22 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-22 12:00:00 +0000, \"$lt\"=>2015-05-22 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-22 16:00:00 +0000, \"$lt\"=>2015-05-22 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-22 20:00:00 +0000, \"$lt\"=>2015-05-23 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-23 00:00:00 +0000, \"$lt\"=>2015-05-23 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-23 04:00:00 +0000, \"$lt\"=>2015-05-23 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-23 08:00:00 +0000, \"$lt\"=>2015-05-23 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-23 12:00:00 +0000, \"$lt\"=>2015-05-23 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-23 16:00:00 +0000, \"$lt\"=>2015-05-23 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-23 20:00:00 +0000, \"$lt\"=>2015-05-24 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-24 00:00:00 +0000, \"$lt\"=>2015-05-24 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-24 04:00:00 +0000, \"$lt\"=>2015-05-24 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-24 08:00:00 +0000, \"$lt\"=>2015-05-24 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-24 12:00:00 +0000, \"$lt\"=>2015-05-24 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-24 16:00:00 +0000, \"$lt\"=>2015-05-24 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-24 20:00:00 +0000, \"$lt\"=>2015-05-25 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-25 00:00:00 +0000, \"$lt\"=>2015-05-25 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-25 04:00:00 +0000, \"$lt\"=>2015-05-25 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-25 08:00:00 +0000, \"$lt\"=>2015-05-25 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-25 12:00:00 +0000, \"$lt\"=>2015-05-25 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-25 16:00:00 +0000, \"$lt\"=>2015-05-25 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-25 20:00:00 +0000, \"$lt\"=>2015-05-26 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-26 00:00:00 +0000, \"$lt\"=>2015-05-26 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-26 04:00:00 +0000, \"$lt\"=>2015-05-26 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-26 08:00:00 +0000, \"$lt\"=>2015-05-26 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-26 12:00:00 +0000, \"$lt\"=>2015-05-26 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-26 16:00:00 +0000, \"$lt\"=>2015-05-26 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-26 20:00:00 +0000, \"$lt\"=>2015-05-27 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-27 00:00:00 +0000, \"$lt\"=>2015-05-27 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-27 04:00:00 +0000, \"$lt\"=>2015-05-27 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-27 08:00:00 +0000, \"$lt\"=>2015-05-27 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-27 12:00:00 +0000, \"$lt\"=>2015-05-27 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-27 16:00:00 +0000, \"$lt\"=>2015-05-27 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-27 20:00:00 +0000, \"$lt\"=>2015-05-28 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-28 00:00:00 +0000, \"$lt\"=>2015-05-28 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-28 04:00:00 +0000, \"$lt\"=>2015-05-28 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-28 08:00:00 +0000, \"$lt\"=>2015-05-28 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-28 12:00:00 +0000, \"$lt\"=>2015-05-28 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-28 16:00:00 +0000, \"$lt\"=>2015-05-28 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-28 20:00:00 +0000, \"$lt\"=>2015-05-29 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-29 00:00:00 +0000, \"$lt\"=>2015-05-29 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-29 04:00:00 +0000, \"$lt\"=>2015-05-29 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-29 08:00:00 +0000, \"$lt\"=>2015-05-29 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-29 12:00:00 +0000, \"$lt\"=>2015-05-29 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-29 16:00:00 +0000, \"$lt\"=>2015-05-29 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-29 20:00:00 +0000, \"$lt\"=>2015-05-30 00:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-30 00:00:00 +0000, \"$lt\"=>2015-05-30 04:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-30 04:00:00 +0000, \"$lt\"=>2015-05-30 08:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-30 08:00:00 +0000, \"$lt\"=>2015-05-30 12:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-30 12:00:00 +0000, \"$lt\"=>2015-05-30 16:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-30 16:00:00 +0000, \"$lt\"=>2015-05-30 20:00:00 +0000}}\n",
"Query complete for: {:created_at=>{\"$gte\"=>2015-05-30 20:00:00 +0000, \"$lt\"=>2015-05-31 00:00:00 +0000}}\n"
]
}
],
"source": [
"cSets_per_4hours = aw.changesets_x_hour(step: 4);\n",
"nil"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The structure of every query result is a series of temporal buckets of the form: \n",
" \n",
" {start: <Time> end: <Time> objects: <array of domain objects>}"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Start: 2015-04-25 04:00:00 +0000 | End: 2015-04-25 08:00:00 +0000 | Objects: 11\n"
]
}
],
"source": [
"puts \"Start: #{cSets_per_4hours[1][:start_date]} | End: #{cSets_per_4hours[1][:end_date]} | Objects: #{cSets_per_4hours[1][:objects].length}\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Initial Filtering / Extraction from the buckets"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Number of unique users editing per bucket\n",
"users_per_4hours = cSets_per_4hours.collect{|bucket| \n",
" {time: bucket[:start_date],\n",
" all_users: bucket[:objects].collect{|x| x.user}.uniq,\n",
" hot_users: bucket[:objects].select{|c| c.comment =~ /hot/}.collect{|x| x.user}.uniq\n",
" }\n",
"}\n",
"\n",
"# Save the geometries for each of these edits as well. Additionally, filter off the potential not_hot users as well.\n",
"geometries_per_4_hours = cSets_per_4hours.collect{|bucket| \n",
" {time: bucket[:start_date],\n",
" all_geometries: bucket[:objects].collect{|x| {geom: x.geometry, area: x.area, user: x.user}},\n",
" hot_geometries: bucket[:objects].select{|c| c.comment =~ /hot/}.collect{|x| {geom: x.geometry, area: x.area, user: x.user}},\n",
" not_hot_geometries: bucket[:objects].select{|c| not c.comment =~ /hot/}.collect{|x| {geom: x.geometry, area: x.area, user: x.user}}\n",
" }\n",
"}\n",
"\n",
"# Just count the number of editors in each bucket (NOT Unique overall)\n",
"counts_per_4_hours = users_per_4hours.collect{ |d| \n",
" { time: d[:time],\n",
" all_users: d[:all_users].count,\n",
" hot_users: d[:hot_users].count\n",
" }\n",
"}; nil"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### We are interested in the differences within each bucket of not_hot geometries and hot geometries..."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 0 0\n",
"11 0 11\n",
"53 0 53\n",
"72 232 304\n",
"94 986 1080\n",
"43 1195 1238\n",
"69 864 933\n",
"95 1317 1412\n",
"145 1642 1787\n",
"122 2367 2489\n"
]
}
],
"source": [
"geometries_per_4_hours.first(10).each do |bucket|\n",
" puts \"#{bucket[:not_hot_geometries].size} #{bucket[:hot_geometries].size} #{bucket[:all_geometries].size}\"\n",
"end\n",
"nil"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Write results to disk as JSON for further visualization and analysis in Python/Javascript"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Successfully wrote 76096 kb to Disk\n"
]
}
],
"source": [
"results = File.write('json/geometries_per_4_hours.json', geometries_per_4_hours.to_json)\n",
"puts \"Successfully wrote #{results.to_i / 1024} kb to Disk\""
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"5749020"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Write out the actual geometries for download:\n",
"# hot_geometries = {type: \"FeatureCollection\", features: [] }\n",
"# all_geometries = {type: \"FeatureCollection\", features: [] }\n",
"not_hot_geometries = {type: \"FeatureCollection\", features: [] }\n",
"\n",
"\n",
"geometries_per_4_hours.each do |bucket|\n",
"# bucket[:all_geometries].each do |all|\n",
"# all_geometries[:features] << {\n",
"# type: \"Feature\",\n",
"# geometry: all[:geom],\n",
"# properties: {user: all[:user], area: all[:area], time: bucket[:time]}\n",
"# }\n",
"# end\n",
" \n",
"# bucket[:hot_geometries].each do |hot|\n",
"# hot_geometries[:features] << {\n",
"# type: \"Feature\",\n",
"# geometry: hot[:geom],\n",
"# properties: {user: hot[:user], area: hot[:area], time: bucket[:time]}\n",
"# }\n",
"# end\n",
" \n",
" bucket[:not_hot_geometries].each do |hot|\n",
" not_hot_geometries[:features] << {\n",
" type: \"Feature\",\n",
" geometry: hot[:geom],\n",
" properties: {user: hot[:user], area: hot[:area], time: bucket[:time]}\n",
" }\n",
" end\n",
"end\n",
"\n",
"# File.write('json/all_geometries.geojson', all_geometries.to_json)\n",
"# File.write('json/hot_geometries.geojson', hot_geometries.to_json)\n",
"File.write('json/not_hot_geometries.geojson', not_hot_geometries.to_json)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"All users: 7068\n",
"HOT users: 6075\n"
]
}
],
"source": [
"puts \"All users: #{ users_per_4hours.collect{|x| x[:all_users] }.flatten.uniq.length }\"\n",
"puts \"HOT users: #{ users_per_4hours.collect{|x| x[:hot_users] }.flatten.uniq.length }\"\n",
"nil"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#Write out JSON to visualize:\n",
"require 'json'\n",
"File.write('json/user_counts_per_4hour.json', counts_per_4_hours.to_json)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Calculate Cumulative New Users?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"all_users = Set.new\n",
"hot_users = Set.new\n",
"cumulative_users = []\n",
"\n",
"cSets_per_4hours.each do |bucket|\n",
" t_all_users = bucket[:objects].collect{|x| x.user}.uniq.to_set\n",
" t_hot_users = bucket[:objects].select{|c| c.comment =~ /hot/}.collect{|x| x.user}.uniq.to_set\n",
" \n",
" \n",
" #Unless THIS set of users is a subset of ALL PREVIOUS users... add the difference!\n",
" unless t_all_users.subset?(all_users)\n",
" all_users = all_users.merge(t_all_users - all_users)\n",
" end\n",
" \n",
" unless t_hot_users.subset?(hot_users)\n",
" hot_users = hot_users.merge(t_hot_users - hot_users)\n",
" end\n",
" \n",
" cumulative_users << {time: bucket[:start_date], all_users: all_users.size, hot_users: hot_users.size}\n",
" \n",
"end\n",
"\n",
"cumulative_users[0..10].each do |u|\n",
" puts \"#{u[:time]}: #{u[:hot_users]}, #{u[:all_users]}\"\n",
"end\n",
"\n",
"File.write('json/cumulative_user_count.json', cumulative_users.to_json)\n",
"nil;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"testing: {{x}}"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Building Statistics"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"# 1. Get the buildings grouped by 4 hours:\n",
"buildings_per_4_hours = aw.ways_x_hour(step: 4, constraints: {version: 1, 'tags.building' => {'$ne' => nil}}); nil\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 2. Sort the buildings\n",
"building_counts_per_4_hours = buildings_per_4_hours.collect{ |bucket| \n",
" by_users = bucket[:objects].group_by{|w| w.user }\n",
" { \n",
" t: bucket[:start_date],\n",
" c: bucket[:objects].size,\n",
" u_count: by_users.size,\n",
" per_user_count: by_users.collect{|k,v| {k => v.size}}\n",
" }\n",
"}; nil;"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 3. Write the JSON file.\n",
"require 'json'\n",
"# File.write('json/new_buildings.json', building_counts_per_4_hours.to_json)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"puts \"There were #{building_counts_per_4_hours.collect{|b| b[:c]}.inject(:+)} new buildings added\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"uniq_users = building_counts_per_4_hours.collect{|b| b[:per_user_count].flatten.collect{|x| x.keys}}.flatten.uniq\n",
"uniq_users.size"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"buildings_per_user = building_counts_per_4_hours.collect{|b| b[:per_user_count].flatten.group_by{|x| x.keys}}"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Road Statistics\n",
"Pull info on (new) roads!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"roads_per_4hour = aw.ways_x_hour(step: 4, constraints: {version: 1, 'tags.highway' => {'$ne' => nil}})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"210885"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Filter, Count, & Export\n",
"road_counts_per_4_hours = roads_per_4hour.collect{ |bucket| \n",
" by_users = bucket[:objects].group_by{|w| w.user }\n",
" { \n",
" t: bucket[:start_date],\n",
" c: bucket[:objects].size,\n",
" u_count: by_users.size,\n",
" per_user_count: by_users.collect{|k,v| {k => v.size}}\n",
" }\n",
"}\n",
"\n",
"require 'json'\n",
"File.write('json/new_roads.json', road_counts_per_4_hours.to_json)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There were 150097 new roads added\n"
]
}
],
"source": [
"puts \"There were #{road_counts_per_4_hours.collect{|b| b[:c]}.inject(:+)} new roads added\""
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"216"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"roads_per_4hour.count"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"geometries = roads_per_4hour[3][:objects].collect{|w| w.geometry.to_json}\n",
"nil"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"871"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Ruby 2.1.5",
"language": "ruby",
"name": "ruby"
},
"language_info": {
"file_extension": ".rb",
"mimetype": "application/x-ruby",
"name": "ruby",
"version": "2.1.5"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment