99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀Uber和Lyft出行數(shù)據(jù)可視化:舊金山每天超過(guò)20萬(wàn)人次
Uber和Lyft出行數(shù)據(jù)可視化:舊金山每天超過(guò)20萬(wàn)人次
2017-06-15
收藏

Uber和Lyft出行數(shù)據(jù)可視化:舊金山每天超過(guò)20萬(wàn)人次

我叫 Billy Charlton,Because LLC 公司的創(chuàng)始人,西雅圖的普吉特區(qū)域理事會(huì)的前數(shù)據(jù)總監(jiān)。我擅長(zhǎng)交通規(guī)劃領(lǐng)域,因?yàn)檫@對(duì)我們的城市和日常生活有直接的影響。

最近,舊金山交通管理局發(fā)布了 Uber 和 Lyft 的城市出行數(shù)據(jù),這是史無(wú)前例的。加在一起,這兩家公司的每天都有超過(guò) 20 萬(wàn)次的行程,而這僅僅是在城市范圍內(nèi)。

當(dāng)我們正在與交通管理局一起合作時(shí),他們?cè)儐?wèn)我們正在搭建的平臺(tái)是否也可以用來(lái)分析這個(gè)數(shù)據(jù)集。以下是我們的成果。

“TNCs Today”數(shù)據(jù)探索

在公共部門(mén),提供拼車服務(wù)的被稱為交通網(wǎng)絡(luò)公司(網(wǎng)約車公司),簡(jiǎn)稱“TNCs”。

可以直接訪問(wèn) TNCs Today 頁(yè)面:

http://tncstoday.sfcta.org/

看點(diǎn)

? 你可以選擇一周內(nèi)某天的行程,也可以查看全天行程或者特定時(shí)間內(nèi)的行程。

? 點(diǎn)擊地圖上的任意一處就會(huì)彈出一個(gè)圖表,顯示該區(qū)域的每日上下客總數(shù)。還可以切換每周不同的日子,比較周一和周五的數(shù)據(jù)區(qū)別。

? 可以選擇 2D 或者 3D 視圖: 3D 顯示了一周內(nèi)不同日子城市的行程模式,而 2D 視圖則更容易點(diǎn)擊和查看各個(gè)地點(diǎn)。

星期五的行程最多??梢郧宄乜吹缴衔绾拖挛绺叻迤诘耐ㄇ凇榜劮濉?。也可以看到很多晚上和深夜的行程,這在一周內(nèi)其他日子是不常見(jiàn)的。

數(shù)據(jù)對(duì)網(wǎng)約車司機(jī)的上下客數(shù)據(jù)進(jìn)行估計(jì)。研究人員分析了:每個(gè)司機(jī)在“已完成行程”和“現(xiàn)在可以接單”狀態(tài)下的緯度/經(jīng)度坐標(biāo)和時(shí)間戳?!斑@可能與乘客的出發(fā)點(diǎn)和目的地不完全相同,但就道路交通和擁堵的影響而言,這能夠有效的掌握司機(jī)開(kāi)始和結(jié)束行程的時(shí)間與地點(diǎn)。

注意:

該數(shù)據(jù)集表示在 2016 年秋季數(shù)周數(shù)據(jù)的平均值。只包含舊金山市內(nèi)的行程,因此這可能是 Uber 和 Lyft 在市區(qū)內(nèi)總行程數(shù)的較低估值。

發(fā)現(xiàn)

? 星期日和星期一的行程最少,周二,周三和周四的行程日益增多,周五和周六的行程數(shù)達(dá)到最高。

隨著每周時(shí)間的推移,Ubers 和 Lyfts 的行程數(shù)隨之增加

? 工作日存在可預(yù)測(cè)的通勤模式,上午和下午高峰期均存在峰值。星期五和星期六比其他日子有更多的夜晚出行,延長(zhǎng)到深夜。

? 無(wú)論何時(shí),Uber 和 Lyft 出行在城市的東北地區(qū)更為頻繁,基本上在塞薩爾·查韋斯北部和迪維薩羅東部。

? 著名的旅游景點(diǎn)如漁人碼頭,金門(mén)大橋和 GG 公園博物館的行程很多,并且每天的分布與非常不同。

? 周末行程的高峰在星期五和星期六晚上:卡斯特羅,特派團(tuán)/瓦倫西亞,北海灘,球場(chǎng)等地點(diǎn)。

周五晚有很多往返于卡斯特羅的行程。

還有一些奇怪的現(xiàn)象。有些地區(qū)一天存在行程高峰。而有些地區(qū)盡管沒(méi)有什么特殊的,但是存在大量的行程。

有些能夠解釋;有些可能只是數(shù)據(jù)集中的噪音。

這意味著什么?

舊金山交通管理局指出:目前還沒(méi)有針對(duì)這些數(shù)據(jù)的相關(guān)政策。

利用公共部門(mén)的開(kāi)源軟件

我們已經(jīng)確定了一個(gè)完全開(kāi)源的技術(shù)堆棧,作為該機(jī)構(gòu)即將進(jìn)行的數(shù)據(jù)可視化工作的基礎(chǔ)。這些不僅僅是“免費(fèi)工具”——這些組件的組合產(chǎn)生了更更靈活、功能更強(qiáng)大的產(chǎn)品。

后端

該數(shù)據(jù)庫(kù)是 PostgreSQL 的 PostGIS 空間擴(kuò)展。對(duì)于這個(gè)項(xiàng)目,只提供塊級(jí)摘要(稱為“流量分析區(qū)”),因此我們沒(méi)有處理任何類型的“大數(shù)據(jù)”。任何數(shù)據(jù)庫(kù)都有足夠的存儲(chǔ)空間,但是 PostGIS 擴(kuò)展允許我們做一些很酷的事情,比如地理編碼、空間緩沖區(qū)、路徑和偏移量。PostGIS 很棒。

前端需要以某種方式與數(shù)據(jù)庫(kù)聯(lián)系;由于其簡(jiǎn)單的 RESTful API 和容易配置性,我們選擇了PostgREST。PostgREST 作為 NGINX 的反向代理,它為指定 URL 端點(diǎn)提供安全性和靈活性。

前端

我們利用盡可能多的預(yù)先構(gòu)建的庫(kù)來(lái)實(shí)現(xiàn)這個(gè)功能,并快速運(yùn)行。此外,舊金山需要一個(gè)現(xiàn)代化的 web 工具,這對(duì)員工來(lái)說(shuō)更容易維護(hù)。在試驗(yàn)了一些替代方案后,我們決定:

? GitHub Pages 用于服務(wù)靜態(tài)站點(diǎn)的頁(yè)面。所有代碼都已經(jīng)在 GitHub 上,所以繼續(xù)使用它們進(jìn)行托管是有道理的。靜態(tài)站點(diǎn)意味著沒(méi)有服務(wù)器維護(hù)或被黑客入侵。如果我可以從現(xiàn)在起建立靜態(tài)網(wǎng)站,我會(huì)的。不過(guò),在自定義域上獲取SSL支持非常困難。

? Vue.js 用于模板和反應(yīng)元素,學(xué)習(xí)和使用這個(gè)框架很有趣。

? Mapbox GL JS 用于制作交互式 2D / 3D 地圖。我本來(lái)想要堅(jiān)持使用完全開(kāi)源的 Leaflet,但我們非常喜歡 Mapbox 中的 3D 功能。

? Morris.js 用于制作互動(dòng)圖表。

? Semantic UI 用于制作按鍵。

? Modern ES2015 JavaScript,通過(guò) webpack 和 babel,支持廣泛的瀏覽器(但不適用所有的瀏覽器:我們使用 IE11)。

最終,整個(gè)過(guò)程不到 1000 行 JavaScript 代碼!

我寫(xiě)的所有代碼都在 GitHub 上。

https://github.com/sfcta/tncstoday

ref:

https://hackernoon.com/visualizing-uber-and-lyft-usage-in-san-francisco-928208b1978a

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }