Visualizing Mobile
Broadband
Federal Communications Commission
Eric 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
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 together
Planned Release in August 2014:
Web application, API, Developer
Resources, Data Download, and all
source code released on GitHub.
Next Steps:
Deploy the web
application
Start 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

Visualizing Mobile Broadband with MongoDB