摘要:arcsde 9中,柵格資料的處理和儲存模型都進行了一些改進。本文將說明arcsde 9.x中柵格資料的儲存方法,並簡單列舉arcsde命令列,描述如何使用命令列管理柵格資料。
arcsde 9.x中的柵格資料儲存模型
arcsde使用統一的格式來儲存和管理柵格資料。載入到arcsde中的柵格檔案資料型別多樣,這些檔案一旦載入進入arcsde,便統稱為sde raster dataset。如圖1:
arcsde中,在空間資料字典表中儲存柵格資料的管理資訊,空間資料字典表屬於sde空間資料庫管理員使用者模式。空間字典表中有乙個名為raster_columns的表,專門用於儲存資料的元資料。如下圖2,其中rastercolumn_id為每一幅柵格資料分配唯一標識碼(在載入時分配)。同時,柵格資料的業務表名稱儲存在table_name列中。資料字典表中還有乙個layers表,用於儲存柵格資料的封裝邊界的幾何資訊。如圖3,layer_id儲存唯一標識的圖層號;同時柵格資料的封裝邊界在spatial_column欄位中值為footprint(向量資料為shape)!
使用者模式中則儲存了柵格資料的所有表。arcsde 9中,arcsde柵格資料由七個表組成,如圖4所示:
這七個表分別是:
business表:稱作業務表,業務表對客戶端透明,客戶端與柵格資料的互動通過業務表即可完成
aux表:稱作柵格附錄資訊表,屬於支撐表,用於儲存柵格波段的附加資訊,如色彩對映和統計值等
ras表:稱作柵格表,屬於支撐表,記錄柵格資料的描述資訊。
bnd表:稱作波段表,屬於支撐表,記錄柵格資料的波段資訊。每幅柵格資料的每乙個波段佔一條記錄。
blk表:稱作柵格分塊表,屬於支撐表,每個波段的像元值都以分塊的形式存在該表中。載入柵格資料時,arcsde利用分塊引數將柵格(及金字塔)劃分為若干塊,每一塊都以blob型別儲存於該表中。
f表:稱作封裝邊界要素表,屬於支撐表,這個表中儲存了柵格資料的封裝邊界的幾何資訊。
s表:稱作封裝邊界索引表,屬於支撐表,這個表中儲存了柵格資料的封裝邊界的幾何索引資訊。
(注:柵格資料的f表和s表都是arcsde 9後才引入的,儲存f表和s表,用於加快柵格資料的檢索,提高訪問效率)
其中,業務表的命名是使用者可以任意指定的,而支撐表的命名則是用arcsde統一的規則自動生成的。支撐表的命名與rastercolumn_id及layer_id相關。如本例中,使用者actc的world柵格資料通過檢視,得到其rastercolumn_id為27,layer_id為88。則使用者actc的模式中與柵格資料world相關的七個表命名為,如圖5:
使用sde命令列管理柵格資料
使用命令列獲取柵格資料的rastercolumn_id和layer_id
使用arcsde命令列也可以快速地得到柵格資料的rastercolumn_id及layer_id。如圖6和圖7:
使用以上命令列,便可以獲得actc.world的rastercolumn_id為27、layer_id為88。
柵格資料儲存大小的計算
柵格資料載入完成後,需要對資料庫表進行分析操作。進行分析操作,不僅可以加快資料的檢索效率,還可以獲得柵格資料的儲存大小。
執行資料庫的分析操作,可以通過資料庫工具分析,也可以通過arcsde命令列完成。
完成分析操作後,可以通過oracle的user_tables檢視獲取world資料的七個表的大小。在sqlplus中,使用actc使用者連線,並使用以下語句:
select table_name,blocks,num_rows from user_tables;
blocks欄位中記錄了各表儲存消耗的oracle塊數目。在柵格資料中,資料量最大的表為儲存柵格像元資訊的分塊表,如上表中的sde_blk_27。這樣,world資料的儲存大小為:8k * (46+46+46+4142+46+46+46) = 35344 k,約為34.5m(注:本例中資料庫塊大小為8k)。
ArcSDE柵格資料的儲存結構
乙個元資料表 sde raster columns 乙個業務表 business table 提供使用者檢視,具有柵格列 raster column,與向量資料業務表中的空間列對等 四個支撐表 對使用者遮蔽 1 sde blk 分塊表 定義柵格分塊 tile 2 sde bnd 波段表 定義波段 3...
柵格資料屬性
柵格資料屬性 柵格資料的每乙個像元都有自己的像元值,並且這些像元值根據柵格型別的不同,可以代表反射值,或高程值,或分類類別等。柵格資料的像元值可以分成integer,float,或者double,為什麼柵格資料有的只有乙個band,有的確有多個band?柵格統計值是幹什麼用的?我們可以在arccat...
GP處理柵格資料
最近在做二次開發,遇到向量圖層和柵格圖層疊加運算 用多邊形裁切柵格影像的問題 一直沒有解決,花好久時間在這上面,想盡思路尋找向量和柵格疊加運算,來解決問題,可問題依然在,要不就是遍歷柵格影像來獲取結果,運算時間慢不說且耗用記憶體,遇到大點的影像就要分割來算,解決下了要上千行碼。逛論壇看到有人說用ge...