在 Standard 或 Advanced 许可等级下可用。
借助 ST_Raster 数据类型,您可以直接在地理数据库表中存储栅格数据。如果需要使用 SQL 访问地理数据库栅格数据,则使用 ST_Raster 类型。
请遵循以下说明执行下述操作:
- 配置 SQL Server 实例。
- 安装 ST_Raster 并确认数据库中存在该类型。
- 更改地理数据库配置,以便用户创建 ST_Raster 数据。
配置 SQL Server 实例
- 登录到 SQL Server 远程主机。
- 在 SQL Server 服务器中创建保存 ST_Raster 库的文件夹。
确保 SQL Server 具有访问此文件夹的权限。
- 将文件夹的绝对路径添加到系统路径中。
- 从 <ArcGIS client installation directory>\DatabaseSupport\SQLServer 目录中复制 libst_raster_sql.dll 文件,并将其粘贴到您在步骤 3 中创建的 SQL Server 文件夹中。
- 从 <ArcGIS client installation directory>\DatabaseSupport\SQLServer 目录中复制 createAssembly.sql 文件,并将其粘贴到您在步骤 3 中创建的文件夹中。
- 通过 MS-DOS 提示符,浏览至上一步操作中复制 createAssembly.sql 文件的位置,并运行 sqlcmd 执行此文件。
此程序集必须由 sysadmin 用户创建。
以下为执行脚本的语法:
sqlcmd -E -S <SQL Server instance> -d <database name> -v st_raster_path="<full path to folder created in step 3>\libst_raster_sql.dll" -v admindb=<database name> -i createAssembly.sql
例如:
sqlcmd -E -S instance1 -d ssgdb -v st_raster_path="c:\mygdblibraries\libst_raster_sql.dll" -v admindb=ssgdb -i createAssembly.sql
请参阅 Microsoft SQL Server 文档以了解 sqlcmd 实用程序及其用法。
配置 SQL Server 实例后,继续安装 ST_Raster 并更改地理数据库配置。
安装 ST_Raster
要安装 ST_Raster 类型,可以运行 ArcGIS for Desktop(Standard 或 Advanced)中的创建栅格类型工具,也可以运行 ArcGIS for Server 或 ArcGIS for Desktop(Standard 或 Advanced)客户端中的 Python 脚本。
运行创建栅格类型工具。
如果您有权访问 ArcGIS for Desktop(Standard 或 Advanced),则可运行创建栅格类型工具来安装 ST_Raster 类型。
- 启动 ArcCatalog 或 ArcMap。
- 以地理数据库管理员身份连接到地理数据库。
- 打开创建栅格类型工具。
该工具位于“数据管理”工具箱的“地理数据库管理”工具集中。
- 将步骤 2 中创建的数据库连接指定为输入数据库连接。
- 单击确定以运行工具。
使用 Python
您可以运行 Python 脚本来创建能够以地理数据库管理员身份连接到地理数据库的数据库连接 (.sde) 文件,并在地理数据库中安装 ST_Raster 类型。
- 打开命令窗口,导入 ArcPy 模块,然后使用 CreateDatabaseConnection_management 函数创建能够以地理数据库管理员身份连接到地理数据库的数据库连接 (.sde) 文件。如果使用数据库身份验证进行连接,请确保用户名和密码随连接文件一同保存。
在本例中,将在 C:\temp 中创建连接文件 (adminconnect.sde)。此连接是以 sde 用户身份对 teamdata SQL Server 实例上的工程地理数据库建立的。
import arcpy arcpy.CreateDatabaseConnection_management (r'c:/temp',"adminconnect.sde", "SQL_SERVER", "teamdata", "DATABASE_AUTH", "sde", "Cky00r", "SAVE_USERNAME", "projects")
- 安装 ST_Raster 类型。
在此,CreateRasterType_management 函数使用 adminconnect.sde 文件连接到地理数据库并安装 ST_Raster 类型:
arcpy.CreateRasterType_management (r'c:/temp/adminconnect.sde')
确认安装
使用 SQL Server Management Studio,以可访问装有 ST_Raster 的数据库的任意用户身份进行连接,并通过对该数据库执行以下 SELECT 语句来测试 ST_Raster 类型的安装:
SELECT <dbo or sde>.st_raster_util_getVersion();
该查询应该至少返回 1,000 条记录。
确认已安装 ST_Raster 后,更改配置关键字设置。
更改地理数据库配置
在地理数据库中安装 ST_Raster 后,必须更改地理数据库配置,以使 ST_Raster 可供用户在创建栅格数据集和栅格目录时使用。要完成此操作,您可以从 ArcGIS for Desktop(Standard 或 Advanced)进行连接并运行地理处理工具,也可以使用从 ArcGIS for Server 或 ArcGIS for Desktop(Standard 或 Advanced)客户端运行的 Python 脚本。
运行地理处理工具
如果您有权访问 ArcGIS for Desktop,可使用导出地理数据库配置关键字工具将地理数据库的当前配置设置导出到文本文件,并在文本文件中将 RASTER_STORAGE 参数设置为 ST_Raster,然后使用导入地理数据库配置关键字工具导入更改后的文本文件。
- 在 ArcGIS for Desktop 中打开导出地理数据库配置关键字工具。
- 使用为安装 ST_Raster 而创建的数据库连接作为输入数据库连接。
- 指定要创建的文本文件的位置和文件名。
- 在文本编辑器中打开该文本文件,并将 RASTER_STORAGE 设置为 ST_Raster。
- 如果希望所有栅格数据集和栅格目录在用户不指定关键字的情况下均使用 ST_Raster 类型,则应更改 DEFAULTS 关键字下的 RASTER_STORAGE 参数。
- 如果只有一些栅格数据集和栅格目录使用 ST_Raster 类型,则创建自定义关键字并将该关键字的 RASTER_STORAGE 参数设置为 ST_Raster。
- 保存并关闭该文本文件。
- 使用导入地理数据库配置关键字工具将更改后的文本文件导入地理数据库。
使用 Python
使用 ArcPy 函数 ExportGeodatabsaeConfigurationKeyword_management 将当前地理数据库配置设置导出到文本文件,编辑并保存该文本文件,然后使用 ImportGeodatabaseConfigurationKeyword_management 函数将更改导入到地理数据库中。
如果同时运行 ExportGeodatabsaeConfigurationKeyword_management 和 ImportGeodatabaseConfigurationKeyword_management 函数,使用在为 input_database 安装 ST_Raster 时创建的数据库连接文件。
- 导出当前地理数据库配置。
在本例中,gdbconfig 文件被导出到 C:\temp 文件夹。
arcpy.ExportGeodatabaseConfigurationKeyword_management (r'c:/temp/adminconnect.sde', r'c:/temp/gdbconfig.txt')
- 在文本编辑器中打开该文本文件,并将 RASTER_STORAGE 设置为 ST_Raster。
- 如果希望所有栅格数据集和栅格目录在用户不指定关键字的情况下均使用 ST_Raster 类型,则应更改 DEFAULTS 关键字下的 RASTER_STORAGE 参数。
- 如果只有一些栅格数据集和栅格目录使用 ST_Raster 类型,则创建自定义关键字并将该关键字的 RASTER_STORAGE 参数设置为 ST_Raster。
- 保存并关闭该文本文件。
- 导入已编辑的文件。
arcpy.ImportGeodatabaseConfigurationKeyword_management (r'c:/temp/adminconnect.sde', r'c:/temp/gdbconfig.txt')
现在,新的配置设置可在创建数据时使用。