国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MapGis平臺可視化篩選無人值守航空物探數(shù)據(jù)

2018-11-02 09:58楊金政邱崇濤高國林
物探化探計算技術(shù) 2018年5期
關(guān)鍵詞:測線航跡測點

楊金政, 邱崇濤, 田 宇, 高國林, 祁 程

(1.核工業(yè)航測遙感中心,石家莊 050002;2.中核集團公司 鈾資源地球物理勘查技術(shù)中心(重點實驗室),石家莊 050002)

0 前言

航空地球物理勘探簡稱航空物探,具有效率高、成本低、便于大面積工作、探測深度較大等優(yōu)點,是基礎(chǔ)性和公益性地質(zhì)調(diào)查、戰(zhàn)略性礦產(chǎn)勘查的重要手段,是地質(zhì)勘查現(xiàn)代化的標志之一[1]。為了降低人員成本與風險,2011年,中國國土資源部試行了航空物探測量無人值守工作方式,2013年由中國核工業(yè)集團公司和中國地質(zhì)研究院又成功進行了無人機航空測量試驗。無人值守的工作方式與傳統(tǒng)方式的一個顯著差異是飛機從起飛到落地,儀器使用同一個測線編號持續(xù)記錄數(shù)據(jù),首先需要對航跡數(shù)據(jù)進行測線識別、裁剪,目前,許多國內(nèi)、外著名的地球物理數(shù)據(jù)處理軟件(如Montaj Oasis、geoProbe等),在此環(huán)節(jié)上,處理起來并不十分“舒暢”。筆者利用國內(nèi)地質(zhì)行業(yè)最常用的MapGis地理信息系統(tǒng),對航測數(shù)據(jù)實現(xiàn)可視化的數(shù)據(jù)編輯與篩選,不僅適用于無人值守飛行數(shù)據(jù),而且對于常規(guī)飛行數(shù)據(jù),同樣具有針對性強、工作效率高的特點。

MapGis地理信息系統(tǒng)是武漢中地信息工程有限公司開發(fā)的GIS基礎(chǔ)平臺軟件系統(tǒng),集地圖輸入、數(shù)據(jù)庫管理及空間分析的綜合系統(tǒng);

不僅圖形編輯功能強大,而且具有較完善的二次開發(fā)功能[2];是國內(nèi)地質(zhì)、物探領(lǐng)域中應(yīng)用最廣泛的軟件之一。屬性管理子系統(tǒng)是MapGis的重要組成部分,可實現(xiàn)對屬性數(shù)據(jù)管理[3]。本程序是利用MapGis圖元的屬性結(jié)構(gòu)(包括點、線和區(qū)屬性結(jié)構(gòu)),通過錄入、修改屬性數(shù)據(jù),借助MapGis強大的二次開發(fā)和圖形編輯功能,交互式地進行數(shù)據(jù)的識別、篩選,最終獲得符合質(zhì)量要求的測量數(shù)據(jù)。

1 設(shè)計背景

1.1 航空物探數(shù)據(jù)簡介

我中心承擔的航測任務(wù)中,大多以航磁、航放同步測量為主。航空數(shù)據(jù)采集是以飛行架次為單位。數(shù)據(jù)記錄為一個二進制文件,先將二進制文件轉(zhuǎn)換為3個ASCII文件(航磁、航放窗數(shù)據(jù)、航放全譜);每個測量數(shù)據(jù)均包括文件頭和測量數(shù)據(jù)兩個部分;文件頭主要記錄儀器型號、參數(shù)設(shè)置、測量時間、地點、架次等參數(shù)。測量數(shù)據(jù)記錄了該架次所有實測數(shù)據(jù),包括早晚測試(能譜)、早、晚基線(磁、放)、測線(磁、放)等測量數(shù)據(jù)。圖1為無人機航放窗數(shù)據(jù)ASCII文件的數(shù)據(jù)格式。從圖1中可看出,測量數(shù)據(jù)包括測線號、基點號、經(jīng)緯度、坐標值、高度值、溫度值、放射性元素測量值、日期和時間等內(nèi)容。

1.2 數(shù)據(jù)質(zhì)量控制

航測數(shù)據(jù)的采集受諸多因素的影響,在確保天氣、儀器性能、地面磁日變站等正常前提下,通過測區(qū)范圍、飛行速度、離地飛行高度、偏航距等指標衡量數(shù)據(jù)質(zhì)量;在物探項目中,項目設(shè)計測線是野外數(shù)據(jù)采集最基本的依據(jù)。離地飛行高度(離地高度),在航空伽瑪能譜測量中是一項十分重要的參數(shù)。一般情況下,飛機應(yīng)沿地形起伏飛行,高度保持在80 m~ 120 m。由于放射性計數(shù)率隨高度呈指數(shù)衰減,離地高度過高,導致計數(shù)率偏低,將會使地面弱異常被遺漏,同時增大統(tǒng)計漲落誤差;離地高度過低,無法將測線間區(qū)域全覆蓋[4],同時飛行安全指數(shù)大大降低。偏航距指實際飛行航跡與設(shè)計測線的偏移距離,依據(jù)測量比例尺確定最大偏航距[5]。在實際飛行測量中,一條測線結(jié)束后,飛機轉(zhuǎn)入下一條測線時,測量數(shù)據(jù)雖處于項目設(shè)計之外,但在實際數(shù)據(jù)處理時,應(yīng)盡量多地保留測區(qū)外符合質(zhì)量要求的數(shù)據(jù)。在測區(qū)中,受高大建筑物、地形等因素影響,往往也會出現(xiàn)“超高”、“偏離”的現(xiàn)象,此時必須及時了解具體情況,做出下一步飛行方案。

2 程序?qū)崿F(xiàn)

為了盡可能地保留測區(qū)外的有效數(shù)據(jù),同時及時準確掌握各架次的飛行質(zhì)量,可視化的數(shù)據(jù)篩選顯得十分必要。

2.1 設(shè)計流程

總體上,利用此程序進行數(shù)據(jù)編輯遵循“數(shù)據(jù)—圖形—數(shù)據(jù)”變換過程,分為5個步驟,除第4步為手工操作外,其余均由程序自動完成(圖2)。

1)設(shè)計測線繪制。根據(jù)設(shè)計坐標,生成具有屬性結(jié)構(gòu)的點、線、區(qū)三個文件,將各自設(shè)計測線信息錄入其中,作為自動識別依據(jù)。

圖2 程序設(shè)計流程圖Fig.2 The flow chart of program

圖3 無人機某一架次物探作業(yè)航跡圖Fig.3 Map of a sortie of flight track of airborne geophysical survey using drone

2)航跡線的繪制。將實測數(shù)據(jù)繪制成圖,線文件為航跡線,包含“測線編號”的屬性。點文件包括:①子圖點文件,表明“測點位置”和“高度等級”;②注釋點文件,包括“測線編號”、“飛行高度”信息(圖3)。

3)依據(jù)設(shè)計測線,將航跡線自動分離、識別并補充錄入“偏航距”信息。

4)在MapGis中,依據(jù)測點信息(點文件),手工編輯航跡線,剔除不合格數(shù)據(jù)。

5)依據(jù)編輯后的航跡線端點坐標,篩選實測數(shù)據(jù)。

6)換名存儲航跡線,作為下一架次數(shù)據(jù)編輯的參照。

2.2 程序?qū)崿F(xiàn)

此程序基于MapGis軟件提供的COM組件[6],使用C#語言編寫。有關(guān)MapGis的二次開發(fā)環(huán)境、組件注冊與引用以及點、線、區(qū)的寫入等技術(shù)[7-8]。筆者以2015年在新疆喀什地區(qū)開展的無人機航空物探綜合站測量技術(shù)研發(fā)與應(yīng)用示范項目[9-10]中的航測數(shù)據(jù)為依據(jù),得到簡述程序?qū)崿F(xiàn)過程。

2. 2.1 設(shè)計測線成圖

1)準備工作。在程序運行前,建立帶有屬性結(jié)構(gòu)的點、線、區(qū)模板文件。由于該程序設(shè)計僅針對于飛行質(zhì)量,并不對測量值進行修正、處理,所以線、區(qū)文件只添加“測線編號”屬性;點文件添加“基點號”和“測線編號”兩項屬性(圖4),其他數(shù)值未寫入屬性結(jié)構(gòu)中。上述三個模板文件均為空文件,隨后生成的MapGis文件均基于此模板完成[3]。設(shè)置方法可參見參考文獻[3]。

為提高運算效率,坐標位置也未寫入屬性結(jié)構(gòu)中,而是通過圖中繪制的測線、測點的坐標值換算獲得。

2)設(shè)計測線的繪制。根據(jù)基線、設(shè)計測線的端點坐標,在MapGis中繪制設(shè)計測線圖(圖5),包括測線編號(點文件)、設(shè)計測線(線文件)、測線識別范圍(區(qū)文件)。測線識別范圍是指單條設(shè)計測線兩側(cè)外擴接近1/2線距,兩端外擴1 km~ 2 km的區(qū)域。由于線、區(qū)文件均是基于上述模板文件生成,所以它們中的圖元均具有“測線編號”的屬性結(jié)構(gòu)。線文件,屬性錄入代碼為:

myLinArea.Load(modelWL);//加載線模板文件

Record att2 = new Record(); //屬性定義并實例化

myLinArea.att.Get(LineCounts, out att2); //獲取原有屬性

att2.Value[2] = LineNo; //獲取屬性(線號)

myLinArea.att.Write(LineCounts, att2);//寫入屬性

……

//另存線文件

myLinArea.Save(WorkArea23 + @"設(shè)計測線.wl");

//區(qū)屬性定義與線屬性類似,(略)

另外,基于測區(qū)范圍外1 km~2 km,小于飛機轉(zhuǎn)彎區(qū)繪制一個范圍框,稱之為“航跡分離框”,用于實測測線的分離(圖4)。

圖4 點、線、區(qū)文件屬性結(jié)構(gòu)參數(shù)Fig.4 Parameters of attribute structure of point, line and region files(a)點文件屬性結(jié)構(gòu);(b)線文件屬性結(jié)構(gòu);(c)區(qū)文件屬性結(jié)

圖5 在MapGis中航跡編輯界面圖Fig.5 The edit interface of flight track on MapGis

2.2.2 實測數(shù)據(jù)成圖

本次測量中,航磁測量采樣率為10 Hz,航放測量為1 Hz[9]。為了提高運算效率,優(yōu)先選用數(shù)據(jù)量較小的能譜數(shù)據(jù),利用線號、基點號、坐標位置(x,y)、離地高度等數(shù)據(jù)列,繪制具有屬性結(jié)構(gòu)的測點(子圖)、注釋點、航跡(線)(圖3、圖5)。依據(jù)離地高度等級,將測點和注釋點賦予不同的顏色,直觀顯示數(shù)據(jù)質(zhì)量。測點及注釋點的繪制代碼如下:

private void writingCedian(PntArea PntAreaCedian, PntArea PntAreaCDnote, DotInfo5 myDot2, Pnt_Info PntInfoNor, Pnt_Info PntInfoNote) //測點、注釋點子函數(shù)

{

double fontSize = Convert.ToDouble(textBox11.Text);

Record att3 = new Record();//屬性定義并實例化

D_Dot pntXY3cd = new D_Dot();

pntXY3cd.x = myDot2.x; //測點X坐標

pntXY3cd.y = myDot2.y; //測點Y坐標

D_Dot pntXY3cdAlt = new D_Dot();

pntXY3cdAlt.x = myDot2.x+1; //注釋點X坐標

pntXY3cdAlt.y = myDot2.y - fontSize*0.75; //注釋點X坐標

PntAreaCedian.Append(pntXY3cd, "a", PntInfoNor);

int DotCounts = PntAreaCedian.count - 1;

PntAreaCedian.att.Get(DotCounts, out att3); //取點屬性

att3.Value[1] = myDot2.fn;//基點號賦值

att3.Value[2] = myDot2.lineNo;//測線號賦值

att3.Value[3] = myDot2.ralt;//雷達高度號賦值

PntAreaCedian.att.Write(LineCounts, att3);//寫入屬性值

//寫入測點

PntAreaCDnote.Append(pntXY3cd,myDot2.fn,PntInfoNote);

//寫入注釋點,高度值,偏航距為零,測線識別后,再寫入

PntAreaCDnote.Append(pntXY3cdAlt,myDot2.ralt.ToString() + "-" + myDot2.dis, PntInfoNoteNor);

}

程序中myDot2、PntInfoNor和PntInfoNote分別為測點、注釋點的參數(shù)值,以不同的點參數(shù)值標示飛行質(zhì)量等級。

2.2.3 測線識別

首先,利用航跡分離框?qū)⒈炯艽魏桔E線分離為獨立的航跡線段(圖5)。代碼如下:

double m_Radiu = 0.0001;//模糊半徑

MAPGISBASCOM1Lib.IAnalysis pClip = new MAPGISBASCOM1Lib.Analysis();

//myFrame-分離框rawLinArea-原始線文件desLinArea-結(jié)果線文件

pClip.ClipLin(myFrame, rawLinArea, desLinArea, m_Radiu, Enum_Clip_Type.gisOVLY_INCLIP);

然后,遍歷各航跡線段,利用測線識別范圍(區(qū)文件),逐一賦予“測線編號”屬性。傳遞屬性關(guān)鍵代碼如下:

for (int intK = 1; intK < myLinArea.count; intK++)

{ //遍歷所有實測測線

//獲取實測測線上的點集合

int i = myLinArea.Get(intK, out dataSet, out inf, out dima);

…….(在測線尋找3個合適的點坐標,代碼較長,略)

myLinArea.att.Get(intK, out att2); //獲取實測測線屬性

for (int intN = 1; intN < myRegArea.count; intN++)

{ //遍歷所有設(shè)計測線范圍

//計算實測測點與設(shè)計測線范圍的最大距離

double minDis1 = myRegArea.MaxDistOfPntToReg(dot1,intN); double minDis2 =myRegArea.MaxDistOfPntToReg(dot2,intN);

if (minDis1 == 0 && minDis2 == 0)

{ //最大距離為0時,表明測線在設(shè)計測線范圍內(nèi)

//獲取設(shè)計測線范圍的屬性,即線號

myRegArea.RegAtt.Get(intN, out myRecord);

string LineNo = myRecord.Value[3]; //賦值

att2.Value[2] = LineNo; // 傳遞給線屬性(線號)

myLinArea.att.Write(intK, att2); // 錄入線屬性

break;

}

}

}

最后,根據(jù)設(shè)計測線位置,計算每個航跡點的偏航距并繪制更新偏航距的標示(圖5)。

2.2.4 編輯航跡

借助MapGis軟件平臺,使用不同的顏色、符號標示出每個測點數(shù)據(jù)質(zhì)量等級,將實測數(shù)據(jù)以圖形展現(xiàn),可以很清晰了解本架次的數(shù)據(jù)質(zhì)量。參照以往架次的航跡線和測點標識,利用MapGis圖形編輯功能,逐一修剪本架次航跡線,確定需保留數(shù)據(jù)范圍。

2.2.5 數(shù)據(jù)篩選與輸出

數(shù)據(jù)編輯基于MapGis中確定的航跡線端點,從源數(shù)據(jù)文件中提取質(zhì)量合格的數(shù)據(jù)。

讀取每條航跡線的端點坐標和航跡點(點文件)屬性結(jié)構(gòu),從航跡點中獲取“測線編號”和“基點號”。以“基點號”為依據(jù),比對、篩選航磁、航放源數(shù)據(jù),更換“測線編號”,獲得最終數(shù)據(jù)。從航跡線中提取信息的代碼如下:

for (int intL = 1; intL < myLinArea3.count; intL++)

{

//獲取圖元位置

myLinArea3.Get(intL, out lineSet, out linA, out dim);

myLinArea3.att.Get(intL, out attLine); //獲取圖元屬性

for (int intI = 0; intI < lineSet.count; intI++)

{ //遍歷線圖元節(jié)點

tempXY.x = Convert.ToDouble (lineSet[intI].x.ToString ("0.00"));//提取X坐標

tempXY.y = Convert.ToDouble (lineSet[intI].y.ToString ("0.00"));//提取Y坐標

tempXY.lineNo =attLine.Value[2]; //提取線號

lineLinInfo.Add(tempXY); //寫入泛型集合

}

}

從航跡點中提取信息的代碼如下:

for (int intK = 1; intK < myPntArea3.count; intK++)

{ //遍歷點圖元

myPntArea3.att.Get(intK, out myAtt);//獲取圖元屬性

myPntArea3.GetPos(intK, out myXY); //獲取圖元位置

//提取X坐標

myDot1.x = Convert.ToDouble(myXY.x.ToString("0.00"));

//提取Y坐標

myDot1.y = Convert.ToDouble(myXY.y.ToString("0.00"));

myDot1.lineNo =myAtt.Value[2]; //提取線號

myDot1.Fn =myAtt.Value[1]; //提取基點號

//提取離地高度值

myDot1.ralt = Convert.ToDouble(myAtt.Value[3]);

myDot2.Add(myDot1); //寫入泛型集合

}

圖6為數(shù)據(jù)篩選后的結(jié)果數(shù)據(jù)。從圖6中可以看出,數(shù)據(jù)格式未變,測線編號已將原來的“005”變?yōu)榱藢嶋H測線號,并刪除了不符合質(zhì)量要求的數(shù)據(jù)。

另外,該程序還進行了本架次的數(shù)據(jù)質(zhì)量、工作量等信息計算、統(tǒng)計。

將本架次的航跡線更換不同顏色,以飛行日期和架次命名保存此次航跡線,供下一架次的數(shù)據(jù)裁截做參照對比。

2.3 有人值守航測數(shù)據(jù)的處理

該程序同樣適用于有人值守航測數(shù)據(jù)篩選。在正常情況下,由于每個架次的測線編號已事先錄入,可直接手工編輯航跡線,再根據(jù)線號、基點號比對,篩選實測數(shù)據(jù)。如若在儀器發(fā)生故障、操作員記錄錯誤等情況下,容易圈定錯誤范圍,利用航跡線屬性修改、圖形編輯篩選數(shù)據(jù),可明顯提高工作效率。

3 結(jié)語

MapGis軟件是國內(nèi)地質(zhì)行業(yè)使用范圍最廣的軟件之一,基于其屬性結(jié)構(gòu)進行二次開發(fā),具有開發(fā)效率高,操作簡單快捷等優(yōu)點。利用程序提供的圖形界面,交互式地編輯圖形,獲取合格的實測數(shù)據(jù),不僅提高了數(shù)據(jù)裁切的針對性,而且可以熟知飛行數(shù)據(jù)質(zhì)量和工作進度。同時,在數(shù)據(jù)截取后,對飛行數(shù)據(jù)質(zhì)量進行統(tǒng)計,避免了重復(fù)工作,提高了工效。此程序已應(yīng)用于新疆喀什地區(qū)無人機試驗項目(2015年)、黑龍江省完達山—太平嶺地區(qū)航測項目(2016年)和黑龍江省龍江—嫩江地區(qū)航測項目(2016年)中,經(jīng)不斷完善,實用效果較好。

猜你喜歡
測線航跡測點
高密度電法在水庫選址斷層破碎帶勘探中的應(yīng)用
地震勘探野外工作方法
基于CATIA的汽車測點批量開發(fā)的研究與應(yīng)用
大疆精靈4RTK參數(shù)設(shè)置對航測繪效率影響的分析
平面應(yīng)變條件下含孔洞土樣受內(nèi)壓作用的變形破壞過程
夢的航跡
某廢鋼渣車間落錘沖擊振動特性研究
自適應(yīng)引導長度的無人機航跡跟蹤方法
視覺導航下基于H2/H∞的航跡跟蹤
基于航跡差和航向差的航跡自動控制算法
广宁县| 和硕县| 罗源县| 宣恩县| 赣州市| 综艺| 蕉岭县| 山阴县| 卢湾区| 莎车县| 浏阳市| 三原县| 呼图壁县| 昆山市| 蓬安县| 九龙县| 遂宁市| 东方市| 城步| 健康| 台东县| 哈巴河县| 夏河县| 密山市| 普陀区| 厦门市| 玉龙| 邹城市| 萨迦县| 福鼎市| 安阳县| 卓尼县| 绥阳县| 台州市| 永善县| 恭城| 锡林浩特市| 财经| 军事| 屏东市| 久治县|