罗兰在MATLAB的艺术

把想法变成MATLAB

请注意

罗兰在MATLAB的艺术已经存档,不会被更新。

分析超级骑GPS数据共享

我们中的许多人随身携带智能手机,可以跟踪我们的GPS位置,是一个很有趣的数据来源。我们如何在MATLAB分析GPS数据吗?

今天的嘉宾博客,想共享一个公共的分析GPS数据集从超级流行的共享服务。

内容

介绍

超级是一程共享服务,连接与私人司机乘客通过移动应用程序和负责付款。他们实际上是如此受欢迎,你听到他们在新闻由于冲突与当地交通规则和出租车的商业利益。

超级的骑在infochimps.com上公开分享GPS数据是可用的,所以我用它来分析(不幸的是它不再可用)。从这个数据集,我们能学到什么?

超级匿名GPS日志

让我们先从上面的链接下载数据集(压缩TSV文件),其中包含GPS日志从积极的移动应用在超级汽车运输乘客在旧金山。数据已经被删除的名字,匿名访问的开始和结束点。日期也被替换。工作日和每天的时间仍然完好无损。

这个分析的目的,让我们关注在市区和捕获的数据可视化映射的工具箱

运行脚本加载数据。检查loadData.m看到的细节。

loadData

覆盖GPS地图上的点。

州= geoshape (shaperead (“usastatehi”,“UseGeoCoords”,真的));latlim = [min (T.Lat) max (T.Lat)];lonlim = [min (T.Lon) max (T.Lon)];海洋= (0.7 - 0.8 (1);土地= (0.9 0.9 0.8);图ax = usamap (latlim lonlim);setm (ax,“FFaceColor”、海洋)geoshow(州,“FaceColor”、土地)geoshow (T.Lat T.Lon,“DisplayType”,“点”,“标记”,“。”,“MarkerSize”4“MarkerEdgeColor”,(0 0 1)标题(“超级GPS日志数据”)包含(“旧金山”)textm (37.802069, -122.446618,“码头”)textm (37.808376, -122.426105,“渔人码头”)textm (37.797322, -122.482409,“要塞”)textm (37.774546, -122.412329,“躯体”)textm (37.770731, -122.440481,“海特”)textm (37.818276, -122.498546,“金门大桥”)textm (37.819632, -122.376065,“海湾大桥”)

使用随时间变化吗?

让我们先从一个基本的问题——如何使用超级服务随时间变化。我们可以使用grpstats总结数据按照特定的分类值分组,如DayNameTimeOfDay,在数据加载过程中补充道。

得到分组总结。

byDay = grpstats (T (:, {“纬度”,“朗”,“DayName”}),“DayName”);byDayTime = grpstats (T (:, {“纬度”,“朗”,“TimeOfDay”,“DayName”}),{“DayName”,“TimeOfDay”});

重塑条目数为24 x7矩阵。

byDayTimeCount =重塑(byDayTime.GroupCount, 24岁,7)';

情节一周的数据一天和一周的每天小时。

图次要情节(2,1,1)酒吧(byDay.GroupCount);集(gca),“XTick”1:7,“XTickLabel”cellstr (byDay.DayName));次要情节(2,1,2)情节(byDayTimeCount ');集(gca),“XTick”,一24);包含(周的白天时间);传奇(“我的”,“星期二”,“结婚”,“星期四”,“星期五”,“坐”,“太阳”,“定位”,“水平”,“位置”,“SouthOutside”)

它看起来像使用上升在周末(周五到周日)和月初使用高峰小时的一天。旧金山有一个非常活跃的夜生活!

他们在周末去哪里?

有办法找出人们在周末去吗?虽然数据集不包含实际的个人旅行的起点和终点,我们可能仍然了解流量如何通过观察每个记录的第一个和最后一个点。

我们可以提取的起始和结束位置数据周末骑。点击getStartEndPoints.m看到它是如何实现的。如果你想运行此脚本,请下载districts.xlsx

%这里加载预处理数据| startEnd。垫|为了节约时间和阴谋%的起点。% getStartEndPoints %注释掉以节省时间负载startEnd.mat%加载预处理数据图ax = usamap (latlim lonlim);setm (ax,“FFaceColor”、海洋)geoshow(州,“FaceColor”、土地)geoshow (startEnd.StartLat startEnd.StartLon,“DisplayType”,“点”,“标记”,“。”,“MarkerSize”5,“MarkerEdgeColor”,(0 0 1)标题(“超级周末骑——起点”)包含(“旧金山”)textm (37.802069, -122.446618,“码头”)textm (37.808376, -122.426105,“渔人码头”)textm (37.797322, -122.482409,“要塞”)textm (37.774546, -122.412329,“躯体”)textm (37.770731, -122.440481,“海特”)textm (37.818276, -122.498546,“金门大桥”)textm (37.819632, -122.376065,“海湾大桥”)

情节经度和纬度数据时,把散乱的点云,很难看到发生了什么。相反,我打破了旧金山的映射到矩形块近似其选区。这是新起点的阴谋。

dist =类别(startEnd.StartDist);cc = hsv(长度(经销));图ax = usamap (latlim lonlim);setm (ax,“FFaceColor”、海洋)geoshow(州,“FaceColor”、土地)i = 1:长度(经销)inDist = startEnd。StartDist = = dist(我);geoshow (startEnd.StartLat (inDist) startEnd.StartLon (inDist),“DisplayType”,“点”,“标记”,“。”,“MarkerSize”5,“MarkerEdgeColor”cc(我:))结束标题(“超级周末骑——起点区”)包含(“旧金山”)textm (37.802069, -122.446618,“码头”)textm (37.808376, -122.426105,“渔人码头”)textm (37.797322, -122.482409,“要塞”)textm (37.774546, -122.412329,“躯体”)textm (37.770731, -122.440481,“海特”)textm (37.818276, -122.498546,“金门大桥”)textm (37.819632, -122.376065,“海湾大桥”)

可视化Gephi的交通模式

这是一个正确方向的一步。现在我们已经开始和结束点按地区分组,我们可以代表骑不同地区之间的联系——这本质上是一个图形与选区边缘节点和游乐设施。可视化这个图表,我们可以用一个受欢迎的社会网络分析工具Gephi也用在另一篇文章,与MATLAB分析推特

您可以导出StartDistEndDist的边缘以CSV格式Gephi列表。

writetable (startEnd (:, {“StartDist”,“EndDist”}),“edgelist.csv”,“WriteVariableNames”假)

一旦你出口的清单,你可以画出区(节点)之间的连接(边缘)Gephi。现在它更容易看到人们在周末!看到一个更大的图片,请查看PDF版本

  • 区大小的节点代表他们传入的连接的数量,你可以把它作为衡量受欢迎的目的地。SOMA、海特、任务区,市中心,卡斯特罗是基于这个标准的热门景点。
  • 基于他们的地区是彩色的模块化,这基本上意味着他们属于集群的节点。看起来人们挂在附近的地区- SOMA,市中心,使命区都位于朝南(绿色)。卡斯特罗,海特,西方中心(紫色)和强烈的连接到里士满在西方日落区。因为这些都是居民区,似乎人们从这些地区挂在其他地区相同的集群。
  • 当地人似乎不去渔人码头或唐人街在北方非常(红色),他们可能认为是不酷,因为是来旅游的吗?

总结

现在你知道去哪里在旧金山在周末如果你想体验一个活跃的夜生活。我们只是看着整个周末的数据,但是您可以探索更多的时间切片数据,看看交通模式变化的根据一天中不同的时间或一天。你可以找到交通拥挤通过计算使用时间戳的速度。试一试你自己和分享你的发现这里!




发表与MATLAB®R2014a


评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。