天天看點

ArcGIS影像資料庫

空間資料庫技術

空間資料庫技術用關系資料庫管理系統(RDBMS)來管理空間資料,主要解決存儲在關系資料庫中的空間資料與應用程式之間的資料接口問題,即空間資料庫引擎( Spatial Database Engine)。更确切地說,空間資料庫技術是解決空間資料對象中幾何屬性在關系資料庫中的存取問題,其主要任務是:

1)用關系資料庫存儲管理空間資料;

2)從資料庫中讀取空間資料,并轉換為GIS應用程式能夠接收和使用的格式;

3)将GIS應用程式中的空間資料導入資料庫,交給關系資料庫管理。是以空間資料庫技術是空間資料進出關系資料庫的通道。

建庫目的

建立影像資料庫的目的是将分幅分層生産的海量影像資料進行整理,使之符合統一的規範和标準;并對資料進行有效組織、管理,便于空間資料的查詢、分發及其它應用。建庫之後的資料是标準化、規範化的,采用統一的編碼和統一的格式;資料是有效組織的,在平面方向,分幅的資料要組織成邏輯上無縫的一個整體,在垂直方向,各種資料通過一緻的空間坐标定位能夠互相疊加和套合;具有高效的空間資料查詢、排程、漫遊以及資料分發等功能,并且能夠與其它系統無縫內建,為其它應用服務。從應用的角度講,建立影像庫的總體目标是能夠管理多比例尺、多分辨率、多資料源的正射影像資料,能夠作到在區域網路或廣域網上由全貌到細節、由整體到局部、由低分辨率到高分辨率快速、無縫的進行影像漫遊、浏覽和應用,支援圖像資料集中式和分布式(區域網路範圍内分布式的存貯)的存貯與管理,為海量資料的應用提供一個高效的無縫平台。

建庫原理

簡而言之就是“兩種方式,分層分塊”。“兩種方式”是指:栅格資料集(RasterDatset)和栅格目錄(Raster Catalog)。它的存儲和管理方式,這就是“分層分塊”。

在Personal Geodatabase中,栅格資料可以作為栅格目錄表(Raster Catalog)或栅格資料集(Raster Dataset)來存儲。栅格資料集表現為連續的單幅資料。而栅格目錄表是多個栅格的集合。每種存儲方式都有各自的優勢和局限性,但也有一些規則是兩種方式都要遵守的。

栅格目錄表和栅格資料集都可以先建立成一個空的容器,然後再向其中加載資料,或者可以動态建立。建立和加載栅格目錄表或栅格資料集可以用ArcToolbox中的資料管理工具。這些工具可以在ArcCatalog的使用者界面中找到。

栅格資料集

簡單的說,“栅格資料集”就是ArcGIS對栅格資料模型的抽象,其英文為RasterDataset,任何一種實體栅格檔案(如Erdas

Imagine檔案、ArcGISAscii

Grid檔案,Tiff檔案等)經過ArcGIS的栅格資料模型抽象在記憶體中都是以RasterDataset形式存在的,RasterDatset一般由至少一個波段的RasterBand組成,如簡單的灰階圖像就是由一個波段的資料組成,普通的彩色合成影像就由三個或者三個以上波段組成,其中多光譜由多個通道(我們又把RasterBand稱為通道)。由于計算機顯示器一般提供三個通道的顯示信道,分别為R(紅)、G(綠)、B(藍),是以即使我們手頭有一個多波段的影像資料,我們也隻能同時顯示其三個波段資料,如對于TM影像的5、4、3波段分别用紅、綠、藍進行顯示。我們也可以這麼了解栅格資料模型,RasterDatset由多個波段組成,我們把波段了解為“層”的概念,那麼這樣每個RasterDatset就是由多個“層”疊加組合而成,每個層又是由具有行列屬性的二維數組組成,為了将内部實作抽象起來,ArcGIS利用RasterBand類包裝了這個二維數組,并且其提供了各種方法操作其内部二維數組。

栅格資料集比較适合帶有标準坐标系的航片或衛片,當以這種方式導入影像檔案的時候,SDE會将它們拼接(mosaic)成一張完整的大地圖,但這種方式對各個圖幅的要求就非常嚴格,要實作拼接必須滿足幾個條件:相鄰圖幅的相鄰邊不能有一丁點重疊錯位;圖幅必須帶坐标系等等。但這種把圖幅全拼起來的管理方式也有問題,就是如果将來要更新其中的某一小塊區域的圖像怎麼辦呢?比如紐約的影像圖,世貿大廈被撞沒了,其實隻需要更新一下曼哈頓那一點地方的資料就可以了,可要是以Raster

Map方式管理全紐約的影像地圖的話那麼就意味着要全部删掉原來的資料,再重新導入一遍全城的航片,幾十個G,不是小數目,如果是1:10000的話估計紐約的影像資料量應該在300個G左右,怎麼也得導幾天才能導完吧。

栅格目錄

“栅格目錄”可以簡單的了解為一種普通表格資料模型,其英文為RasterCatalog,“栅格目錄”中的每條記錄就是由“栅格資料集”和描述該“栅格資料集”的多種中繼資料資訊組成。通過這種定義我們可以看出對于建構一個基礎資料庫,利用“栅格目錄”管理分幅影像資料具有很大的優勢,因為分幅影像資料經常具有很多中繼資料屬性。“栅格目錄”管理也為我們開發基礎資料系統提供了很友善的入口。

栅格目錄說白了就是個相冊。可以把任何東西的照片都存進去,SDE隻管存儲和為它們維護一個目錄,這一點可以從觀察Raster Catalog對應的Oracle Spatial表看出來,感覺就像一個被肢解了的圖檔的集中營。如果用ESRI的桌面工具(比如ArcMap,ArcCatalog)來預覽這個Raster Catalog的時候,你将看到一張經過拼接的美圖!使用這種方式管理航片就沒有前面Raster

Map方式最後說的那種問題,比如世貿大廈沒了,那麼我們就重新在那裡拍一張,再更新原來Raster Catalog中對應的那一個圖幅就可以了,其它的則沒必要去動。

“栅格資料集”與“栅格目錄”

總之,對于“栅格資料集”和“栅格目錄”其實就是ArcGIS對于栅格資料抽象的一種記憶體模型,“栅格資料集”作為Geodatabase核心資料模型在基礎庫中一般存儲地理背景資料,其要求是資料不經常變化(如經常更新背景資料就不适合利用RasterDataset進行存儲);“栅格目錄”一般用于管理具有屬性資訊的影像資料,如分幅資料或者同一地區多期資料,需要注意的是,同一個“栅格目錄”必須具有相同的空間參考。

當建立栅格目錄表時,必須設定XY域(所有輸入栅格的空間範圍的集合),而栅格資料集則不需要。和ArcGIS中所有其它資料集一樣,我們強烈建議,要導入目錄表或資料集的栅格資料一定要預先定義空間參考,地理坐标系統或投影坐标系統。而這種坐标系統不必要一定和目錄表或資料集的坐标系統一緻。

栅格資料集有一個空間參考,在拼接(Mosaic)的過程中,不同坐标系統中的像元會被動态投影到正确的位置上。而在栅格目錄表中,每個栅格都會有自己的空間參考,它們和幾何空間參考以及栅格列的空間參考都不一樣,這些栅格隻是在進行顯示或分析的時候才會被動态投影。

影像金字塔

“分層”是指:影像金字塔(pyramid)索引。其基本思想就是利用采樣自底向上生成金字塔,根據需求直接取其中某一級作為操作對象,以提高整體效率。當然就像這個世界中的其它事物一樣,效率的提高是有代價的,這就是建塔帶來的額外空間開銷,建的級越多,越友善查詢,當然資料備援也越大。

如果為大的栅格影像建立了金字塔的話,這些影像便能快速進行顯示。除了在螢幕上顯示外,金字塔還包含了很多其他資訊。如果沒有金字塔,那麼在顯示時就要通路整理栅格資料集,然後進行大量計算來選擇哪些栅格像元被顯示。金字塔是一種能對栅格影像按逐級降低分辨率的拷貝方式存儲的方法。通過選擇一個與顯示區域相似的分辨率,隻需進行少量的查詢和少量的計算,進而減少顯示時間。

每次用ArcGIS打開一幅影像的時候,都會在狀态欄中看到Creating

pyramids,這時就是在建構影像的金子塔。現在的googlemap,visual

earth,mapbar這些portal應用都采用的是把地圖預先處理成影象金字塔,切塊後做四叉樹編碼。在進行zoom,pan操作的時候動态調用那

些maptile。這種架構省略掉了制圖引擎這些對伺服器性能消耗大的環節。

每一層影像金字塔都有其分辨率的,那麼根據你目前操作,比如說放大(無論是拉框放大、還是固定比例放大)、縮小、漫遊(此操作不涉及到影像分辨率的改變)計算出進行該操作後所需的影像分辨率及在目前視圖範圍内會顯示的地理坐标範圍,然後根據這個分辨率去和已經建好的影像金字塔分辨率比對,哪層影像金字塔的分辨率最接近就用哪層的圖像來顯示,并且根據操作後目前視圖應該顯示的範圍,來求取在該層影像金字塔上,應該對應取哪幾塊,然後取出來畫上去就可以了。

按圖塊(block/tile)存儲

“分塊”是指每個圖幅是按圖塊(block/tile)存儲的,并使用格網索引。在将圖幅存儲于資料庫中時,SDE不是傻乎乎的一行一行的存進去,而是将圖幅劃分成若幹個大小相同的圖塊,每塊大小不能超過16K,一般就取128×128。劃分的順序是從上到下,從左至右的,分塊的好處在于可以減少磁盤I/O。但是哪有那麼好的圖幅,長寬都是128的整數倍?而事實上就幾乎沒有這麼好的圖幅,圖幅的長和寬都除不開128的情況先,SDE的政策就是——補零。在圖幅的右側和下側補上若幹零元(RGB:000000),也就是黑點,這樣處理過的圖幅就可以進行劃分了。

建庫過程

當所有軟硬體都準備齊全後(這裡包括在ArcSDE軟體的安裝過程中已經建立好了SDE資料庫檔案)就可以建立影像資料庫了。在企業級資料庫中,栅格資料的存儲結構包括分塊、索引、建立影像金字塔,并且常常經過壓縮處理。正是因為資料具有分塊、索引以及金字塔結構等屬性,每次對栅格資料進行查詢時,隻有滿足查詢範圍和精度的資料塊才會傳回,而不是每次都傳回整個資料集。壓縮可以降低客戶和伺服器間的資料交換量,使存儲大的無縫栅格資料集以及達到幾個TB的栅格目錄并使他們能夠在用戶端快速顯示成為可能。

(1)資料準備

由于影像資料庫對入庫原始資料的要求比較嚴格,這也是保證影像資料庫完整性的一部分,是以在入庫之前應将原始影像整理放置,同時確定每個原始影像檔案配有唯一一個正确的坐标檔案存放在相同目錄中,統計一下資料量以備後用。

(2)壓縮方式

由于影像資料量巨大,為了減少存貯空間,提高顯示效率,

在栅格資料存入地理資料庫之前對其塊的大小進行壓縮。使用的壓縮方式可以是有損的(JPEG和JPEG2000)或無損的(LZ77)。無損壓縮意味着栅格資料集中像元的值不會被改變。壓縮的量取決于像中繼資料的類型;影像越一緻,壓縮的比例越高。

對資料進行壓縮最主要的好處是可以節省存儲空間。另一個好處是從總體上提供了性能,因為降低了伺服器和客戶應用間交換的資料包。

因為以下原因,可以選擇有損壓縮:

 如果栅格資料隻是用作背景圖像,而且無需對其進行分析。

 資料加載和檢索快捷

 所需的存儲空間小,因為壓縮比例可以達到5:1或10:1(若選擇JPEG2000可以獲得更多的壓縮比例,如10:1或20:1)

因為以下原因,可以選擇無損壓縮

 栅格資料集是用來擷取新的資料或用于視覺分析

 需要的壓縮比例在1:1和1:3之間

 不打算保留原始資料

 輸入的資料已經被有損壓縮過

即使不對栅格資料進行壓縮,企業級地理資料庫的存儲能力也可以滿足要求,但是,還是推薦進行栅格資料壓縮。如果無法确定使用何種壓縮方法,那就用預設的LZ77(無損壓縮)。

(3)資料入庫

ArcSDE管理影像方式主要有連續的栅格資料集和栅格目錄兩種。栅格目錄具有每個栅格都是獨立的,利于更新和資料庫維護;可查詢通路單個資料集,可以根據使用者定義的屬性在表中加入使用者定義字段。是以,采用栅格目錄Raster Catalog這種方式存儲影像資料。

具體步驟如下:

1.成功連接配接資料庫伺服器後(連接配接過程前面有詳細介紹),建立栅格目錄。右鍵“new”——“Raster Catalog”。

2..在栅格目錄中導入資料。右鍵“栅格目錄”——“load”——“load data”,導入栅格資料。

(4)建金字塔

經過較長時間的大量資料入庫後,利用ArcCatalog工具連接配接好資料庫後選中影像資料庫項,點選滑鼠右鍵,選擇“Build Pyramids”項後,系統就開始建立影像金字塔了。建立完金字塔後影像資料庫就基本建立完成了,為了配合影像使用可以再向資料庫中導入矢量資料,這樣才能夠形成具有真正意義的影像資料庫。

建立金字塔時,一個降低分辨率的資料集(.rrd)檔案将被建立。對于一個未經過壓縮的栅格資料集,它産生的(.rrd)檔案的大小近似于源栅格資料集的8%。 使用者不能為栅格目錄建立金字塔,但可以對其中的每個栅格據集建立金字塔。

在 ArcCatalog中建立金字塔(索引)

1.在Catalog樹中右擊栅格資料集。

2.單擊Build Pyramids按鈕。

3.如果還沒有選中,則指向使用者要建立金字塔的栅格資料集。

4.單擊Ok。

為建立金字塔改變預設設定

1單擊Tools菜單,并單擊 Options。

2單擊Raster頁籤。

3單擊描述建立金字塔時的合适選項.