梁 菲
(1.中煤航測遙感集團有限公司,陜西 西安 710199; 2.陜西省地理空間信息工程技術(shù)研究中心,陜西 西安 710199)
隨著國民經(jīng)濟發(fā)展對空間數(shù)據(jù)獲取的現(xiàn)勢性要求越來越高,對空間數(shù)據(jù)產(chǎn)品生產(chǎn)的效率也有了較高的要求,內(nèi)業(yè)數(shù)據(jù)處理不斷在向自動化發(fā)展,同時盡量減少外業(yè)的工作量,提高作業(yè)效率,縮短生產(chǎn)周期。相比傳統(tǒng)的框幅式航空攝影測量,ADS(Airborne Digital Sensor)系列三線陣傳感器集成了高精度的POS數(shù)據(jù),僅需要少量的控制點,就可以得到高精度的空三成果,作業(yè)過程可以減少大量的外業(yè)工作量;同時獲取到前視、下視以及后視三個視角的影像條帶,任意兩個視角都可以構(gòu)建立體像對;航線飛行方向可以直接獲取到整條航線的影像,可飛行50~60 km的數(shù)據(jù)量[1]。獨特的優(yōu)勢讓ADS航攝儀為航空攝影測量自動化開辟了嶄新的途徑,成為對地觀測空間數(shù)據(jù)獲取的主要數(shù)據(jù)來源方式。
ADS100在數(shù)據(jù)處理中雖然自動化程度高,外業(yè)工作量少,但其巨大的數(shù)據(jù)量給數(shù)據(jù)處理也帶來了很大的挑戰(zhàn)。在生產(chǎn)中,影像數(shù)據(jù)以航線為單位存儲,每條航線的數(shù)據(jù)量是非常大的,在DEM、DOM、DLG等數(shù)據(jù)測繪產(chǎn)品實際生產(chǎn)時,模型構(gòu)建速度比較慢,在交互過程中出現(xiàn)卡頓現(xiàn)象,影響數(shù)據(jù)生產(chǎn)效率。另外,ADS航攝儀數(shù)據(jù)處理時所需文件多且組織復雜,格式及各個參數(shù)的物理意義不明確,在實際生產(chǎn)應用中,受到數(shù)據(jù)格式的限制,對數(shù)據(jù)重新組織比較困難,無法實現(xiàn)自由處理數(shù)據(jù)。目前現(xiàn)有文獻的研究主要分為兩個方向,一是對數(shù)據(jù)處理理論進行研究[2-4],二是對其生產(chǎn)體系及質(zhì)量進行評價[5-7],還未有針對生產(chǎn)實際中的具體問題進行研究實現(xiàn)的。通過研究ADS100航攝儀空三加密成果中工程參數(shù)的物理意義(見實例),提出并實現(xiàn)了一種基于任意范圍線的ADS100加密工程裁切方法,并已經(jīng)應用到數(shù)據(jù)生產(chǎn)中,極大地提高了構(gòu)建空三模型的速度,模型影像調(diào)度非常流暢,提高了數(shù)據(jù)生產(chǎn)效率。
ADS100加密工程裁切以推掃式影像成像原理為基礎,充分解析.sup、.ads文件中參數(shù)的物理含義,根據(jù)范圍線對影像進行裁切,重新計算工程參數(shù)并更新相應文件。其技術(shù)流程如圖1所示。
圖1 工程裁切完整流程圖
(1)基礎數(shù)據(jù)準備
獲取測區(qū)的空三加密成果、作業(yè)范圍線數(shù)據(jù)、WGS84坐標系與范圍線坐標系兩套坐標系相應的控制點若干。
(2)WGS84與范圍線坐標系統(tǒng)轉(zhuǎn)換
ADS100航攝儀集成了高精度GPS和慣性測量裝置(IMU),其初始坐標系統(tǒng)為WGS84,在空三加密完成后,加密成果還是WGS84坐標系統(tǒng)[8]。而在實際生產(chǎn)中作業(yè)范圍線一般為地方坐標系統(tǒng),因此就需要在兩套空間坐標系統(tǒng)之間進行互相轉(zhuǎn)換。
算法實現(xiàn)時要將ADS數(shù)據(jù)轉(zhuǎn)換為地方坐標系統(tǒng),首先將WGS84大地坐標系轉(zhuǎn)換到WGS84空間直角坐標系;然后根據(jù)七參數(shù)將WGS84空間直角坐標系轉(zhuǎn)換到地方坐標系。不同空間直角坐標系之間的轉(zhuǎn)換七參數(shù)計算需要使用原始坐標系(WGS84)、地方坐標系中相應的控制點坐標。其轉(zhuǎn)換過程為:首先將控制點坐標,分別按照相應的橢球及投影參數(shù),將坐標都轉(zhuǎn)換到地心(參心)直角坐標系中,其坐標記為(X,Y,Z);在地心(參心)直角坐標系中進行兩套控制點之間的轉(zhuǎn)換參數(shù)計算,即為計算轉(zhuǎn)換七參數(shù),再利用七參數(shù)將原始坐標系的數(shù)據(jù)轉(zhuǎn)換到目標坐標系中。
(3)計算影像與范圍線交集
根據(jù)工程文件中的影像信息,計算每一塊影像在地方坐標系中的地面坐標范圍,判斷過程為:基于多邊形之間的空間關(guān)系(包含、相交、外部),判斷多邊形之間是否有交集;若有交集,利用點與多邊形的空間關(guān)系(內(nèi)部、外部),采用基于面元的快速檢測,計算出交集內(nèi)的影像范圍。
(4)重新計算工程參數(shù)
計算要裁切的影像范圍在原始影像中的位置,重新計算工程參數(shù)中的影像大小、坐標偏移量;輸出裁切后的影像;更新ads文件中的影像塊信息。
由于ADS100航攝儀影像數(shù)據(jù)是按照ads文件中的Block存儲的,讀取每個Block的影像數(shù)據(jù),并計算Block影像的四個角的地面坐標,公式中影像列Sample表示為S,影像行Lines表示為L,影像寬度為W。
(1)影像行列號像素坐標計算
計算每個影像塊的四個角在整個條帶中的像素坐標。
左上角:
Si=Si-1+Wi-1
Li=L
(1)
式中,Si、Li為第i個塊的坐標;Si-1為第i-1塊的左下角的像素坐標;Wi-1為上一個塊的影像寬度;L是整個條帶的高度(每個塊的影像高度都是相同的)。
左下角:
Si=Si-1+Wi-1
Li=0
(2)
右上角:
Si=Wi+Si-1+Wi-1
Li=L
(3)
式中,Wi為當前塊的影像寬度。
右下角:
Si=Wi+Si-1+Wi-1
Li=0
(4)
(2)影像物方坐標計算
步驟1:獲取到工程中的基本參數(shù)有錨點坐標B0、L0,旋轉(zhuǎn)參數(shù)r,縮放比例s,坐標偏移量xt0,yt0。錨點坐標是WGS84坐標系下的經(jīng)緯度格式,要將其轉(zhuǎn)換到WGS84空間直角坐標系,用X0,Y0,Z0表示。
步驟2:計算物方空間坐標
根據(jù)每影像塊的四角像素坐標,計算四角的物方坐標Gx,Gy,得到影像的覆蓋范圍[9]:
Gx=((Si+xt0)cos(r)+(Li+yt0)sin(r))/s
Gy=(-(Si+xt0)sin(r)+(Li+yt0)cos(r))/s
(5)
步驟3:計算地面坐標
根據(jù)基本參數(shù)信息、物方空間坐標計算每個影像塊的地面覆蓋范圍
X=X0-Gy×sin(B0)×cos(L0)-sin(L0)×Gx
Y=Y0-Gy×sin(B0)×sin(L0)+cos(L0)×Gx
Z=Z0+Gy×cos(B0)
(6)
此時,該地面坐標為WGS84地心直角坐標系,可以直接利用七參數(shù)將該地面坐標轉(zhuǎn)換到目標坐標系橢球的地心直角坐標系。將該地心直角坐標轉(zhuǎn)換為經(jīng)緯度坐標,然后按照目標坐標系的投影方式,投影為空間直角坐標??梢缘玫睫D(zhuǎn)換到目標坐標系下影像的地面覆蓋范圍。
由于每條航線的ads中會有比較多的影像塊,在計算過程中需要循環(huán)影像塊進行逐塊計算影像范圍。影像塊與范圍線關(guān)系有以下三種:
(1)當前影像塊不包含在范圍線內(nèi):不計算裁切范圍(外部);
(2)當前影像塊完全包含在范圍線內(nèi):整塊影像計算裁切范圍(包含);
(3)當前影像塊部分包含在范圍線內(nèi):計算影像塊與范圍線交集(相交)。
基于點與多邊形的空間關(guān)系,采用基于面元的快速檢測法計算與范圍線相交的影像范圍。在實際生產(chǎn)中范圍線一般是不規(guī)則的多邊形,而影像的存儲是規(guī)則矩形,因此在這里求出的交集是按照影像范圍為矩形計算。由于影像數(shù)據(jù)量比較大,為了提高檢測速度,提出了將原始影像抽稀為面元,以面元為單位計算與范圍線的交集,面元大小可以設置為50~100個像素之間,如圖2所示。其偽代碼如下:
FOR(Inti=0,i<影像行,i+=面元大小){
FOR(Intj=0,j<影像列,j+=面元大小){
計算當前像素的地面坐標,判斷該地面點是否在范圍線內(nèi),利用點是否在任意多邊形范圍內(nèi)進行判斷;
IF(該地面坐標在范圍線內(nèi)){
記錄最小的行列號坐標,記錄最大的行列號坐標}}}
圖2 面元檢測算法
按照計算的每個影像塊的最大最小坐標,計算影像塊的裁切范圍,并重新存儲裁切后的影像。采用將像素融合為面元的方式,極大地提高了像素與多邊形空間關(guān)系檢測效率。
(1)ads文件中存儲的是當前航線所有影像塊的參數(shù)信息,根據(jù)當前航線每個影像塊計算的裁切范圍,要重新計算LINES、SAMPLES、LINES_PER_BLOCK、SAMPLES_PER_BLOCK、BLOCK_DATA。要注意的是,ads文件中默認每個影像塊的行列數(shù)都與參數(shù)相同,但是不包含最后一個影像塊,最后一個影像塊就按照裁切后的實際尺寸生成;另外,第一個影像塊尺寸如果與參數(shù)不一致時,需要將尺寸調(diào)整到與參數(shù)一致。最后按照裁切后的所有影像塊,生成相應的BLOCK_DATA參數(shù),并生成新的ads文件。
(2)在SUP文件中要重新輸出ads、相機、外方位元素的存儲路徑,重新計算坐標偏移量RECT_XOFFSET、RECT_YOFFSET參數(shù),公式中表示為xt0,yt0。首先利用公式(5)計算裁切后第一個影像塊的物方空間坐標,然后利用公式(7)計算出xt0,yt0。
yt0=(sin(r)×s×Gx+cos(r)×s×Gy)/(sin(r)2
+cos(r)2)
xt0=(yt0×cos(r)-s×Gy)/sin(r)
(7)
更新工程文件中的RECT_XOFFSET,RECT_YOFFSET為xt0,yt0。SUP中其他的參數(shù)按照裁切后的相應參數(shù)更新并寫入文件。
ADS100航攝儀空三加密完成后,為每條航線都生成了加密后的SUP工程文件、ads文件以及odf.adj文件。通過研究ADS100成像原理,解析其加密工程文件,獲取到工程中的基本參數(shù)信息,如表1所示。
表1 基本參數(shù)信息及其物理含義
ADS100獲取到的是整條條帶的影像,其數(shù)據(jù)量可達到10 G左右,因此在處理時都會將整條條帶影像分塊存儲,并將其分塊信息存儲到ads文件中。讀取加密工程相對應的ads文件,獲取當前航線影像所包含的分塊信息blockdata(block0、block1、block2、……、blockn)。
試驗選取某測區(qū)ADS100航測數(shù)據(jù),坐標系統(tǒng)為當?shù)氐胤姜毩⒆鴺讼担枰M行WGS84坐標與地方獨立坐標系的坐標轉(zhuǎn)換。試驗測區(qū)提供了349個控制點,且在測區(qū)范圍內(nèi)均勻分布,根據(jù)每個控制點相應的兩套坐標,即可求解出七參數(shù)。選取測區(qū)中一條航線的兩個視角(前視和下視)為試驗數(shù)據(jù),按照兩種范圍線對當前航線的空三加密工程進行裁切。航線數(shù)據(jù)基本情況如表2所示。
表2 數(shù)據(jù)基本情況/km
按照上述原理在VS2010的平臺上實現(xiàn)了ADS100加密工程裁切,并對試驗數(shù)據(jù)進行裁切試驗,試驗選擇一小部分矢量數(shù)據(jù)作為范圍線區(qū)域,將裁切前和裁切后的結(jié)果對比,如表3所示。
表3 數(shù)據(jù)裁切前后對比情況
采用上述方法裁切后的加密工程能夠無縫兼容入市場上主流的ADS100的數(shù)據(jù)處理軟件,將其導入軟件中,裁切前與裁切后的數(shù)據(jù)套合情況結(jié)果如圖3、圖4所示。
圖中,紅色線框為地方獨立坐標系要裁切的范圍線,圖3為前視航線裁切前后與范圍線的套合情況,圖4為下視航線裁切前后與范圍線的套合情況,其(b)圖中,將范圍線外的數(shù)據(jù)裁切之后,采集的矢量數(shù)據(jù)與裁切后影像完全套合。
精度驗證采用模型檢測點、外業(yè)檢測點對裁切后的模型精度進行驗證。模型檢測點是在原始空三模型上人工量測的點位,在測區(qū)范圍內(nèi)選擇了25個均勻分布的檢測點;外業(yè)檢測點在裁切范圍內(nèi)有3個點;人工在裁切后的模型上量測了裁切后的模型點位,并計算了相應檢測點的最大差值、中誤差,如表4所示。
圖3 范圍線與前視影像裁切前后套合圖
圖4 范圍線與下視影像裁切前后套合圖
表4 模型裁切后精度驗證
從計算結(jié)果來看,按照1:1 000的模型精度要求,丘陵地區(qū)平面小于0.35 m,高程小于0.35 m,外業(yè)檢測點與模型檢測點的檢測結(jié)果均滿足要求。
ADS航攝儀獨特的成像方式、不同于常規(guī)面陣相機的數(shù)據(jù)組織與存儲,海量的影像數(shù)據(jù)給后期數(shù)據(jù)處理帶來了很大挑戰(zhàn)[10]。基于ADS100的成像原理,通過研究其數(shù)據(jù)組織及參數(shù)的物理意義,實現(xiàn)了基于任意范圍線對ADS100加密工程進行裁切,從而提高實際生產(chǎn)效率。目前算法僅實現(xiàn)空三工程的裁切功能,但其研究基礎可以擴展到數(shù)據(jù)處理的其它環(huán)節(jié)中,對提高實際生產(chǎn)效率具有現(xiàn)實的指導意義。