本發(fā)明涉及到遙感應(yīng)用的切圖技術(shù)方法領(lǐng)域,特別是涉及一種基于金字塔模型的遙感影像切圖方法。
背景技術(shù):
在遙感應(yīng)用領(lǐng)域中,WMS(即Web地圖服務(wù)WebMapService)是非常重要的一部分。WMS遵循OGC的WMS1.1.1規(guī)范,該服務(wù)利用具有地理空間位置信息的數(shù)據(jù)制作地圖。其中將地圖定義為地理數(shù)據(jù)可視的表現(xiàn)。但是,遙感數(shù)據(jù)的數(shù)據(jù)量是非常巨大,又與對(duì)遙感影像的高分辨率、高質(zhì)量的需求,形成了一定的矛盾。金字塔模型為解決這個(gè)矛盾打開了一種思路。金字塔模型中,遙感影像被壓縮成若干個(gè)等級(jí),離地球越遠(yuǎn),等級(jí)就越小,壓縮比例就越大,相應(yīng)的影像的分辨也就越小。一般來說,在某一等級(jí)下的遙感影像的分辨率為下一級(jí)的遙感影像分辨的4倍。同時(shí),對(duì)于某一等級(jí)下的遙感影像也會(huì)從經(jīng)度方向與緯度方向上被平均切割為若干份(與等級(jí)、遙感影像的分辨率有關(guān))。相應(yīng)地,等級(jí)越高,遙感影像被切割后的塊數(shù)就越多。這樣,等級(jí)、分辨率、切割塊數(shù)之間的關(guān)系模型就如一個(gè)金字塔一般,等級(jí)越高,分辨率越高,切割塊數(shù)越多。在現(xiàn)實(shí)的遙感影像的拍攝過程中,可能會(huì)由于拍攝時(shí)的衛(wèi)星姿態(tài)、衛(wèi)星運(yùn)行軌道等綜合因素的影響,影像的有效數(shù)據(jù)部分并不完全平行于經(jīng)緯線,常常有效數(shù)據(jù)部分內(nèi)切于影像的邊界。在遙感像的生產(chǎn)過程中,常常會(huì)在非有效的區(qū)域中填充上黑色同,形成四個(gè)暗角。然而, 對(duì)于需要發(fā)布成WMS的遙感影像而言,黑的的暗角是沒有意義的,需要將其裁去。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種基于金字塔模型的遙感影像切圖方法。為實(shí)現(xiàn)上述目的,本發(fā)明采取下述技術(shù)方案來實(shí)現(xiàn):一種基于金字塔模型的遙感影像切圖方法,其特征在于,包括以下步驟:a.構(gòu)筑金字塔模型,遙感影像被壓縮成若干個(gè)等級(jí),離地球越遠(yuǎn),等級(jí)越小,壓縮比例越大,相應(yīng)的影像的分辨率也越小,再將整個(gè)地球從經(jīng)度上平均地分成x塊,從緯度上平均地分成y塊,其中每一塊之間的經(jīng)度差為360/x,緯度差為180/y,假設(shè)在第0層的經(jīng)度差與緯度差為36,則等級(jí)level與經(jīng)緯度差之間的關(guān)系如下公式:dDegree=36/2level;即leveldDegree0361182934.542.2551.12560.5625b.裁去暗角,根據(jù)遙感影像四個(gè)頂點(diǎn)的經(jīng)緯度坐標(biāo)與影像的分辨率計(jì)算出影像中四個(gè)頂點(diǎn)在影像中的位置,從而得到影像中的四個(gè)暗角,進(jìn)而將其裁去,即將影像中這四個(gè)暗角的alpha值調(diào)整為0;c.規(guī)整影像,根據(jù)圖像所在等級(jí)level與該圖像四周邊界的經(jīng)緯度,計(jì)算得到該圖像上下左右所需補(bǔ)充的透明像素點(diǎn);d.切圖,將影像從經(jīng)度方向與緯度方向進(jìn)行切分,每一塊文件的分辨率為512*512,根據(jù)每塊文件左下角的經(jīng)緯度計(jì)算得到該文件的文件名,并輸出至文件系統(tǒng);e.生產(chǎn)切圖配置文件,根據(jù)之前的配置參數(shù),按照切圖配置文件模板發(fā)布切圖配置文件。通過切圖配置與切圖結(jié)果,即可在WMS中發(fā)布該影像。進(jìn)一步,在步驟b時(shí),查看當(dāng)前層是否大于等于最低級(jí)(minlevel)且小于等于最高級(jí)(maxlevel),如果否,則跳過裁去暗角和規(guī)整步驟,直接生成切圖配置文件。本發(fā)明具有如下技術(shù)效果:通過前述技術(shù)方法,裁去可能覆蓋背景圖像的暗角,便于用戶查看遙感影像,然后通過規(guī)整影像,避免了不規(guī)整切圖所帶來的諸多問題,從而給提供了高效、可靠的遙感影像切圖方法;進(jìn)一步的,本發(fā)明中金字塔低層的圖像由高層的圖像得到,在操作前判斷l(xiāng)evel+1層的圖像是否存在,從而省去了截暗角和規(guī)整的操作,使本發(fā)明具有高效的特點(diǎn)。附圖說明圖1是本發(fā)明實(shí)施例中遙感影像切圖方法的流程圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)闡述。圖1是本發(fā)明實(shí)施例中遙感影像切圖方法的流程圖。如圖1所示,該切圖方法具體包括以下步驟:首先用戶輸入條件,獲取遙感圖像,然后進(jìn)行如下具體操作:1.裁去暗角輸入:一副圖像srcImg,圖像的分辨率srcWidth*srcHeight。輸出:一副裁去暗角的圖像descImg,圖像的分辨率srcWidth*srcHeight。過程:1.1.計(jì)算邊際經(jīng)緯度在遙感影像中我們只知道遙感影像數(shù)據(jù)的左上角經(jīng)緯度(dataLeftUpLng,dataLeftUpLat)、右上角經(jīng)緯度(dataRightUpLng,dataRightUpLat)、左下角經(jīng)緯度(dataLeftDownLng,dataLeftDownLat)、右下角經(jīng)緯度(dataRightDownLng,dataRightDownLat)。通過這四個(gè)角,我們可以得到圖像左下經(jīng)緯度(minLng,minLat)與右上角經(jīng)緯度(maxLng,maxLat)。1.2.計(jì)算圖像的像素與經(jīng)緯度差之商pixelPerDegree=srcWidth/(maxLngminLng)對(duì)于一般的遙感影像,影像沒有變形,pixelPerDegree也等于srcHeight/(maxLatminLat)1.3.計(jì)算四角在圖像中的位置如果在這四個(gè)角中,角k的經(jīng)緯度為(lng,lat),且lng=minLng, 則角k為這四個(gè)角中最左邊的角,設(shè)其經(jīng)緯度為(minLng,leftLat)。同理,我們可以得到最上邊的角經(jīng)緯度(upLng,maxLat)、最右邊的角經(jīng)緯度(maxLng,rightLat)、最下面的角經(jīng)緯度(downLng,minLat)。而對(duì)于最左邊的角,其圖像中的位置為(0,left),其中,left=leftLatminLatpixelPerDegree同理,得到最上邊的角的位置為(up,0),最右邊的角的位置為(srcWidth,right),最下邊的角的位置為(down,srcHeight)。其中,up=upLngminLngpixelPerDegreeright=rightLatminLatpixelPerDegreedown=downLngminLngpixelPerDegree1.4.構(gòu)建mask,并裁剪從步驟1.3,得到數(shù)據(jù)的四個(gè)角暗角[(0,0),(0,left),(up,0)]、[(srcWidth,0),(up,0),(srcWidth,right)]、[(0,srcHeight),(0,left),(down,srcHeight)]、[(srcWidth,srcHeight),(srcWidth,right),(down,srcHeight)]。先構(gòu)建一個(gè)新的圖像,圖像中以上四個(gè)角的位置填充上黑色,其它區(qū)域?yàn)榘咨?。利用該mask,裁剪原圖,將原圖中黑色部分裁去,變成透明。裁剪成功之后,將mask文件刪除。2.規(guī)整輸入:一副圖像srcImg,等級(jí)level,圖像的分辨srcWidth*srcHeight,圖像的左下角的經(jīng)緯度(srcMinLng,srcMinLat),右上角的經(jīng)緯度 (srcMaxLng,srcMaxLat)。輸出:規(guī)整后的圖像descImg,分辨率descWidth*descHeight,圖像的左下角的經(jīng)緯度(descMinLng,descMinLat),右上角的經(jīng)緯度(descMaxLng,descMaxLat)。過程:2.1.計(jì)算dDegree=36/2level2.2.計(jì)算像素與經(jīng)緯度之商pixelPerDegree=width/(srcMaxLngsrcMinLng)2.3.規(guī)整左下角經(jīng)度2.4.向左補(bǔ)齊因?yàn)橐?guī)整后的descMinLng可能會(huì)比srcMinLng小,所以需要向補(bǔ)齊。即在srcImg的左邊補(bǔ)上leftFill個(gè)像素。leftFill=srcMinLngdescMinLngpixelPerDegree得到descImg。2.5.規(guī)整左下角緯度用同樣的方法,我們繼續(xù)向右、向上、向下進(jìn)行規(guī)整。3.切圖輸入:一幅圖像srcImg,等級(jí)level,圖像的分辨srcWidth*srcHeight,圖 像的左下角的經(jīng)緯度(srcMinLng,srcMinLat),經(jīng)緯度差dDgeree,輸出目錄descDir。輸出:在descDir下輸出切圖。過程:3.1.計(jì)算divX與divYdivX=srcWidth/512divY=srcHeight/5123.2.切圖3.3.計(jì)算切下的圖像的左下角的經(jīng)緯度輸入x,divYy1左下角的經(jīng)度為lng=minLngxdDegree;左下角的緯度為lat=minLatdivYy1dDegree;3.4.保存切下的圖像如果某一塊切圖文件左下角的經(jīng)緯度為lng,lat,這塊的文件名以以下的規(guī)則進(jìn)行命名:{AA}/{AA}_{BB}.{ext}其中,AA=lat90/dDegeree;BB=lng180/dDegeree;ext為文件的格式(后綴)將文件輸出到目錄{descDir}/{level}/{AA}/下。如果目錄{descDir}/{level}/{AA}/不存在,則創(chuàng)建該目錄。將之前記錄下的像素點(diǎn)信息,寫入到{descDir}/{level}/{AA}/{AA}_{BB}.ext文件,生成這一片切圖。3.5.重復(fù)以上步驟,直到把所有的等級(jí)的切圖全部完成。4.完成輸入:各等級(jí)下被規(guī)整后的圖像descImgs=descImg1,descImg2,…,descImgN輸出:刪除descImgs,生成配置文件過程:4.1.刪除各等級(jí)下被規(guī)整后的圖像descImgs4.2.生成配置文件本發(fā)明具體實(shí)施例中,切圖配置文件模板如下: