visualizing mobile broadband with mongodb
DESCRIPTION
TRANSCRIPT
Visualizing Mobile Broadband
Federal Communications CommissionEric Spry, Acting Geographic Information Officer
Measuring Broadband America
Fixed: 12,000 participants
Mobile: nearly 100,000 installs for Android, and 50,000 for iOS
www.fcc.gov/measuring-broadband-america
Download This App
available in Google Play and iTunes App Store
"I like the idea of this app but it's not that useful when I can only see my data. I'm waiting to see if they release their heat maps & infographics of carrier performance in Nov 2014 like they promised... " -- Google Play Store Comment
Visualizing Mobile Broadband
How the Gov't normally releases info
There is a better way
Feeling Spatial
xkcd on Heat Maps
Hex Binning
Reference: http://indiemaps.com/blog/2011/10/hexbins/
Some early examples
Later Versions
(based on early draft data)
SQL approach was good for early investigation, but not for delivering a useful product to consumers.
Enter MongoDB
Architecting the System
MongoDB
"tests" : [ { "type" : "JHTTPGETMT", "timestamp" : "1398965279", "warmup_time" : "5323371", "target_ipaddress" : "4.71.185.62", "success" : "true", "number_of_threads" : "3", "transfer_bytes" : "6813952", "bytes_sec" : "453803", "datetime" : "2014-05-01T17:27:59+0000", "target" : "samknows1.nyc2.level3.net", "warmup_bytes" : "2627029", "transfer_time" : "15015192" }, { "type" : "JHTTPPOSTMT", "timestamp" : "1398965305", "warmup_time" : "5569560", "target_ipaddress" : "4.71.185.62", "success" : "true", "number_of_threads" : "3", "transfer_bytes" : "3569696", "bytes_sec" : "227745", "datetime" : "2014-05-01T17:28:25+0000", "target" : "samknows1.nyc2.level3.net", "warmup_bytes" : "1313376", "transfer_time" : "15674058" },
Importing the Speed Test Files
Aggregation
Validated Mobile tests are stored in a collection for aggregation.
$geoIntersects Operator is Used to Determine the Hexagons That Each Test is Contained By.
Aggregation
Now, Let's Make a Map!
Actually, let's make 36 maps!
Developing the API/api/carrier/verizon.json?lat=39.8&lon=-105&geo=hex10k
geo_find = {geometry: { $geoIntersects: { $geometry: { type: 'Point', coordinates: [lon, lat] }}}};
json, jsonp, geojson, and xml are supported
Developing the UISome inspiration from the Yahoo Weather App
Iterate the Design
Finish with something everyone is proud of
Putting it all togetherPlanned Release in Autumn 2014: Web application, API, Developer Resources, Data Download, and all source code released on GitHub.
Next Steps:Deploy the web applicationStart the next cycle.Get more data!
With Heartfelt Thanks
—Computech Team—FCC staffers —Sam and team at SamKnows, UK —MongoDB Support
Download the FCC Speed Test App from the Google Play or iTunes App Store and help us put the CROWD in crowdsouce.www.fcc.gov/measuring-broadband-america