最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實(shí)現(xiàn)個(gè)人手機(jī)定位分析

 更新時(shí)間:2023年04月23日 14:06:41   作者:快學(xué)Python  
TransBigData是一個(gè)為交通時(shí)空大數(shù)據(jù)處理、分析和可視化而開發(fā)的Python包。本文就來用它實(shí)現(xiàn)個(gè)人手機(jī)定位分析,感興趣的小伙伴可以了解一下

前段時(shí)間我們分享過《用Python實(shí)現(xiàn)交通數(shù)據(jù)可視化!》,其中主要是使用TransBigData庫快速高效地處理、分析、挖掘出租車GPS數(shù)據(jù)。

但其實(shí)交通時(shí)空大數(shù)據(jù)并不僅僅局限于交通工具產(chǎn)生的數(shù)據(jù),我們的日常生活中也會(huì)產(chǎn)生大量的數(shù)據(jù)。比如我們的手機(jī)記錄了我們到訪過的地點(diǎn);使用城市公交IC卡、共享單車等服務(wù)時(shí),服務(wù)供應(yīng)商可以知道這些出行需求的時(shí)間和地點(diǎn)等等

本文作者依托《交通時(shí)空大數(shù)據(jù)分析、挖掘與可視化》一書中所介紹的相關(guān)技術(shù)開發(fā)了Python開源庫TransBigData,進(jìn)行一次對(duì)手機(jī)信令數(shù)據(jù)的處理、分析和挖掘。

TransBigData簡介

TransBigData是一個(gè)為交通時(shí)空大數(shù)據(jù)處理、分析和可視化而開發(fā)的Python包。TransBigData為處理常見的交通時(shí)空大數(shù)據(jù)(如出租車GPS數(shù)據(jù)、共享單車數(shù)據(jù)和公交車GPS數(shù)據(jù)等)提供了快速而簡潔的方法。

目前,TransBigData主要提供以下方法:

(1)數(shù)據(jù)預(yù)處理:對(duì)數(shù)據(jù)集提供快速計(jì)算數(shù)據(jù)量、時(shí)間段、采樣間隔等基本信息的方法,也針對(duì)多種數(shù)據(jù)噪聲提供了相應(yīng)的清洗方法。

(2)數(shù)據(jù)柵格化:提供在研究區(qū)域內(nèi)生成、匹配多種類型的地理柵格快學(xué)Python(矩形、三角形、六邊形及geohash柵格)的方法體系,能夠以向量化的方式快速算法將空間點(diǎn)數(shù)據(jù)映射到地理柵格上。

(3)數(shù)據(jù)可視化:基于可視化包keplergl,用簡單的代碼即可在Jupyter Notebook上交互式地可視化展示數(shù)據(jù)。

(4)軌跡處理:從軌跡數(shù)據(jù)GPS點(diǎn)生成軌跡線型,軌跡點(diǎn)增密、稀疏化等。

(5)地圖底圖、坐標(biāo)轉(zhuǎn)換與計(jì)算:加載顯示地圖底圖與各類特殊坐標(biāo)系之間的坐標(biāo)轉(zhuǎn)換。

(6)特定處理方法:針對(duì)各類特定數(shù)據(jù)提供相應(yīng)處理方法,如從出租車GPS數(shù)據(jù)中提取訂單起訖點(diǎn),從手機(jī)信令數(shù)據(jù)中識(shí)別居住地與工作地,從地鐵網(wǎng)絡(luò)GIS數(shù)據(jù)構(gòu)建網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)并計(jì)算最短路徑等。

TransBigData可以通過pip或者conda安裝,在命令提示符中運(yùn)行下面代碼即可安裝:

pip?install?-U?transbigdata

安裝完成后,在Python中運(yùn)行如下代碼即可導(dǎo)入TransBigData包。

import?transbigdata?as?tbd??

手機(jī)信令數(shù)據(jù)讀取

手機(jī)信令數(shù)據(jù)是指手機(jī)與通信基站之間交換的信息,包括位置、通信時(shí)長、通信頻次等數(shù)據(jù)。這些數(shù)據(jù)可以用于分析用戶的出行行為、生活習(xí)慣等,也可以用于城市交通管理、商業(yè)營銷等領(lǐng)域。

使用Python開源庫TransBigData可以快速高效地處理、分析、挖掘手機(jī)信令數(shù)據(jù),識(shí)別出行和停留、居住地與工作地等信息,并繪制活動(dòng)圖以便于分析。

▲ 手機(jī)信令數(shù)據(jù)的采集原理

首先,我們將使用Python的pandas庫來讀取數(shù)據(jù)。Pandas是一款功能強(qiáng)大的數(shù)據(jù)處理庫,它提供了靈活的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,可以輕松地對(duì)各種數(shù)據(jù)進(jìn)行操作和分析。我們將使用Pandas讀取包含手機(jī)信令數(shù)據(jù)的CSV文件,并將其存儲(chǔ)在一個(gè)Pandas的數(shù)據(jù)框中。

我們需要將時(shí)間字段轉(zhuǎn)換為正確的格式,以便進(jìn)行后續(xù)的數(shù)據(jù)處理。我們使用Pandas的to_datetime函數(shù)將時(shí)間字段轉(zhuǎn)換為datetime格式。然后后,我們按照時(shí)間順序?qū)?shù)據(jù)進(jìn)行排序,以便進(jìn)行后續(xù)的數(shù)據(jù)處理:

import?pandas?as?pd
import?transbigdata?as?tbd
data?=?pd.read_csv(r'data/mobiledata_sample.csv')
#確保時(shí)間列準(zhǔn)確識(shí)別(很重要)
data['stime']?=?pd.to_datetime(data['stime'],?format='%Y%m%d%H%M')
data?=?data.sort_values(by?=?['user_id','stime'])
data.head()

結(jié)果如下圖所示。

▲ 手機(jī)信令數(shù)據(jù)概況

識(shí)別出行和停留

在處理手機(jī)數(shù)據(jù)時(shí),識(shí)別出行和停留是很重要的一步。基于手機(jī)識(shí)別出行和活動(dòng)可以進(jìn)一步進(jìn)行路徑分析、出行模式分析、人群分析等工作。

活動(dòng):手機(jī)數(shù)據(jù)通過連續(xù)地追蹤個(gè)體的出行軌跡,可以構(gòu)建出個(gè)體的出行鏈信息,一般來說,如果一個(gè)手機(jī)用戶在某個(gè)位置停留了超過30分鐘,我們可以認(rèn)為用戶在這里發(fā)生了活動(dòng)。

出行:用戶產(chǎn)生的連續(xù)兩個(gè)活動(dòng)如果產(chǎn)生的地理位置不同,則可以認(rèn)為用戶發(fā)生了出行行為。出行的起點(diǎn)為連續(xù)兩個(gè)活動(dòng)中前一個(gè)活動(dòng)的地理位置,出行的開始時(shí)間為前一個(gè)活動(dòng)結(jié)束的時(shí)間,出行的終點(diǎn)則為后一個(gè)活動(dòng)的地理位置,出行的結(jié)束時(shí)間則為后一個(gè)活動(dòng)開始的時(shí)間。簡而言之,用戶在活動(dòng)點(diǎn)與活動(dòng)點(diǎn)之間的移動(dòng),視為用戶的出行。

▲ 活動(dòng)與出行識(shí)別思路

使用TransBigData提供的手機(jī)信令數(shù)據(jù)處理方法,可以先將數(shù)據(jù)對(duì)應(yīng)至柵格,將同一個(gè)柵格內(nèi)的數(shù)據(jù)視為在同一個(gè)位置,以避免數(shù)據(jù)定位誤差導(dǎo)致同一位置被識(shí)別為多個(gè)。然后,可以使用tbd.mobile_stay_move函數(shù)從手機(jī)數(shù)據(jù)中識(shí)別出行和停留:

#獲取柵格參數(shù)
params?=?tbd.area_to_params([121.860,?29.295,?121.862,?29.301],?accuracy=500)
#從手機(jī)數(shù)據(jù)中識(shí)別出行和停留
stay,move?=?tbd.mobile_stay_move(data,params,col?=?['user_id','stime','longitude',?'latitude'])結(jié)果如下所示。

▲ 停留識(shí)別結(jié)果

▲ 出行識(shí)別結(jié)果

識(shí)別居住地與工作地

通過移動(dòng)通信數(shù)據(jù)識(shí)別出用戶的職住信息是研究的基礎(chǔ)工作之一。TransBigData中,以停留活動(dòng)點(diǎn)為依據(jù),用tbd.mobile_identify_home方法可以識(shí)別居住地,用tbd.mobile_identify_work則可以識(shí)別工作地。具體規(guī)則為:

  • 居住地識(shí)別規(guī)則為夜晚時(shí)段停留最長地點(diǎn)
  • 工作地識(shí)別規(guī)則為工作日白天時(shí)段停留最長地點(diǎn)(每日平均時(shí)長大于minhour)。

具體使用方法如下:

#識(shí)別居住地
home?=?tbd.mobile_identify_home(stay,?col=['user_id','stime',?'etime','LONCOL',?'LATCOL','lon','lat'],?start_hour=8,?end_hour=20?)
home.head()

結(jié)果輸出:

▲ 居住地識(shí)別

#識(shí)別工作地
work?=?tbd.mobile_identify_work(stay,?col=['user_id',?'stime',?'etime',?'LONCOL',?'LATCOL','lon','lat'],?minhour=3,?start_hour=8,?end_hour=20,workdaystart=0,?workdayend=4)
work.head()

▲ 工作地識(shí)別結(jié)果

繪制活動(dòng)圖

為了加深對(duì)手機(jī)用戶的具體活動(dòng)情況的理解,我們可以用TransBigData提供的tbd.mobile_plot_activity方法將用戶的每日活動(dòng)情況繪制出來觀察,具體代碼如下:

#繪制某一用戶的活動(dòng)圖,不同顏色代表不同活動(dòng)
uid?=?'fcc3a9e9df361667e00ee5c16cb08922'
tbd.mobile_plot_activity(stay[stay['user_id']==uid],figsize?=?(20,?5))

輸出結(jié)果:

▲ 單個(gè)用戶的活動(dòng)圖

上圖中繪制的是一個(gè)手機(jī)用戶在觀測時(shí)間段內(nèi)每一天的活動(dòng)情況,橫坐標(biāo)為日期,縱坐標(biāo)為時(shí)間,同一個(gè)位置的活動(dòng)則以同樣的顏色顯示。從活動(dòng)圖中我們可以很清晰地看到這個(gè)用戶每一個(gè)活動(dòng)的開始與結(jié)束時(shí)間。

到此這篇關(guān)于基于Python實(shí)現(xiàn)個(gè)人手機(jī)定位分析的文章就介紹到這了,更多相關(guān)Python手機(jī)定位內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作大全

    Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作大全

    在后端應(yīng)用開發(fā)中,經(jīng)常會(huì)用到Postgres/Mysql/Mongo這三種數(shù)據(jù)庫的基本操作,今天小編就給大家詳細(xì)介紹Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作,感興趣的朋友一起看看吧
    2021-06-06
  • OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍

    OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍

    這篇文章主要介紹了OpenCV HSV顏色識(shí)別及HSV基本顏色分量范圍,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • 解決Vscode中jupyter出現(xiàn)kernel dead問題

    解決Vscode中jupyter出現(xiàn)kernel dead問題

    遇到VSCode中Jupyter Kernel Dead時(shí),可通過Anaconda Prompt安裝ipykernel解決,首先使用jupyter kernelspec list命令查看內(nèi)核,若發(fā)現(xiàn)缺少ipykernel,激活相應(yīng)虛擬環(huán)境,使用conda install ipykernel命令安裝,操作后,VSCode中Jupyter應(yīng)能正常運(yùn)行
    2024-09-09
  • python根據(jù)日期返回星期幾的方法

    python根據(jù)日期返回星期幾的方法

    這篇文章主要介紹了python根據(jù)日期返回星期幾的方法,涉及Python針對(duì)日期模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2015-07-07
  • Windows和Linux下Python輸出彩色文字的方法教程

    Windows和Linux下Python輸出彩色文字的方法教程

    這篇文章主要介紹了在Windows和Linux中Python輸出彩色文字的方法,通過設(shè)置彩色文字給大家更醒目的效果,文中給出了詳細(xì)的介紹和示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • Mac下使用HomeBrew安裝python3

    Mac下使用HomeBrew安裝python3

    這篇文章介紹了Mac下使用HomeBrew安裝python3的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • django中賬號(hào)密碼驗(yàn)證登陸功能的實(shí)現(xiàn)方法

    django中賬號(hào)密碼驗(yàn)證登陸功能的實(shí)現(xiàn)方法

    這篇文章主要介紹了django中賬號(hào)密碼驗(yàn)證登陸功能的實(shí)現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子

    python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子

    今天小編就為大家分享一篇python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python字符串刪除指定字符的三個(gè)方法

    Python字符串刪除指定字符的三個(gè)方法

    這篇文章主要給大家介紹了關(guān)于Python字符串刪除指定字符的三個(gè)方法,我們在使用 Python處理字符串的時(shí)候,經(jīng)常會(huì)遇到一些字符串中出現(xiàn)了指定字符,需要的朋友可以參考下
    2023-07-07
  • python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn)

    python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn)

    本文主要介紹了python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評(píng)論

临沂市| 砚山县| 漳州市| 湖北省| 张北县| 荆州市| 禄丰县| 天气| 汶上县| 黄石市| 武平县| 桐柏县| 宝山区| 和龙市| 淮滨县| 东乌珠穆沁旗| 嘉祥县| 兴和县| 绥德县| 峨眉山市| 阜新| 乌兰县| 江西省| 兴城市| 高碑店市| 徐水县| 安泽县| 祁连县| 皋兰县| 施甸县| 阳信县| 鄂伦春自治旗| 玉门市| 郁南县| 彰武县| 金昌市| 泊头市| 申扎县| 万山特区| 连江县| 宽城|