• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Python語言的高速公路通行費數(shù)據(jù)提取應(yīng)用研究

      2022-02-28 22:39:21晉春杰許宏勇陳念
      交通科技與管理 2022年3期
      關(guān)鍵詞:Python語言

      晉春杰 許宏勇 陳念

      摘要 目前各省高速公路通行費清分數(shù)據(jù)由部、省清分結(jié)算中心通過其清分系統(tǒng)提供給各高速公路運營單位,但因清分的復(fù)雜性和滯后性特點,導(dǎo)致各高速公路運營單位不能及時準確掌握清分數(shù)據(jù)及清分具體明細。文章為解決該問題,以某省某高速公路為例,基于Python語言完成高速公路門架日志通行費數(shù)據(jù)提取及Excel數(shù)據(jù)統(tǒng)計工作,實現(xiàn)完成每日本路段通行費數(shù)據(jù)的統(tǒng)計工作,為高速公路運營單位提供較為直觀的通行費收入明細及參考。

      關(guān)鍵詞 高速公路通行費;Python語言;數(shù)據(jù)提取;Excel數(shù)據(jù)統(tǒng)計

      中圖分類號 U495 文獻標識碼 A 文章編號 2096-8949(2022)03-0004-03

      0 引言

      2018年全國推進取消高速公路省界收費站,實現(xiàn)收費數(shù)據(jù)的全國聯(lián)網(wǎng),進一步加大了ETC的發(fā)展,目前高速公路ETC用戶也在逐年急劇增加,也進一步提高了高速公路通行效率[1]。高速公路車輛通行介質(zhì)主要包括ETC卡及CPC卡,兩種通信介質(zhì)的信息寫入和讀取皆可由高速公路沿線建設(shè)的ETC門架天線、收費站車道天線及收費站車道讀寫器等硬件設(shè)備配合收費軟件完成,可實現(xiàn)車輛行駛路線的確定和通行費的計算及統(tǒng)計。

      隨著取消高速公路省界收費站工作的完成,各大高速公路運營單位較為關(guān)注的則是部、省結(jié)算中心對通行費的清分結(jié)算問題。因各省份車道收費軟件均由各省軟件公司獨立完成,同時又因全國高速公路路網(wǎng)的復(fù)雜性、讀寫設(shè)備的差異性及不穩(wěn)定性,使得省份與省份、路段與路段之間清分結(jié)算的精確性存在較大困難。隨著高速公路硬件及軟件設(shè)備的不斷更新和完善,目前各省清分結(jié)算數(shù)據(jù)已較為準確,但仍存在未知的缺陷問題,需各高速公路運營單位積極對清分結(jié)算數(shù)據(jù)進行人工校對并發(fā)現(xiàn)相關(guān)問題,從而為軟件和硬件的更新提供數(shù)據(jù)基礎(chǔ),最終實現(xiàn)清分數(shù)據(jù)及明細的精確化。該文基于Python語言完成對某省某高速公路門架日志通行費數(shù)據(jù)的精準提取,并完成Excel通行費數(shù)據(jù)的統(tǒng)計工作,經(jīng)過驗證,應(yīng)用Python語言程序自動提取的工作效率是人工提取效率的6倍,其統(tǒng)計結(jié)果可作為高速公路當(dāng)天清分結(jié)算數(shù)據(jù)的參考,并對省內(nèi)清分結(jié)算結(jié)果進行對比校驗,具有一定的應(yīng)用價值。

      1 高速公路通行費數(shù)據(jù)分析

      1.1 通行費數(shù)據(jù)來源

      目前,高速公路取消省界收費站后,各高速公路沿線收費門架系統(tǒng),滿足對車輛的標記和計費要求,匝道收費站實現(xiàn)車輛上站記錄和最終下站繳費的功能,即全過程實現(xiàn)車輛上站標記,途中計費,下站繳費的收費模式。隨著全國高速公路路網(wǎng)規(guī)劃的不斷建設(shè)和完善,車輛行駛路徑的可選擇性和復(fù)雜性也大幅提高,因此,高速公路收費門架系統(tǒng)在作為車輛行駛收費單元的計費及路徑的確定上起到至關(guān)重要的作用。其車輛在某路段行駛所產(chǎn)生的通行費也在收費門架日志中進行詳細記錄,因此通行費數(shù)據(jù)來源主要從門架收費系統(tǒng)的工控機日志內(nèi)進行提取和統(tǒng)計。

      1.2 通行費數(shù)據(jù)分析及手工數(shù)據(jù)提取

      1.2.1 ETC門架系統(tǒng)日志分析

      全國ETC門架系統(tǒng)日志中記錄了所有通過該收費單元車輛的通行時間、車型、車牌、通行介質(zhì)、應(yīng)收金額、優(yōu)惠金額及交易金額等。通過門架日志可較為清晰的分析出各個車輛的通行費及行駛路徑。同時,門架系統(tǒng)日志以每日的0點為節(jié)點創(chuàng)建文本文件,便于對路段每日通行費進行統(tǒng)計。

      該文所研究的某高速公路共有10個收費單元,同時有10套門架系統(tǒng)對該路段上下行行駛車輛進行標記,且覆蓋所有收費單元。因收費門架系統(tǒng)具有路徑和通行費的擬合功能,即在上層門架未標記,下層門架可對上層門架路徑進行擬合,同時也將通行費核算到該下層門架進行標記計費,所以為計算所有車輛在該路段的通行費用,只需將10套門架系統(tǒng)車輛交易金額進行統(tǒng)計,便可統(tǒng)計出當(dāng)日該路段通行費用,但因存在部分免費車輛,全程交易失敗車輛等,免費車輛主要包括軍警車、綠通車等,全程交易失敗車輛主要包括ETC卡損壞、CPC卡損壞,故意屏蔽ETC及CPC卡等,其中全程交易失敗車輛經(jīng)與該省聯(lián)網(wǎng)公司溝通確認為極少數(shù)用戶存在,可忽略不計。因此免費車輛則主要影響部、省的清分結(jié)算與該方法計算出的通行費存在偏差,然而該差值的通行費難以統(tǒng)計,但是經(jīng)過長期將清分結(jié)算數(shù)據(jù)與該方法統(tǒng)計數(shù)據(jù)進行對比分析,免費車輛所產(chǎn)生的差值將趨于均值,同時此方法也進一步了解了該路段免費通行率。

      1.2.2 通行費數(shù)據(jù)的手工提取

      ETC門架系統(tǒng)日志的獲取可采用兩種方式,一種方式為通過任意一臺收費網(wǎng)絡(luò)計算機遠程進入門架工控機系統(tǒng),即可下載每日的log文件。另一種方式則是通過遠程控制軟件,即可遠程進入門架工控機系統(tǒng)下載log文件,該方法較為方便,只需首次將門架地址信息進行錄入即可快速進入工控機,并進行數(shù)據(jù)下載,該文則采取該方法通過使用finalshell遠程連接軟件對該高速公路10套門架系統(tǒng)日志進行每日下載。

      在下載的門架日志中,經(jīng)研究發(fā)現(xiàn)日志中車輛的“交易金額”為“應(yīng)收金額”與“優(yōu)惠金額”之差,即為該車輛需收取的通行費數(shù)據(jù),因此該文所提取的數(shù)據(jù)即為每輛車的“交易金額”。前期我們采用人工提取的方式則是將日志數(shù)據(jù)全部倒入Excel表中進行選擇、分解、去重、提取及匯總等,最終將每日ETC門架總交易金額數(shù)據(jù)與省結(jié)算中心清分結(jié)算金額數(shù)據(jù)作長期對比,金額數(shù)據(jù)皆為相近,因此,此方式的通行費數(shù)據(jù)統(tǒng)計具有較高的參考價值。但是人工提取數(shù)據(jù)的方法步驟非常繁瑣且耗時較高,據(jù)統(tǒng)計,該路段每日的數(shù)據(jù)統(tǒng)計工作長達2 h左右,因此,該統(tǒng)計方法的長期推廣使用較為困難。

      2 Python語言用于通行費數(shù)據(jù)的快速提取

      因手工提取通行費數(shù)據(jù)的效率較慢問題,導(dǎo)致通行費數(shù)據(jù)統(tǒng)計工作難以持續(xù)開展,下面采用Python語言進行數(shù)據(jù)處理,其效率可大幅提升。

      2.1 數(shù)據(jù)處理中編程語言的應(yīng)用

      Python語言在數(shù)據(jù)提取方面具有突出的優(yōu)勢,在計算機編程語言中常用到有JAVA語言、C++語言、PHP語言等。JAVA語言與Python語言相比,其在編程的過程中需要更多的程序語言作為輔助,而且在整個編程的過程中需要大量的代碼,因此當(dāng)我們具有新的需求時,需要對現(xiàn)有的代碼進行大量的修改,從而對后續(xù)的使用帶來較大困難[2],然而Python語言比較簡潔明了,在修改程序時思路較為清晰,便于后期使用;C++語言與Python語言相比,C++語言功能雖然非常強大,但其學(xué)習(xí)難度也相對較大,在數(shù)據(jù)提取編程方面,需要花費較長時間進行相關(guān)的學(xué)習(xí),從而使得編寫的效率大大降低,然而Python語言就相對簡單,易學(xué)及實用性較高[3];PHP語言與Python語言相比,PHP語言在現(xiàn)今編程語言中較為流行,主要表現(xiàn)出簡單易用方面,但是其也存在一定缺點,該語法運用上不夠嚴謹,容易出錯,同時在處理大量數(shù)據(jù)上面程序運行速度十分緩慢,在用戶使用的過程中需花費較多時間,從而不能表現(xiàn)出較好的用戶體檢。然而Python語言在簡單易用的同時程序運行較快,更便于對數(shù)據(jù)的處理和提取。因此該文采用Python語言對ETC門架系統(tǒng)日志通行費數(shù)據(jù)進行提取。

      2.2 Python下的通行費數(shù)據(jù)提取流程

      2.2.1 ETC門架系統(tǒng)日志主要參數(shù)

      對某省某高速公路進行實例研究。該高速公路共5對門架,即10套門架系統(tǒng),分別標號規(guī)則為,從該高速公路地理位置北至南依次為“1號門架”,“2號門架”,“3號門架”,“4號門架”,“5號門架”;從該高速公路地理位置南至北依次為“6號門架”,“7號門架”,“8號門架”,“9號門架”,“10號門架”。每個ETC門架日志中有不同數(shù)量的通行費日志文件,車流量較大時,通行費日志文件數(shù)較多,車流量較小時,通行費日志文件數(shù)較少,上文已講述,欲統(tǒng)計通行費金額,即統(tǒng)計每個通行費日志交易金額總額即可。這里以每個門架單元進行統(tǒng)計,并通過Python語言實現(xiàn)每個門架計費金額的統(tǒng)計,最終完成該路段總通行費金額的統(tǒng)計工作。

      2.2.2 Python下通行日志交易金額數(shù)據(jù)提取

      在編寫Python語言的過程中需要建立3個文件夾[4]。第一個文件夾用于存儲該路段10個門架的通行費日志,同時便于Python語言的讀取和處理;第二個文件夾用于存儲程序編寫中對通行日志讀取的規(guī)則;第三個文件夾為程序所讀取并計算的交易金額數(shù)值進行存儲,即Excel表格。

      首先使用Python語言的網(wǎng)絡(luò)爬蟲對我們所制定地址下的通行日志內(nèi)容進行搜索,然后將搜索的內(nèi)容進行對比[5],找到我們所需要的“交易金額”,然后將所有得到的數(shù)值求和得出門架的通行費數(shù)據(jù),同樣,接著對下一個門架通行日志內(nèi)容進行搜索,最終完成10個門架的通行費統(tǒng)計并將每個門架統(tǒng)計數(shù)據(jù)填寫到制定的Excel表格中。該次Python語言的主程序源代碼如下:

      def 主功能():

      path = input("請輸入目錄的完整路徑:") or r"F:\開始研究門架數(shù)據(jù)篩查\05 其他\單獨:門架\數(shù)據(jù)源\車流量" # 該路徑為接收文件的路徑。

      print("★您輸入的路徑是:"+path)

      門架列表 = ['1號門架','2號門架','3號門架','4號門架','5號門架','6號門架','7號門架','8號門架','9號門架','10號門架'] # 該列表為目錄列表。

      a = []

      for i in range(0,10):

      # 拼接成門架目錄的路徑。

      門架路徑 = path + '\\' + 門架列表[i]

      files = os.listdir(門架路徑) # os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表。

      #print(type(files))? ? ? ? ? # <class 'list'>

      #print(files)? ? ? ? ? ? ? ? #['21_Transaction_20211024_001.log', '21_Transaction_20211024_002.log', '21_Transaction_20211024_003.log', '21_Transaction_20211024_004.log']

      #

      倉庫列表 = []

      for file in files:

      if not os.path.isdir(file):? ? ? ? ?# 判斷是否文件夾。

      if file[-4:] == '.log':? ? ? ? ? ? ?# 判斷后綴名是否log。

      文本句柄=open(門架路徑+"\\"+ file,encoding='utf-8',errors='ignore'); # 打開文件

      line = 文本句柄.readline()? ? # 讀取一行

      while line:

      if line.find('交易金額:')>=0:

      結(jié)果序號 = line.find('交易金額:')? ? # 返回的是序號

      line2 = line[結(jié)果序號:]? ? # 生成以"交易金額:"開頭的為開頭的新字符串。

      # print(line2)

      x = re.split(' |:', line2)? ? # 通過“空格”和“|”對字符串line2進行分割。

      y = x[1]? ? ?# 0是空,1是金額。

      #print(y)? ? # 輸出y

      倉庫列表.append(int(y))

      line = 文本句柄.readline()

      文本句柄.close()

      倉庫列表求和 = sum(倉庫列表)

      print(倉庫列表求和)

      a.append(倉庫列表求和)

      return a

      通過Python語言程序?qū)υ摳咚俟纺橙?0個門架系統(tǒng)通行費金額進行統(tǒng)計得出結(jié)果如表1所示,該結(jié)果與手工提取的金額數(shù)據(jù)作對比,數(shù)據(jù)完全一致,從而實現(xiàn)了在Python語言下對每個門架通行費數(shù)據(jù)的精確統(tǒng)計,同時該程序的運行只需要2~3 s時間,可完全省去手工提取通行費數(shù)據(jù)所需時間,只需人工下載每日ETC門架通行費日志,所需時間不足20 min,從而大大提高了高速公路完成每日通行費數(shù)據(jù)的統(tǒng)計工作效率。

      同時,該方法通過3個月的實踐應(yīng)用,發(fā)現(xiàn)該省高速公路清分結(jié)算中心所提供的該路段清分金額占比該方法獲取門架通行費金額的94%左右,從而說明該路段免費通行率約在6%左右,此數(shù)據(jù)為后期月度及年度清分通行費總金額提供了有力的數(shù)據(jù)參考。

      3 結(jié)語

      該文針對目前各高速公路運營單位存在不能及時準備掌握該路段通行費清分數(shù)據(jù)及具體明細的問題,提出了采用Python語言對ETC門架系統(tǒng)日志進行通行費金額數(shù)據(jù)提取和統(tǒng)計的方法,完成了對該路段總通行費金額的精確統(tǒng)計,其相對人工提取的方法,效率大大提高,該方法可推廣至各高速公路使用,為各高速公路運營單位對部、省通行費清分結(jié)算的結(jié)果核對提供了較強的參考性,具有一定的長期運用價值。

      參考文獻

      [1]梁貞.基于大數(shù)據(jù)的高速公路聯(lián)網(wǎng)收費信用平臺設(shè)計分析[J].中國設(shè)備工程,2021(20):194-195.

      [2]周競鴻.基于Python語言的大數(shù)據(jù)分析研究[J].數(shù)據(jù)庫技術(shù),2013(7):31-37.

      [3]葉惠仙,游金水.Python語言在大數(shù)據(jù)處理中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(5):51-54.

      [4]王棟.Python 的計算機軟件應(yīng)用技術(shù)分析[J].科技論壇,2021(14):120-122.

      [5]阿不都艾尼·阿不都肉素力.Python的計算機軟件應(yīng)用技術(shù)分析[J].軟件研發(fā)與應(yīng)用,2021(9):29-30.

      猜你喜歡
      Python語言
      工業(yè)物聯(lián)網(wǎng)智能邊緣計算應(yīng)用軟件的快捷開發(fā)與設(shè)計
      關(guān)于面向非計算機專業(yè)開設(shè)Python語言的幾點思考
      考試周刊(2018年23期)2018-02-07 00:15:42
      計算思維培養(yǎng)視域下《Python程序設(shè)計》課程的教學(xué)改革實踐
      在高中信息技術(shù)課中培養(yǎng)學(xué)生計算思維的有效方法探討
      基于KNN算法的手寫數(shù)字識別
      Python語言教學(xué)中問題解決能力和創(chuàng)新能力的培養(yǎng)實踐
      計算機教育(2017年9期)2017-09-28 19:06:16
      Python語言程序設(shè)計教學(xué)體系建設(shè)
      計算機教育(2017年8期)2017-09-01 14:51:42
      面向計算生態(tài)的Python語言入門課程教學(xué)方案
      計算機教育(2017年8期)2017-09-01 13:44:40
      基于Python語言和支持向量機的字符驗證碼識別
      論Python程序設(shè)計語言
      苍溪县| 滦南县| 咸丰县| 阳高县| 荔波县| 远安县| 和田县| 汶川县| 平顶山市| 台东县| 大邑县| 横山县| 灌云县| 浮梁县| 东山县| 资溪县| 大悟县| 天津市| 大厂| 廉江市| 静安区| 桦川县| 肥东县| 柘城县| 清远市| 延安市| 浙江省| 越西县| 青河县| 清流县| 吉首市| 剑川县| 庆阳市| 正定县| 天镇县| 黎川县| 余庆县| 六盘水市| 商丘市| 平原县| 波密县|