劉江濤,王亮亮,崔夏陽,吳慶茹
(1.中鐵二院工程集團有限責任公司 土木建筑設計研究二院,成都 610031;2.中國礦業大學 力學與土木工程學院,徐州 221116)
近年來,我國高速鐵路、城際鐵路以及地鐵等基礎設施建設規模和速度都處于世界領先地位,在輪軌系統建設大規模推進的同時,也積累了海量線路設計數據與相關資料,這些設計資源包含著鐵路設計、建設與管理人員的智慧,如何系統有效的管理已有資料,對優化擬建線路方案和運營期間的線路病害綜合處治具有重要價值。目前,鐵路系統生產與管理部門對線路設計資料仍主要采取紙質文件歸檔的方式進行保存,這種資料管理模式存在的主要問題是查閱者無法對既有鐵路設計資料完整信息進行獲取,降低了既有線路案例的應用效果。因此,利用現代網絡技術,搭建線路設計資料全過程動態管理系統,實現鐵路設計案例的動態管理成為企業現代化管理的迫切需求。
線路選線設計作為整個鐵路建設的“龍頭”,其設計效果直接關系到整個工程的建設質量。為此,科研人員在利用既有線路設計案例輔助、優化擬建線路設計方案方面進行了積極探索,如張啟坤[1]等人結合地質選線方法提出了案例本體表示方法,建立了案例檢索流程,并對既有案例信息在新建項目中的數據挖掘與存儲方案等進行了分析。何洋[2]結合鐵路線路設計流程和關聯設計資料的特點,利用Arc GIS 等技術搭建了案例表示模塊,研發了線路設計文件資料采集與調研展示平臺。李俊達[3]等人在分析隧道結構特征、施工關鍵技術基礎上,構建了隧道施工輔助決策模型。曹建枝[4]等人在理論研究基礎上,建立了基于Web GIS的鐵路勘測設計一體化系統設計模型,為智能輔助專家系統的研發奠定了理論基礎。張鈺[5]基于Access 平臺研發的線路設計文件數據庫實現了川藏鐵路線路設計成果及相關資料的高效管理與統計分析,提高了線路設計效率。郭海東[6]等人利用地理信息系統(GIS,Geographic Information Syste)的數據管理和空間分析決策功能,研究了線路走廊帶不良地質分布信息的有效表達和提取,并實現了不同線路方案間不良地質問題的對比分析。綜上所述,目前,在鐵路線路信息化方面的研發工作主要集中在計算機智能輔助選線方面,而針對鐵路系統企業內部既有設計案例資料的動態管理與應用方面的研究尚滯后于實際需求。為此,本文基于Node.js 和MongoDB 技術,研發了具有可視化功能的鐵路選線案例系統。
鐵路選線案例系統采用B/S 架構與MVC 前后端分層設計方案。其總體架構,如圖1 所示。

圖1 鐵路選線案例系統總體架構
用戶層主要面向選線設計人員和相關學習人員,選線設計人員可以利用不同的系統和終端將選線案例和數據上傳至案例信息庫中,同時,設計人員上傳案例資料時系統還會根據不同的地域或者災害情況對選線案例進行提前篩選和分類,相關人員在查看或者學習選線案例時會變得更加快捷和高效。
應用展示層主要通過百度地圖API 和JavaScript前端頁面等技術進行實現。由于鐵路選線案例庫主要是基于響應式布局并且面向鐵路選線案例庫,所以它可以自適應地向使用不同終端的用戶顯示內容。系統包含了鐵路選線案例的添加、刪除、修改和檢查等功能。用戶還可以在應用展示層對上傳的案例信息和文件數據進行分析和應用,生成案例技術標準分析報告,實現線路平縱斷面圖和數據庫文件的在線瀏覽。
網絡傳輸層是通過HTTP 協議將靜態資源、動態資源傳輸給數據庫和應用展示層,鐵路選線案例資料中的靜態資源包括前端靜態頁面、項目案例文件和相關案例技術指標等,而動態資源主要包括前端頁面的渲染文件以及一些動態頁面等。應用展示層在獲得案例靜態和動態資料時,會通過網絡傳輸層預設的路由模塊按不同請求轉發至相應的網絡傳輸通道中,而數據層在接收到這些案例資料后會將數據自動分類存儲至服務器端,方便之后用戶調取和導出案例資料。
數據層位于鐵路選線案例倉庫架構的最底端,負責存儲以及處理通過應用展示層和網絡傳輸層傳遞過來的鐵路選線案例資料。數據層針對鐵路選線案例資料的類型被劃分為案例信息數據庫、元數據庫、地圖信息數據庫和文檔數據庫4 個不同的儲存空間,各個不同的空間數據庫都可以實現對于數據的上傳、修改、查詢和刪除,并且基于網絡傳輸層的路由通道,還可以將鐵路選線案例數據進行分類和導出。
鐵路選線案例系統功能模塊架構,如圖2 所示,主要包括6 個部分。

圖2 鐵路選線案例系統功能模塊設計架構
用戶管理模塊負責收集、存儲和記錄用戶的個人信息及操作行為。所有的用戶信息都保存在數據庫中,當用戶嘗試登錄系統或者使用相應功能時,系統前端頁面先捕捉到用戶填入的信息,通過Ajax異步交互技術將信息傳遞給服務器端,服務端自動將用戶填入的信息與數據庫中的用戶信息進行匹配,判斷用戶是否可以登錄系統或者使用相應的功能。
資料管理模塊主要負責管理用戶上傳的案例數據,資料管理模塊所包含的數據,如圖3 所示,按照數據類型可以分為數值數據、文本數據和文件數據。數值數據和文本數據主要包括案例的基本信息。系統將指導用戶按照固定結構填寫以上信息,在數據庫中,每個結構化數據的存儲類型也是預先設置好的。文件類型信息主要包含鐵路選線過程中涉及的各類文件,用戶上傳文件時系統會自動審核文件類型,文件也將被自動命名并存儲在服務器相對應的文件夾中。

圖3 資料管理模塊
統計分析模塊主要負責對用戶上傳的選線案例數據進行定量統計和定量分析。通過該模塊,用戶可以對單個鐵路選線案例信息和技術標準進行縱向統計和分析,也可以對特定范圍內的多個案例進行橫向比較和定量統計。該功能模塊主要借助于MongoDB 數據強大的自定義檢索功能,在服務器端實現數據統計,通過Ajax 和Session 存儲機制將統計結果和分析結果傳遞給前端展模塊。
案例查詢模塊主要負責數據庫中存儲的所有案例。用戶可以通過不同的搜索條件、不同的搜索方法找到與搜索條件相對應的案例。系統提供3 種不同的搜索方式,分別是精確搜索、模糊搜索和聯合查詢。
(1)在精確搜索中用戶可以自主選擇搜索條件,便可獲得符合搜索條件的案例;
(2)模糊搜索功能即用戶不用完全輸入搜索條件字段,服務器會根據用戶填入的模糊搜索字段在數據庫中搜索包含該字段的鐵路選線案例;
(3)聯合搜索功能是用戶可以同時輸入多個搜索條件,系統會查找符合多個搜索條件的案例,并將案例信息傳遞至案例展示模塊。
案例展示模塊主要負責系統各個功能頁面的展示,通過HTML 和CSS 技術,為系統的各個功能實現提供前端訪問接口,用戶可以通過案例展示模塊訪問不同的系統功能以及填寫鐵路選線案例資料,實現前端數據到服務器后端的傳遞和運輸。
數據可視化模塊主要負責將鐵路選線案例資料和從統計分析模塊中得到的結果通過圖表等豐富的可視化形式展現給用戶。該模塊主要利用了Echarts開源8 可視化庫和MXDraw CAD 在線瀏覽插件,將選線案例信息數據、統計分析模塊中得到的結果數據和CAD 文件轉換為瀏覽器可以渲染識別的數據類型。
根據資料管理模塊對鐵路選線案例資料的分類,系統的數據庫由案例信息數據庫和文檔信息數據庫兩部分組成。
鐵路選線案例資料不僅包含案例基本信息和相關技術指標等易于被數據庫存儲的數據,還包含一些線路平面圖、數據庫文件和地理信息文件等非結構化的文檔數據。為了使系統更加輕量化和有序化,系統將結構化數據分為數值型和字符串型2 種不同的數據類型;將非結構化的文檔數據按照文檔的名稱和存儲位置重新命名,并且把新的路徑轉換為字符串類型的數據。基于MongoDB 數據庫屬于非關系型數據庫,各個表單之間的連接和查詢沒有關系型數據庫那樣方便,所以我們對存儲在數據庫中的數據表提前指定數據模型,并且使用了MongoDB 數據庫中自帶的Mongoose 類庫作為中間件解決數據集合中數據操作困難的問題。當其他模塊需要對數據庫中的數據進行增刪改查等操作時,Mongoose 類庫會自動拋出接口實現對數據的篩選和遍歷,同時,還可以針對不同的限定條件,實現對特定數據的抓取。鐵路選線案例系統數據庫結構設計表,如表1 所示。

表1 鐵路選線案例信息數據庫結構
在鐵路選線案例系統數據庫中每一個表結構都具有唯一的ID 作為主鍵,案例技術標準信息以數字和短文本形式存儲在數據庫中,其中,短文本的字段大小為255 byte,案例項目編號是數字類型,字段大小為長整型,項目名稱、區域位置和設計日期作為案例基本信息是表中必要字段。
針對用戶上傳的鐵路線路的平縱斷面圖紙、實景照片以及設計說明書等文檔類型文件,系統在上傳文檔型數據時會增加一個文件傳輸通道以及相應文檔的信息記錄,所調用的語句為:


系統會將所有文件按照其所屬類型存儲至服務器中,同時,文檔的各類信息如文檔名稱、類型、存儲地址會和案例信息一起存儲在案例信息數據庫中,方便用戶下載和導出資料。
鐵路選線案例庫系統整體分為3 個功能平臺:鐵路選線案例庫、案例分析應用云平臺和案例信息管理系統。
鐵路選線案例庫為響應式布局設計,可根據客戶端的大小自適應內容比例,主要用于選線設計人員上傳和下載案例資料。用戶上傳的案例由后臺信息管理系統統一管理,案例信息包括案例編號、案例名稱、案例所屬區域位置、設計日期等案例基本信息、鐵路等級、設計速度、線間距、軌道類型和最小曲線半徑等技術設計標準。
案例分析應用云平臺是系統的核心平臺,主要用于分析和應用用戶上傳的案例信息,讀取用戶上傳的平縱斷面圖、數據庫文件和設計說明文檔等。基于讀取出來的數據,案例分析應用云平臺還會對選線案例做出評價和可視化分析。案例分析應用云平臺包括聯合查詢、案例分析、案例庫比對、線路在線預覽和數據可視化5 個模塊。
(1)聯合查詢模塊可以通過收集用戶自定義填寫的案例信息搜索項,在鐵路選線案例庫中搜索相同或相似案例;
(2)案例分析模塊通過讀取用戶上傳的Access數據庫文件中的各項技術參數,結合前端提供的報告模板,將其整合為案例分析報告;
(3)案例庫比對模塊是基于Echarts 圖表庫設計出來的信息統計圖表,主要負責展示鐵路選線案例庫中同一技術標準在案例庫中的統計信息,并且將統計信息加以處理,最終以圖表形式展現出來;
(4)線路在線預覽模塊主要依靠不同的瀏覽器插件,系統讀取用戶上傳的平縱斷面圖和地理信息文件,將數據傳遞給客戶端插件,插件自動將CAD圖紙、線路形狀和走向顯示給用戶;
(5)數據可視化模塊主要負責將數據通過可視化技術進行展示,方便用戶進行不同案例之間的數據預覽和比對。
案例信息管理系統是便于用戶對自己上傳的案例進行管理而設計的,主要包含案例編輯管理、案例應用信息管理以及系統用戶管理3 大模塊。案例編輯模塊主要針對用戶想對自己上傳的案例操作時提供接口。案例應用信息管理模塊可以統計用戶上傳案例的訪問量和下載量,而系統用戶管理模塊是對系統用戶的登錄和登出,其流程,如圖4 所示,該模塊主要用于對登錄系統用戶的身份進行核驗以及對系統的日常維護。

圖4 用戶管理模塊流程
本文在分析鐵路選線案例特點的基礎上設計了鐵路選線案例表的結構,結合B/S 架構,遵循MVC前后端分層設計思想,構建了鐵路選線案例系統的基本框架,同時,介紹了鐵路選線案例庫、案例分析應用云平臺和案例信息管理系統3 大主要功能模塊,為鐵路選線系統的建設提供了一定的理論支持。隨著鐵路選線的不斷完善和計算機技術水平的提高,鐵路選線案例系統的相關應用功能還將不斷提升,以便更好地分析和應用鐵路選線工程案例,真正地為鐵路選線工作者提供幫助。