宋山,張正炳,裴彥良,吳愛平
(長江大學電子信息學院,湖北 荊州 434023)(自然資源部第一海洋研究所海洋沉積與環(huán)境地質(zhì)國家海洋局重點實驗室,山東 青島 266061 青島海洋科學與技術(shù)國家實驗室海洋地質(zhì)過程與環(huán)境功能實驗室,山東 青島 266061)(長江大學電子信息學院,湖北 荊州 434023)
在經(jīng)濟高速發(fā)展的今天,各領(lǐng)域?qū)κ吞烊粴獾葢?zhàn)略性資源的需求量很大,而陸地上油氣資源狀況逐漸變得嚴峻。海洋中蘊含著豐富的油氣、水合物等資源[1],因而各國都將目光轉(zhuǎn)移到海洋資源開發(fā)上,希望能替代原有的能源供社會各領(lǐng)域使用[2]。我國是海洋大國,海洋資源儲量豐富,開發(fā)潛力巨大。但是,與西方國家相比,我國在海洋資源開發(fā)方面相關(guān)技術(shù)起步較晚,相關(guān)設(shè)備主要依賴進口[3]。海洋地震采集拖纜技術(shù)又受到國外的出口限制[4],這使得我國在海洋勘察開采方面處于被動的局面。 為了打破國外的技術(shù)封鎖,應(yīng)對我國天然氣水合物勘探和試采工程對高精度海洋地質(zhì)探查的迫切需要,由國家海洋局第一研究所聯(lián)合國內(nèi)優(yōu)勢單位啟動了“深拖式高分辨率多道地震探測技術(shù)與裝備研究”的課題[5],深拖式地震采集記錄系統(tǒng)軟件是其子課題“深拖多道數(shù)字纜與采集系統(tǒng)研制”的關(guān)鍵部分,在深拖式地震采集系統(tǒng)中起著中央控制與數(shù)據(jù)記錄的作用。因此,研究海洋深拖式地震采集記錄系統(tǒng)軟件對于深拖系統(tǒng)實現(xiàn)海洋勘探的目標有著重要意義。下面,筆者在現(xiàn)有的海洋地震勘探軟件的基礎(chǔ)上,針對連續(xù)采集的新要求和本地數(shù)據(jù)存儲實時性問題,采用多線程技術(shù)和內(nèi)存映射技術(shù),實現(xiàn)了連續(xù)采集模式下的實時監(jiān)控和大量地震數(shù)據(jù)的快速存儲。
圖1 深拖系統(tǒng)組成示意圖
圖2 深拖系統(tǒng)結(jié)構(gòu)框圖
深拖系統(tǒng)是深海拖曳式地震數(shù)據(jù)采集系統(tǒng),對比海面拖曳式地震數(shù)據(jù)采集系統(tǒng),深拖系統(tǒng)有較高的地層分辨率[6]。深拖系統(tǒng)從設(shè)備所處位置上可分為水上船載部分和水下拖曳部分,其中,水下拖曳部分又可分為拖體部分和拖纜部分,如圖1所示。水上船載部分可控制水下拖體,使拖體上攜帶的震源激發(fā)地震波。地震波經(jīng)過地層反射后,被拖纜中的檢波器接收,隨后產(chǎn)生模擬電信號被拖纜中的采集器轉(zhuǎn)化為數(shù)字電信號。采集器將數(shù)字電信號逐級向上一級數(shù)傳單位傳播,最終經(jīng)過拖體上傳到水上船載部分,后期使用專業(yè)軟件對上傳的地震數(shù)據(jù)進行分析可得出地層地質(zhì)信息[7]。
深拖系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
水上船載部分是系統(tǒng)的中央控制記錄單元和監(jiān)控中心,主要由主控計算機、質(zhì)量控制(Quality Control,QC)單元、狀態(tài)監(jiān)控單元、GPS定位系統(tǒng)和網(wǎng)絡(luò)交換機組成。負責對水下作業(yè)系統(tǒng)進行系統(tǒng)設(shè)備參數(shù)配置、系統(tǒng)運行狀態(tài)監(jiān)控、任務(wù)分發(fā)與調(diào)度等。主控計算機是系統(tǒng)中央控制和記錄單元的關(guān)鍵部分,負責向運行控制中心(Operating Control Center,OCC)發(fā)送控制指令和接收OCC上傳的采集數(shù)據(jù)、系統(tǒng)狀態(tài)數(shù)據(jù)等,并將接收的數(shù)據(jù)處理后進行顯示和存儲。QC是獨立于控制平臺的系統(tǒng)工作質(zhì)量監(jiān)控中心,能實時接收和解析采集數(shù)據(jù),并分析給出評價結(jié)果。狀態(tài)監(jiān)控單元能接收網(wǎng)絡(luò)交換機中特定端口的狀態(tài)數(shù)據(jù),該狀態(tài)數(shù)據(jù)由OCC獲取并上傳,反映了OCC在水下工作時的溫濕度、高度和深度等信息。GPS定位系統(tǒng)可通過衛(wèi)星實時獲取當前拖曳船的位置、行駛速度等信息,可為采集的地震數(shù)據(jù)提供地理位置坐標信息。網(wǎng)絡(luò)交換機用于數(shù)據(jù)的傳輸與交換。
水下拖曳系統(tǒng)分為拖體部分和拖纜部分,拖體部分包含了震源、OCC、高度計和深度計。震源可由OCC控制激發(fā)聲波,聲波經(jīng)過地層反射后的地震波可反映地質(zhì)情況。OCC是采集作業(yè)主要的控制和處理單元,可接收水上的控制指令自主控制拖纜中的采集單元進行采集作業(yè),并將接收到的采集數(shù)據(jù)處理打包后上傳至水上船載部分。高度計和深度計可檢測拖體當前所處的水深。
水下拖纜部分負責地震波數(shù)據(jù)的采集和傳輸,其結(jié)構(gòu)圖如圖3所示。一條拖纜包含數(shù)傳包和工作段采集纜。其中,數(shù)傳包一方面負責接收OCC的指令和下發(fā)控制指令到采集纜中的采集器,另一方面,數(shù)傳包能將其下一級數(shù)傳包上傳的數(shù)據(jù)和其本身連接的采集器上傳的數(shù)據(jù)上傳到其上一級。數(shù)傳包在數(shù)據(jù)傳遞的過程中相當于數(shù)據(jù)中繼站,OCC下發(fā)的指令和數(shù)傳包打包的數(shù)據(jù),在各個數(shù)傳包之間可逐級向下級傳輸或逐級向上級傳輸。工作段采集纜中包含有檢波器和采集站,檢波器可檢測地震波信號并將其轉(zhuǎn)換成電信號;采集站上帶有采集單元,能接收電信號并將其轉(zhuǎn)化成數(shù)據(jù)。1個采集站連接有4組檢波器,能采集4道地震數(shù)據(jù)。每一個數(shù)傳包兩邊各有2個采集站接口,總共負責打包上傳16道地震數(shù)據(jù)。當數(shù)傳包和工作段采集纜接駁到一起時,數(shù)傳包通過采集纜中的通信線路和其上一級以及下一級數(shù)傳包建立通信,同時也和與其直接接駁的采集纜中的采集站建立通信。
圖3 拖纜結(jié)構(gòu)圖
深拖式地震數(shù)據(jù)采集記錄系統(tǒng)軟件通過向OCC下發(fā)指令,控制數(shù)傳包對采集站加電,并設(shè)置好采樣率、增益。開始采集時,OCC控制震源激發(fā)地震波,地震波經(jīng)地層反射之后被拖纜上的檢波器檢測到,檢波器產(chǎn)生電信號被采集站捕捉產(chǎn)生數(shù)據(jù),采集器將數(shù)據(jù)上傳至數(shù)傳包。數(shù)傳包將采集數(shù)據(jù)按一定的格式打包之后,往其上一級數(shù)傳包上傳,若其下一級數(shù)傳包有數(shù)據(jù)傳來,則將其下一級數(shù)傳包的數(shù)據(jù)往上一級數(shù)傳包方向上傳。這樣,整條纜的數(shù)據(jù)最終都會傳至OCC,進而上傳至水上船載部分。
深拖式地震數(shù)據(jù)采集記錄系統(tǒng)軟件運行于主控計算機上,用戶通過操作軟件,對水下拖曳系統(tǒng)進行控制,進而驅(qū)動整個深拖系統(tǒng)進行采集作業(yè),并記錄水下拖曳系統(tǒng)上傳的采集數(shù)據(jù),它是系統(tǒng)中央控制和記錄單元的關(guān)鍵組成部分。
深拖式地震數(shù)據(jù)采集記錄軟件是運行于主控計算機上的監(jiān)控和記錄軟件,一方面,該軟件方便用戶對系統(tǒng)設(shè)備進行配置與控制,從而使采集單元按照用戶要求進行采集作業(yè)。同時,該軟件可實時顯示采集波形,方便用戶及時了解當前系統(tǒng)的工作狀態(tài)。另一方面,軟件接收數(shù)據(jù)后以規(guī)定的數(shù)據(jù)格式記錄采集數(shù)據(jù),以方便后期的地震數(shù)據(jù)處理與分析。為滿足深拖式地震數(shù)據(jù)采集記錄軟件的功能需求,其應(yīng)具有以下功能:
1)系統(tǒng)控制 能通過網(wǎng)口與OCC進行通信,進而控制和管理系統(tǒng)設(shè)備,如控制OCC下發(fā)采集站加電或斷電指令、設(shè)置采集站的采樣率和增益、控制采集站開始采集或停止采集等。
2)實時監(jiān)控 能實時接收和解析OCC上傳的采集數(shù)據(jù)和狀態(tài)數(shù)據(jù),進而顯示地震波波形曲線和基本的狀態(tài)信息。在深拖系統(tǒng)中,需要考慮非連續(xù)采集工作模式和連續(xù)采集工作模式下的實時監(jiān)控問題。在非連續(xù)采集模式下,軟件每接收一段時間的數(shù)據(jù)之后,會有一段空閑時間可供軟件做數(shù)據(jù)解析、實時波形顯示。而在連續(xù)采集模式下,軟件持續(xù)不斷地接收采集數(shù)據(jù),每接收完一段時間的采集數(shù)據(jù),就需要立即顯示地震波形和進行數(shù)據(jù)存儲,在此期間,程序仍在接收采集數(shù)據(jù),這對軟件的實時性提出了更高的要求。狀態(tài)信息主要包括數(shù)字包加電狀態(tài)、GPS信息(經(jīng)度、緯度、船速)、當前采集信息(采樣率、增益)、震源觸發(fā)時間間隔和觸發(fā)信號脈沖寬度等。
3)數(shù)據(jù)存儲 深拖式地震數(shù)據(jù)采集記錄軟件在接收和解析采集數(shù)據(jù)之后,能及時以SEGY格式將地震數(shù)據(jù)存儲到本地硬盤,以供后期地震數(shù)據(jù)的處理和解釋使用。
為了滿足深拖采集與記錄軟件功能設(shè)計需求,針對該軟件數(shù)據(jù)交互性強、對時序性和實時性要求高的特點,深拖式采集與記錄軟件采用分層設(shè)計結(jié)構(gòu),如圖4所示。軟件分為3個處理層:①數(shù)據(jù)層實現(xiàn)接收網(wǎng)絡(luò)報文數(shù)據(jù)、載入配置文件、程序狀態(tài)初始化和指令報文發(fā)送的功能;②處理層完成接收數(shù)據(jù)的校驗、解析和計算,并交給應(yīng)用層,同時也能按照用戶要求將要下發(fā)的參數(shù)指令合成打包;③應(yīng)用層接收處理層過來的數(shù)據(jù),并按照功能模塊進行波形顯示、狀態(tài)顯示和數(shù)據(jù)存儲。
深拖式地震數(shù)據(jù)采集記錄系統(tǒng)軟件的功能框架圖如圖5所示,軟件主要包含以下功能模塊:
1)參數(shù)配置 可對OCC、采集站和軟件本身的功能參數(shù)進行配置:對OCC可設(shè)置其網(wǎng)絡(luò)通訊IP地址、設(shè)定工作方式(非連續(xù)采集、連續(xù)采集);采集站主要指對其采集類型(采集檢波器信號、采集自檢信號)、采樣率和增益的設(shè)置;軟件本身的參數(shù)設(shè)置則包含了對波形顯示參數(shù)(波形顯示幅值、波形顯示時間長度、顯示道數(shù)等)和采集數(shù)據(jù)保存路徑的設(shè)置。
2)數(shù)據(jù)采集 數(shù)據(jù)采集功能包括非連續(xù)采集和連續(xù)采集。其工作流程如圖6所示,對上位機而言,無論是連續(xù)采集還是非連續(xù)采集,其工作模式無改變,軟件始終根據(jù)“開始幀”和“結(jié)束幀”來決定是否繼續(xù)接收采集數(shù)據(jù)。當接收到“開始幀”時,軟件將繼續(xù)接收采集數(shù)據(jù),直到接收到“結(jié)束幀”,則進行數(shù)據(jù)解析、波形顯示和數(shù)據(jù)存儲,隨后又繼續(xù)判斷是否接收到“開始幀”,如此循環(huán)執(zhí)行數(shù)據(jù)接收任務(wù)。而對于OCC而言,連續(xù)采集和非連續(xù)采集模式下的工作流程則有所區(qū)別。在非連續(xù)采集模式下,OCC判斷當前是否達到觸發(fā)條件(達到觸發(fā)時間間隔或者觸發(fā)距離),如果達到觸發(fā)條件,則觸發(fā)震源,發(fā)送“開始幀”給主控機并同時發(fā)送“開始采集”指令給數(shù)傳包,進而下發(fā)到采集站,使其開始采集數(shù)據(jù)。如果未達到觸發(fā)條件,則繼續(xù)等待和判斷是否達到觸發(fā)條件。而在連續(xù)采集模式下,數(shù)據(jù)采集和震源觸發(fā)是2個相對獨立的部分。數(shù)據(jù)采集一旦開始則會連續(xù)不斷地采集數(shù)據(jù),并且不斷地按序發(fā)送“開始幀”、“采集數(shù)據(jù)”和“結(jié)束幀”。而OCC也不斷地判斷是否達到觸發(fā)條件,若達到觸發(fā)條件,則觸發(fā)震源,并且記錄當前時刻的采集文件的名稱和采集數(shù)據(jù)點號到炮時文件中,方便后期將炮號與采集時間對應(yīng)起來。
圖6 深拖系統(tǒng)數(shù)據(jù)采集工作流程
圖7 OCC震源觸發(fā)工作流程
3)震源觸發(fā) 包含定時觸發(fā)、定距觸發(fā)和外部觸發(fā)3種方式,如圖7所示。定時觸發(fā)由用戶設(shè)置觸發(fā)時間間隔,如T_tri。配置完成后,OCC每隔時間T_tri激發(fā)震源產(chǎn)生地震波。定距觸發(fā)方式下,用戶需要設(shè)置定距距離,OCC將根據(jù)圖7(b)中的流程計算觸發(fā)時間并觸發(fā)震源。外部觸發(fā),則是外部其他設(shè)備控制震源激發(fā)地震波,每一次激發(fā)地震波的同時,外部設(shè)備向OCC發(fā)送脈沖信號,以此通知OCC控制采集單元進行采集作業(yè)。
4)實時監(jiān)控 軟件可顯示地震數(shù)據(jù)波形和系統(tǒng)狀態(tài)。通過配置顯示參數(shù),用戶可選擇多道地震波形顯示,也可選擇單道地震波形進行顯示??梢赃x擇“高通”“低通”濾波器選項,則軟件會對采集的數(shù)據(jù)做濾波處理,以便更好地觀察地震波形。系統(tǒng)狀態(tài)顯示包括數(shù)傳包通訊狀態(tài)、數(shù)字包電源狀態(tài)及GPS信號狀態(tài)。
5)數(shù)據(jù)存儲 數(shù)據(jù)存儲包括地震采集數(shù)據(jù)、炮時信息和軟件配置參數(shù)的存儲。地震數(shù)據(jù)主要以SEGY格式存儲于軟件所在的主機硬盤上。炮時信息記錄了震源激發(fā)時刻的GPS信息(包括GPS時間、經(jīng)度、緯度和GPS船速)和當前保存的SEGY文件的文件名,用于后期將采集數(shù)據(jù)和震源放炮時間點聯(lián)系對應(yīng)起來。軟件每次做完參數(shù)配置,都會將配置信息寫入硬盤中程序運行所在目錄。在下次打開軟件時,軟件會自動載入之前保存的配置信息,從而免去每次上線工作前都要重新設(shè)置參數(shù)的麻煩。
深拖系統(tǒng)數(shù)據(jù)交互性和實時性強,其軟件在接收采集數(shù)據(jù)的同時,還要能及時處理采集數(shù)據(jù),如顯示采集波形和存儲數(shù)據(jù)。特別是當軟件處于連續(xù)采集工作模式下,數(shù)據(jù)接收、數(shù)據(jù)解析和波形顯示功能要始終處于不間斷運行狀態(tài),才能達到實時監(jiān)控的要求。要實現(xiàn)這種多個任務(wù)并發(fā)性處理,必須引入多線程技術(shù)。多線程技術(shù)可將CPU時間按照一定的優(yōu)先級進行劃分,各子線程在各自的CPU時間片段內(nèi)共享CPU,依次執(zhí)行這些時間片段內(nèi)的任務(wù),在宏觀上就表現(xiàn)為任務(wù)的并發(fā)性處理[8]。深拖式地震數(shù)據(jù)采集與記錄軟件主要包含有數(shù)據(jù)接收線程、采集波形顯示線程、數(shù)據(jù)存儲線程。其中采集波形顯示線程和數(shù)據(jù)存儲線程需要等待數(shù)據(jù)接收線程完成當前炮數(shù)據(jù)的接收和解析之后,才開始啟動運行。在此之前,這2個線程應(yīng)處于等待狀態(tài),以減少對CPU資源的占用。當數(shù)據(jù)接收線程完成了采集數(shù)據(jù)的接收和解析之后,波形顯示線程和數(shù)據(jù)存儲線程則會被喚起,繼續(xù)做數(shù)據(jù)處理。為了協(xié)調(diào)這種線程之間的同步問題,軟件中使用事件[9](Event)驅(qū)動線程的方式,對線程運行的先后次序進行控制。如在程序中定義全局變量CEventm Event,隨后在子線程中的循環(huán)語句(while)中,使用等待事件語句:WaitForSingleObject(mEvent.m_hObject,INFINITE),只有當事件變量mEvent執(zhí)行mEvent.SetEvent()語句之后,該子線程才會跳過等待事件語句,繼續(xù)執(zhí)行在其之后的語句。在深拖式地震數(shù)據(jù)采集與記錄軟件進行數(shù)據(jù)采集的過程中,特別是在連續(xù)采集模式下,為了能進一步保證實時性和穩(wěn)定性,除了利用多線程事件驅(qū)動方式保證程序功能的時序性和實時性之外,還要利用多線程技術(shù)的優(yōu)先級別設(shè)定功能,進一步分配CPU資源,才能保證軟件的實時性。VC中設(shè)置線程優(yōu)先級的函數(shù)為:BOOL SetThreadPriority( HANDLE hThread, intnPriority),其中hThread為線程的句柄,nPriotity為線程的優(yōu)先級標志,按照由低到高的順序,有以下6個級別:
THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_HIGHEST
THREAD_PRIORITY_TIME_CRITICAL
在軟件中,采集數(shù)據(jù)線程和數(shù)據(jù)存儲線程需要設(shè)置優(yōu)先級別為“THREAD_PRIORITY_TIME_CRITICAL”(實時),以此保證能接收到所有的數(shù)據(jù)而不被程序中其他線程打斷,其他線程如波形顯示線程、指令發(fā)送線程、狀態(tài)檢測線程和狀態(tài)顯示線程等則處于優(yōu)先級較低的級別。
深拖式采集記錄軟件不僅要求對采集數(shù)據(jù)作實時監(jiān)控,還要求能實時存儲采集數(shù)據(jù)。在地震數(shù)據(jù)持續(xù)采集的過程當中,在較短的時間內(nèi)會產(chǎn)生大量的采集數(shù)據(jù)。要做到實時存儲這些采集數(shù)據(jù),就需要在盡可能短的時間內(nèi),將數(shù)據(jù)存儲到磁盤中。特別在連續(xù)采集模式下,在存儲數(shù)據(jù)的同時也在接收新的采集數(shù)據(jù),則需要保證存儲數(shù)據(jù)的速度大于接收采集數(shù)據(jù)的速度。使用多線程技術(shù),雖然能提高CPU利用效率,但也無法完全解決存儲速度的問題,這和軟件編譯平臺下的磁盤I/O操作函數(shù)有關(guān),如在Windows下使用典型的fwrite函數(shù),由于調(diào)用該函數(shù)需要調(diào)用系統(tǒng)庫,所以其接口速度較慢,存儲大量采集數(shù)據(jù)時會耗費較長的時間。因此,深拖主控軟件采用內(nèi)存映射的方式實現(xiàn)快速磁盤I/O操作[10]。內(nèi)存映射技術(shù)使應(yīng)用程序可通過內(nèi)存指針(虛擬地址)對磁盤上的文件進行訪問,從而建立了磁盤文件內(nèi)容和進程虛擬地址空間的映射關(guān)系,使得程序可直接通過虛擬地址訪問磁盤上的文件,從而繞過了調(diào)用系統(tǒng)庫函數(shù)這一過程,也無需對文件內(nèi)容進行緩沖處理,大大提高了磁盤I/O操作效率。使用內(nèi)存映射的方式存儲采集數(shù)據(jù)到磁盤中,其過程如下所示:
1)定義臨時指針變量:__int8 * TempSegMem
2)申請臨時內(nèi)存控件:TempSegMem = new __int8[m_dwMemSize]
3)創(chuàng)建文件:HANDLE hFile = CreateFile(pszPathname
GENERIC_READ | GENERIC_WRITE
FILE_SHARE_READ|FILE_SHARE_WRITE
NULL
CREATE_ALWAYS
FILE_ATTRIBUTE_NORMAL
NULL)
4)創(chuàng)建文件映射對象:
HANDLE hFileMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, m_nCurTempSegMem, NULL)
5)在調(diào)用進程的地址空間映射一個文件視圖:
LPBYTE lpbMapAddress = (LPBYTE)MapViewOfFile( hFileMap
FILE_MAP_WRITE
0
0
m_nCurTempSegMem)
6)向內(nèi)存映射視圖中寫數(shù)據(jù):
memcpy(lpbMapAddress,TempSegMemB,m_nCurTempSegMem)
7)把文件映射視圖中的修改的內(nèi)容或全部寫回到磁盤文件中:
FlushViewOfFile(lpbMapAddress, m_nCurTempSegMem )
8)卸載映射:
UnmapViewOfFile(lpbMapAddress)
9)關(guān)閉文件映像句柄:
CloseHandle(hFileMap)
10)關(guān)閉文件:
CloseHandle(hFile)
表1 主控機硬件配置
為測試軟件的功能,驗證軟件功能的正確性,在深拖系統(tǒng)聯(lián)合海試過程中,使軟件運行于測試服務(wù)器主機上,配合系統(tǒng)其他部分,進行了長達4d的測試。測試服務(wù)器主機硬件配置如表1所示。
使用的操作系統(tǒng)為Windows 7(64位)。測試時,先通過軟件設(shè)置采集方式為非連續(xù)采集,并設(shè)置震源觸發(fā)模式分別為定時觸發(fā)、定距觸發(fā)和外部觸發(fā)模式,隨后通過軟件啟動系統(tǒng)采集功能進行采集。在采集過程中,觀察采集波形,確認波形刷新方式符合各觸發(fā)方式下數(shù)據(jù)刷新的特點,圖8為系統(tǒng)震源激發(fā)6601炮時,軟件顯示的實時波形。監(jiān)控圖形中央的數(shù)字“6601”表明當前放炮的炮數(shù)為6601次。軟件繼續(xù)運行,未出現(xiàn)程序穩(wěn)定性問題,說明軟件非連續(xù)采集功能完好且運行穩(wěn)定。
隨后,在軟件上設(shè)置采集方式為連續(xù)采集,并同樣設(shè)置震源觸發(fā)模式分別為定時觸發(fā)、定距觸發(fā)和外部觸發(fā),觀察顯示波形,確認在連續(xù)采集模式下,軟件持續(xù)不斷地每隔設(shè)定記錄時間(3000ms)刷新顯示波形,符合連續(xù)采集模式下數(shù)據(jù)刷新的特點,說明軟件連續(xù)采集功能完好,運行穩(wěn)定。如圖9所示,可看出采集波形不再像非連續(xù)采集時處于記錄時間靠前的位置,而是處于靠近中間的位置,在實際測試中,連續(xù)采集時的監(jiān)控波形會處于記錄時間各個不同的位置,這是由于測試連續(xù)采集的時候,數(shù)據(jù)采集一直在進行,而震源觸發(fā)則是間斷的,而且采集時間與震源觸發(fā)時間無聯(lián)系,從而導致直達波顯示的時間不再像非連續(xù)采集那樣固定。在后期對地震數(shù)據(jù)做處理時,專業(yè)人員將根據(jù)OCC記錄的炮時文件,對連續(xù)采集數(shù)據(jù)文件進行切割整理,進而將放炮時間點和采集時間對應(yīng)起來。以上測試結(jié)果表明,軟件可穩(wěn)定運行且功能良好,在實時性、穩(wěn)定性和功能性方面滿足深拖式地震數(shù)據(jù)采集作業(yè)的需求
圖8 非連續(xù)采集時的監(jiān)控圖形 圖9 連續(xù)采集時的監(jiān)控圖形
深拖式地震數(shù)據(jù)采集與記錄系統(tǒng)軟件是深拖采集系統(tǒng)的重要組成部分。筆者介紹了深拖式地震數(shù)據(jù)采集與記錄系統(tǒng)軟件的設(shè)計方法和實現(xiàn)思想,針對系統(tǒng)加入連續(xù)采集工作模式的要求,采用多線程技術(shù)和合理分配優(yōu)先級的方法,解決了在連續(xù)采集模式下,軟件的實時性問題;針對大量數(shù)據(jù)實時存儲的問題,使用內(nèi)存映射技術(shù),實現(xiàn)了快速數(shù)據(jù)存儲。軟件經(jīng)過多次長時間實際測試,其實時性和功能性得到了驗證,可用于深拖式地震數(shù)據(jù)采集作業(yè)。