http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcSDE >> 正文

ArcSDE栅格数据存储模型及命令行管理举例

作者:邢超 周淮…    文章来源:ESRI中国    点击数:    更新时间:2008-10-23
摘要:ArcSDE 9中,栅格数据的处理和存储模型都进行了一些改进。本文将说明ArcSDE 9.x中栅格数据的存储方法,并简单列举ArcSDE命令行,描述如何使用命令行管理栅格数据。

ArcSDE 9.x中的栅格数据存储模型

ArcSDE使用统一的格式来存储和管理栅格数据。加载到ArcSDE中的栅格文件数据类型多样,这些文件一旦加载进入ArcSDE,便统称为SDE Raster Dataset。如图1

                             

                   图1SDE Raster Dataset

 

ArcSDE中,在空间数据字典表中存储栅格数据的管理信息,空间数据字典表属于SDE空间数据库管理员用户模式。空间字典表中有一个名为RASTER_COLUMNS的表,专门用于存储数据的元数据。如下图2,其中RASTERCOLUMN_ID为每一幅栅格数据分配唯一标识码(在加载时分配)。同时,栅格数据的业务表名称存储在TABLE_NAME列中。数据字典表中还有一个Layers表,用于存储栅格数据的封装边界的几何信息。如图3LAYER_ID存储唯一标识的图层号;同时栅格数据的封装边界在Spatial_column字段中值为FOOTPRINT(矢量数据为SHAPE)!


                     图
2:Raster_Columns

 

        
                            图
3:Layer

 

用户模式中则保存了栅格数据的所有表。ArcSDE 9中,ArcSDE栅格数据由七个表组成,如图4所示:


                    图
4:ArcSDE 9.x栅格数据存储模型

 

这七个表分别是:

l         Business表:称作业务表,业务表对客户端透明,客户端与栅格数据的交互通过业务表即可完成

l         AUX表:称作栅格附录信息表,属于支撑表,用于存储栅格波段的附加信息,如色彩映射和统计值等

l         RAS表:称作栅格表,属于支撑表,记录栅格数据的描述信息。

l         BND表:称作波段表,属于支撑表,记录栅格数据的波段信息。每幅栅格数据的每一个波段占一条记录。

l         BLK表:称作栅格分块表,属于支撑表,每个波段的像元值都以分块的形式存在该表中。加载栅格数据时,ArcSDE利用分块参数将栅格(及金字塔)划分为若干块,每一块都以BLOB类型存储于该表中。

l         F表:称作封装边界要素表,属于支撑表,这个表中存储了栅格数据的封装边界的几何信息。

l         S表:称作封装边界索引表,属于支撑表,这个表中存储了栅格数据的封装边界的几何索引信息。

(注:栅格数据的F表和S表都是ArcSDE 9后才引入的,存储F表和S表,用于加快栅格数据的检索,提高访问效率)

 

其中,业务表的命名是用户可以任意指定的,而支撑表的命名则是用ArcSDE统一的规则自动生成的。支撑表的命名与RASTERCOLUMN_IDLAYER_ID相关。如本例中,用户ACTCWORLD栅格数据通过查看,得到其RASTERCOLUMN_ID27LAYER_ID88。则用户ACTC的模式中与栅格数据WORLD相关的七个表命名为,如图5

                        
                       图
5:用户模式中的七个表

 

业务表:WORLD

附录信息表:SDE_AUX_27

栅格附表:SDE_RAS_27

波段表:SDE_BND_27

分块表:SDE_BLK_27

封装边界要素表:F88

封装边界索引表:S88

      

 

使用sde命令行管理栅格数据

使用命令行获取栅格数据的RASTERCOLUMN_IDLAYER_ID

使用ArcSDE命令行也可以快速地得到栅格数据的RASTERCOLUMN_IDLAYER_ID。如图6和图7

      
                图
6sderaster命令可以查看RasterColumn_ID


                   图
7sdelayer命令可以查看LAYER_ID

 

使用以上命令行,便可以获得ACTC.WORLDRASTERCOLUMN_ID27LAYER_ID88

栅格数据存储大小的计算

栅格数据加载完成后,需要对数据库表进行分析操作。进行分析操作,不仅可以加快数据的检索效率,还可以获得栅格数据的存储大小。

执行数据库的分析操作,可以通过数据库工具分析,也可以通过ArcSDE命令行完成。



   完成分析操作后,可以通过
Oracleuser_tables视图获取WORLD数据的七个表的大小。在sqlplus中,使用actc用户连接,并使用以下语句:

select table_name,blocks,num_rows from user_tables;

       结果如下表所示:

TABLE_NAME

BLOCKS

NUM_ROWS

F88

46

1

S88

46

4

SDE_AUX_27

46

1

SDE_BLK_27

4142

4233

SDE_BND_27

46

1

SDE_RAS_27

46

1

WORLD

46

1

      

       BLOCKS字段中记录了各表存储消耗的Oracle块数目。在栅格数据中,数据量最大的表为存储栅格像元信息的分块表,如上表中的SDE_BLK_27

这样,WORLD数据的存储大小为:8K * (46+46+46+4142+46+46+46) = 35344 K,约为34.5M(注:本例中数据库块大小为8K)。

Tags:ArcGIS  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图