Date post: | 29-Aug-2014 |
Category: |
Technology |
Upload: | mongodb |
View: | 553 times |
Download: | 7 times |
Visualizing Mobile BroadbandFederal 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 Appavailable 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
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 geographies that each test is contained by.
Aggregation
Now, Let's Make a Map!
Actually, let's make 36 maps!
Developing the API/api/mmba/carrier/verizon.json?lat=34&lon=-118.2
json, jsonp, geojson, and xml are supported if (validLatLon(lat, lon)) {
console.log('lon ' + lon); console.log('lat ' + lat);
lat = Number(lat); lon = Number(lon);
geo_find = {geometry: { $geoIntersects: { $geometry: { type: 'Point', coordinates: [lon, lat] }}}}; }
Developing the UI
Some inspiration from the Yahoo Weather App
Iterate the Design
Finish with something everyone is proud of
Putting it all togetherPlanned Release in August 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