Upload
mongodb
View
558
Download
7
Embed Size (px)
DESCRIPTION
The FCC Speed Test mobile app is a crowdsource project on mobile network performance, collecting millions of samples per month. In order to make the collected information valuable to consumers, a new approach was needed to present this rich resource in timely and intuitive manner. The Visualizing Mobile Broadband project is a web application that presents mobile network information using maps and interactive metrics. Our small team of developers turned to MongoDB for a solution that is flexible and scalable as volume increases and needs evolve. We present our project from conceptual framework to working prototype and highlight organizational obstacles, geospatial and technical issues encountered along the way.
Citation preview
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