『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

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

ArcSDE栅格数据存储模型及命令行管理举例
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栅格数据存储模型

 

       这七个表分别是:

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

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

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

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

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

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

       .        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;

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

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

      京ICP备2025132830号-1 京公网安备 号