ArcSDE 与 Oracle Spatial 栅格类型

使用 Oracle 的可扩展对象关系型系统可实现 Oracle Spatial 栅格数据类型 SDO_GEORASTER。该类型是在 Oracle 10g 版本中引入的。SDO_GEORASTER 类型可存储栅格信息,包括像素类型、空间参考 ID 及像素值。

SDO_GEORASTER 类型支持所有的 ESRI 像素类型:1 位至 64 位、有符号、无符号及浮点型。ArcSDE 支持使用 Oracle Spatial 的数据类型 SDO_ GEORASTER 作为存储栅格数据的选项。

注意注意:

使用 Oracle 对象关系型的结构化查询语言 (SQL),应用程序可完成对 SDO_GEORASTER 类型内容的插入、更新及提取等正确操作。另外,应用程序也能确保每个栅格的内容都符合 Oracle 文档中定义的规则。

在创建包含 Oracle SDO_GEORASTER 列的表之后,ArcSDE 会填充所需的 Oracle 元数据模式。应用程序(如 ArcSDE)的工作就是执行此任务,因为 Oracle 不会自动执行此任务。如果注册一个包含由第三方产品创建的 Oracle SDO_GEORASTER 列的表,则该产品的职责就是针对 SDO_GEORASTER 列填充合适的 Oracle 元数据模式。

存储栅格为 SDO_GEORASTER

在 DBTUNE 表中定义了 ArcSDE 地理数据库存储的设置;RASTER_STORAGE 参数可控制栅格数据的存储。在 ArcSDE 地理数据库中,要创建一个包含 SDO_GEORASTER 列并能将栅格存储为 SDO_GEORASTER 的表,必须使用一个配置关键字,该关键字须包含在创建栅格数据集或目录时被设置为 SDO_GEORASTER 的 RASTER_STORAGE 参数。

第一次安装 ArcSDE 9.3 组件时,DBTUNE 表中 RASTER_STORAGE 参数的默认设置为 BLOB,而默认的 GEOMETRY_STORAGE 则为 ST_GEOMETRY。以下列出了部分 DEFAULTS 关键字参数:

##DEFAULTS  GEOMETRY_STORAGE    "ST_GEOMETRY" ATTRIBUTE_BINARY    "BLOB" RASTER_STORAGE	    "BLOB"

如要以 SDO_GEORASTER 格式存储大量栅格数据,则需要更改 DEFAULTS 关键字的 RASTER_STORAGE 参数。此外,如果在使用 SDO_GEORASTER 格式存储栅格,则不能运用 ST_GEOMETRY 或 SDO_GEOMETRY 的 GEOMETRY_STORAGE 类型;因此必须将 GEOMETRY_STORAGE 更改为 SDELOB 或 SDEBINARY,并将 DEFAULTS 配置关键字中的 RASTER_STORAGE 设置为 SDO_GEORASTER,以使 SDO_GEORASTER 成为栅格数据的默认存储格式。

注意注意:

建议对新数据不要使用 SDEBINARY 几何存储(该存储类型会将数据存储为 LONG RAW),因为 Oracle 将在 11g 版本中摒弃对 LONG RAW 的支持。

在下列示例中,DEFAULTS 关键字被更改为使用 SDELOB 存储创建矢量数据,使用 SDO_GEORASTER 存储创建栅格数据。

##DEFAULTS  GEOMETRY_STORAGE    "SDELOB" ATTRIBUTE_BINARY    "BLOB" RASTER_STORAGE	    "SDO_GEORASTER"

按照此更改,默认情况下 ArcSDE 会在 SDO_GEORASTER 列中创建栅格目录和栅格数据集。

尽管可能只有一种默认的栅格模式(在 DEFAULTS 配置关键字下对 RASTER_STORAGE 的一种设置),但在创建栅格目录或栅格数据集时,仍可使用现有的 SDO_GEOMETRY 配置关键字为 RASTER_STORAGE 指定 SDO_GEORASTER。如果仅需将少量栅格数据存储为 SDO_GEORASTER 格式,请执行上述操作。

在使用 SDO_GEORASTER 关键字之前,需要编辑 RDT_STORAGE 和 RDT_INDEX_COMPOSITE 参数的表空间信息。默认情况下,表空间信息不包含在 SDO_GEORASTER 关键字中。在 dbtune.sde 文件中,出现的 SDO_GEORASTER 关键字如下:

##SDO_GEORASTER GEOMETRY_STORAGE    "SDELOB" RASTER_STORAGE      "SDO_GEORASTER" ATTRIBUTE_BINARY    "BLOB" RDT_STORAGE         "PCTFREE 0 INITRANS 4" #                    TABLESPACE <RDT Table tablespace name> RDT_INDEX_COMPOSITE "PCTFREE 0 INITRANS 4 #                    TABLESPACE <RDT Composite index tablespace name>                      STORAGE ( INITIAL 409600) NOLOGGING" UI_TEXT             "User Interface text description for SDO_GEORASTER" COMMENT             "Any general comment for SDO_GEORASTER keyword" END 

要针对本关键字修改 DBTUNE 表中的信息,请使用 sdedbtune 管理命令。可在《ArcSDE 管理命令参考》(安装在 SDEHOME 目录下)中查阅有关此命令使用方法的详细信息。

也可以创建新的配置关键字以便将栅格数据集存储为 SDO_GEORASTER 格式,例如:

##GEORASTER RASTER_STORAGE	"SDO_GEORASTER" SDO_COMMIT_INTERVAL	1000 UI_TEXT		"Use to create raster catalogs and datasets with GEORASTER storage"  END

请注意,上述示例没有完全列出与其相关联的存储参数集。这是因为任何未在关键字中指定的参数都可以从 DEFAULTS 关键字中获取。这意味着如果某个参数与在 DEFAULTS 关键字下指定的参数具有相同值,则可以不包含该参数。在上面的示例中,像 BND_STORAGE 与 AUX_STORAGE 之类的参数就不会包含在内;这些参数可从 DEFAULTS 关键字中读取。对于新配置关键字示例 (GEORASTER) 而言,这表示 GEOMETRY_STORAGE 参数也可以从 DEFAULTS 关键字中读取。若在自定义 SDO_GEORASTER 配置关键字中不包含 GEOMETRY_STORAGE 参数,则请确保 DEFAULTS 下的 GEOMETRY_STORAGE 未被设置成 SDO_GEOMETRY 或 ST_GEOMETRY。

有关几何存储关键字的详细信息,请参阅 Oracle 中的 DBTUNE 配置参数。有关 DBTUNE 表或配置关键字的常规信息,请参阅什么是 DBTUNE 表?什么是 DBTUNE 配置关键字和参数?

添加第三方表

可使用 ArcSDE 管理命令 sderaster –o add 来注册一个包含由第三方应用程序创建的 SDO_GEORASTER 列的表。例如:

sderaster –o add –l landforms,raster –u gis –p gis

添加至 ArcSDE 的表必须满足以下条件:

有关在 ArcSDE 地理数据库中使用 SDO_GEORASTER 的已知限制条件

以下是限制条件的列表,在将 ArcSDE 地理数据库中的栅格数据存储为 SDO_GEORASTER 格式时,请时刻注意这些限制条件。


3/7/2012