标注 | 说明 | 数据类型 |
输入 SAS 数据集 (libref.tablename) | 输入 SAS 数据集。 以表单 libref.tablename 形式提供数据集,其中 libref 是 SAS 库的名称,tablename 是 SAS 数据集的名称。 | String |
输出表 | 输出表。 | Table |
从 SAS 云分析服务 (CAS) 下载 SAS 数据集 (可选) | 指定从 CAS 下载输入 SAS 数据集,还是从本地 SAS 库访问此数据集。
| Boolean |
CAS 主机名 URL (可选) | CAS 主机的 URL。 | String |
端口 (可选) | CAS 连接的端口。 | Long |
CAS 用户名 (可选) | CAS 连接的用户名。 | String |
密码 (可选) | CAS 连接的密码。 运行工具后,此密码被隐藏并且不可访问。 | String Hidden |
自定义会话配置文件 (可选) | 文件指定 SAS 会话的自定义配置。 仅自定义本地或远程 SAS 部署需要该文件。 | File |
CAS 授权 (Authinfo) 文件 (可选) | 该文件包含用于连接到 CAS 的身份验证信息。 该文件必须包含连接的用户名和编码密码。 如果提供了文件,则无需再指定 CAS 用户名和密码参数。 | File |
摘要
将 SAS 数据集转换为表。
使用情况
此工具支持与本地计算机上安装的 SAS 桌面版的连接或与 SAS Cloud Analytic Services (CAS) 的连接。 如果您正在使用 CAS,则记录的顺序可能会在转换过程中发生变化。
必须使用自定义会话配置文件参数进行 SAS 的远程部署,例如 Workspace Server、UNIX 和 Mainframe。 如果 SAS 与 ArcGIS AllSource 安装在同一台计算机上,则不需要配置文件。
以表单 libref.tablename 形式提供 SAS 数据集,其中 libref 是 SAS 或 CAS 库的名称,tablename 是 SAS 数据集的名称。 例如,SASUSER.MYTABLE 引用了 SASUSER 库中名为 MYTABLE 的 SAS 数据集。
SAS 库、数据集名称和列名称不区分大小写。 例如,SASUSER.MYTABLE 的处理方式与 sasuser.mytable 和 SASUser.MyTable 相同。
可以转换的记录数取决于计算机的可用内存。
在输出表中将不会保留SAS 数据集的列格式。
对于本地 SAS 部署,默认情况下可以使用 SASUSER、SASHELP、MAPS、MAPSSAS 和 MAPSGFK 库。 要使用自定义库,必须在 SAS Autoexec 文件中定义 libref。
连接到 CAS 时,可以通过两种方式验证凭据:
- 使用 CAS 用户名和密码参数提供用户名和密码。 密码将被隐藏,无法通过地理处理历史访问。
使用包含用户名和编码密码的 CAS 授权 (Authinfo) 文件参数提供授权 (Authinfo) 文件。 选中此选项,可避免每次运行工具时重新键入密码。
要在每次使用该工具时自动使用 Authinfo 文件,请将该文件命名为 _authinfo(包括下划线)并将其保存在 Windows 主目录中(通常为 C:\Users\<username>)。 该文件可以具有任何文件扩展名,例如 _authinfo.txt 或 _authinfo.netrc。 如果文件存在于主目录中,则 CAS 授权 (Authinfo) 文件参数将自动使用此文件填充。 这样,可以无需每次使用该工具时都浏览至同一 Authinfo 文件。
Authinfo 文件可以包含多个主机和端口的连接信息,对于单个用户连接到单个主机和端口这一最简单的情况,Authinfo 文件只有一行,语法如下:
default user MYUSERNAME password {SAS004}1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
您可以使用 PROC PWENCODE SAS 过程对文件的密码进行编码。
WORK 库是一个临时工作空间,其在 SAS 会话开始时创建,并在会话关闭时删除所有文件。 此工具将在执行期间启动和关闭新的 SAS 会话,因此不应在此工具中使用 WORK 库。
参数
arcpy.conversion.SASToTable(in_sas_dataset, out_table, {use_cas_connection}, {hostname}, {port}, {username}, {password}, {custom_cfg_file}, {authinfo_file})
名称 | 说明 | 数据类型 |
in_sas_dataset | 输入 SAS 数据集。 以表单 libref.tablename 形式提供数据集,其中 libref 是 SAS 库的名称,tablename 是 SAS 数据集的名称。 | String |
out_table | 输出表。 | Table |
use_cas_connection (可选) | 指定从 CAS 下载输入 SAS 数据集,还是从本地 SAS 库访问此数据集。
| Boolean |
hostname (可选) | CAS 主机的 URL。 | String |
port (可选) | CAS 连接的端口。 | Long |
username (可选) | CAS 连接的用户名。 | String |
password (可选) | CAS 连接的密码。 运行工具后,此密码被隐藏并且不可访问。 | String Hidden |
custom_cfg_file (可选) | 文件指定 SAS 会话的自定义配置。 仅自定义本地或远程 SAS 部署需要该文件。 | File |
authinfo_file (可选) | 该文件包含用于连接到 CAS 的身份验证信息。 该文件必须包含连接的用户名和编码密码。 如果提供了文件,则无需再指定 username 和 password 参数。 | File |
代码示例
以下 Python 窗口脚本演示了如何在本地 SAS 安装中使用 SASToTable 函数。
import arcpy
arcpy.conversion.SASToTable("sashelp.cars", "CarsTable", "LOCAL_SAS")
以下独立 Python 脚本演示了如何通过与 CAS 的连接使用 SASToTable 函数。
# Import system modules
import arcpy
import getpass
# Provide tool parameters
in_SASDS = "casuser.MySASData"
out_table = "MyEsriData"
connection = "USE_CAS"
hosturl = https://XXX.vdp.sas.com/XXX-XXXXX-default-http/
port = 100
username = "CAS_user"
# Provide password securely
password = getpass.getpass()
try:
# Set the workspace and run the tool.
arcpy.env.workspace = r"C:\\SASToTable\\MyData.gdb"
arcpy.conversion.SASToTable(in_SASDS, out_table, connection, hosturl,
port, username, password)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())