ImageSharingDraft

摘要

ImageSharingDraft 类用于为 web 影像图层影像服务创建服务定义草稿文件 (.sddraft)。

说明

要创建 ImageSharingDraft 对象,使用 CreateSharingDraft 函数。

  • 要共享 Web 影像图层,将 server_type 参数设置为 FEDERATED_SERVER,并将 service_type 参数设置为 WEB_IMAGERY_LAYER
  • 要共享影像服务,将 server_type 参数设置为 STANDALONE_SERVER,将 service_type 参数设置为 IMAGE_SERVICE

然后,可通过设置服务级别或图层级别属性配置 ImageSharingDraft 对象。 使用 targetServer 属性指定要发布影像服务和 Web 影像图层的服务器。

还可以通过修改 .sddraft 文件设置影像服务和 Web 图层属性。 如果属性值未指定,则将使用默认值。 您必须设置属性值,即使您要覆盖的影像服务或 Web 影像图层具有现有已配置属性。

注:

如果未设置元数据属性(creditsdescriptionsummarytagsuseLimitations)或其具有空字符串,则 Web 图层项目将从数据中获取元数据,具体取决于共享的内容。

配置 ImageSharingDraft 对象后,可以使用 exportToSDDraft 方法将其保存到服务定义草稿文件 (.sddraft)。 随后即可使用过渡服务上传服务定义工具将其过渡和共享给 ArcGIS EnterpriseArcGIS Server

下方代码示例可用于以下用途:

属性

属性说明数据类型
allowAnalysis
(可读写)

指定“栅格分析”工具箱中的地理处理服务工具是否可以访问 Web 影像图层或影像服务。

Boolean
allowCopy
(可读写)

指定下载栅格地理处理服务工具是否可以访问 Web 影像图层或影像服务。

Boolean
allowCompressions
(可读写)

指定允许用于 Web 影像图层或影像服务的压缩方法。

  • JPEG
  • LERC
  • LZ77

String
allowedFields
(可读写)

要传输到客户端的字段。 以逗号分隔字符串或字符串列表的形式提供字段。

String
allowedItemMetadata
(可读写)

指定要传输到客户端的元数据项目:

  • Basic - 栅格的元数据将传输到客户端。
  • Full - 栅格的元数据以及应用于栅格的栅格函数将传输到客户端。
  • None - 不会将元数据传输到客户端。

String
allowedMensurationCapabilities
(可读写)

指定通过源的测量功能获得并作为数据集属性的一部分列出的方法。 这些方法用于确定可用于 Web 影像图层或影像服务的测量工具。

  • None
  • Basic
  • Base-Top Height
  • Top-Top Shadow Height
  • Base-Top Shadow Height
  • 3D

String
allowedMosaicMethods
(可读写)

指定允许用于 Web 影像图层或影像服务的镶嵌方法。

  • NorthWest
  • Center
  • LockRaster
  • ByAttribute
  • Nadir
  • Viewpoint
  • Seamline
  • None

此属性仅适用于镶嵌数据集。

String
allowedTemplates
(可读写)

服务器端栅格函数名称。 以逗号分隔字符串或字符串列表的形式提供字段。

String
allowFunction
(可读写)

指定客户端是否可以访问和控制服务器端渲染和处理。

Boolean
cache.cacheOnDemand
(可读写)

指定未缓存的切片是否将按需(即当客户端应用程序请求时)创建。 默认值为 False

Boolean
cache.configuration
(可读写)

生成地图服务器缓存切片方案工具生成的预定义切片方案 .xml 文件的路径和文件名。

String
cache.exportTiles
(可读写)

指定是否允许客户端下载切片以供离线使用。 默认值为 False

Boolean
cache.exportTilesCount
(可读写)

单个请求中可下载的最大切片数量。 仅在 cache.exportTiles 属性设置为 True 时支持此属性。 默认值为 100000。

Integer
cache.useExistingCache
(可读写)

指定是否从现有缓存中提取数据。 仅在 enableCache 属性设置为 True 时支持此属性。 默认值为 False

Boolean
cacheControlMaxAge
(可读写)

允许浏览器使用缓存响应的时间。

Integer
colormapToRGB
(可读写)

指定是否通过将色彩映射表应用于影像将栅格数据集中的色彩映射表发布为 RGB 影像。 这会影响像素值,因为像素值将从单个值和关联色彩映射表更改为三波段像素值。 要保留色彩映射表并根据其色彩映射表查询像素,指定 False

此属性仅适用于具有色彩映射表的栅格数据集,也适用于将栅格数据集图层或镶嵌数据集于 Colormap 函数搭配使用的情况。

Boolean
copyDataToServer
(可读写)

指定是否将数据复制到服务器。 值为 True 时,将复制所有数据,包括注册到服务器中的数据。 值为 False 时,仅会复制未在服务器中注册的数据。 服务将引用已在服务器中注册的数据。 默认值为 False

Boolean
credits
(可读写)

Web 影像图层或影像服务的配额。

String
defaultCompressionQuality
(可读写)

默认压缩质量。 提供介于 0 到 100 之间的值。 值 80 通常能在保证影像质量的同时提供大约八倍的压缩。

Integer
defaultCompressionTolerance
(可读写)

适用于每个像素的最大误差值,并非图像的平均值。 该值以镶嵌数据集的单位指定。 例如,如果误差为 10 厘米并且镶嵌数据集的单位为米,则使用值 0.1。

Double
defaultResamplingMethod
(可读写)

指定要在请求中使用的重采样方法。

  • NEAREST
  • BILINEAR
  • CUBIC
  • MAJORITY

String
defaultTemplate
(可读写)

默认服务器端栅格函数模板 (RFT) 名称。

String
DEM
(可读写)

要在测量时使用的高程源。 这样可以在 3D 模式下进行测量。

String
description
(可读写)

Web 影像图层或影像服务的描述。 默认值为 None

String
downloadDirectory
(可读写)

下载目录。 此属性用于将影像所在的物理目录映射到将在其中映射影像 URL 的虚拟目录。

如果允许下载,则服务必须使用指向镶嵌数据集的源栅格的目录。 当影像服务将文件从镶嵌数据集源目录复制到服务器输出目录时,这将避免可能出现的性能瓶颈问题。 将此属性与 virtualDownloadDirectory 属性配合使用。

String
enableCache
(可读写)

指定图层是否动态绘制或从缓存绘制。 默认值为 False

Boolean
hasLiveData
(可读写)

指定服务是否将反映数据更改。

在将新栅格添加到 Web 影像图层或影像服务的镶嵌数据集后,源分辨率、空间范围、多维信息和时间范围等影像服务信息可能会过时。 可重新启动服务以反映数据更改。 如果您不允许服务出现任何中断,将此参数设置为 True 以在不重新启动服务的情况下反映数据更改。

或者,运行刷新服务命令刷新影像服务以反映后端数据更改。

Boolean
maxDownloadImageCount
(可读写)

用户一次可以下载的最大栅格数。

此属性仅适用于镶嵌数据集。

Integer
maxDownloadSizeLimit
(可读写)

一次可下载的兆字节 (MB) 总数。

此属性仅适用于镶嵌数据集。

Integer
maxImageHeight
(可读写)

可在客户端请求中使用的最大行数。

Integer
maxImageWidth
(可读写)

可在客户端请求中使用的最大列数。

Integer
maxMosaicImageCount
(可读写)

每次请求的最大可镶嵌栅格数。 这样可以防止服务器需要为单个请求打开大量栅格并对其进行处理。

Integer
maxRecordCount
(可读写)

将在查询期间返回的最大记录数。 默认值为 2000。

Integer
maxSampleCount
(可读写)

最大样本计数。 该操作可为给定几何生成源数据的采样点位置、像素值和相应的空间分辨率。 默认情况下,最大采样位置数为 1,000。

Integer
maxScale
(可读写)

缓存可用的最大比例的分母。 对于未缓存的服务,使用值 0。

Double
minScale
(可读写)

缓存可用的最小比例的分母。 对于未缓存的服务,使用值 0。

Double
offline
(可读写)

指定是否保存离线服务定义。

  • False - 如果使用类的 exportToSDDraft 方法创建连接的服务定义草稿文件 (.sddraft),则使用。 如果 serverType property 设置为 FEDERATED_SERVER,登录门户。 如果 serverType 属性设置为 STANDALONE_SERVER,则向类的 targetServer 属性提供服务器 URL 或服务器连接文件 (.ags)。 这是默认设置。
  • True - 如果使用类的 exportToSDDraft 方法创建离线的服务定义草稿文件 (.sddraft),则使用。 如果 serverType 属性设置为 FEDERATED_SERVER,则无需登录门户,或者如果 serverType 属性设置为 STANDALONE_SERVER,则无需提供服务器连接文件或 URL。

Boolean
overwriteExistingService
(可读写)

指定是否覆盖具有相同名称的现有服务。

Boolean
pooling.maxInstances
(可读写)

每台计算机的最大实例数 仅在 pooling.type 属性设置为 DEDICATED 时支持此属性。

Integer
pooling.minInstances
(可读写)

每台计算机的最小实例数: 仅在 pooling.type 属性设置为 DEDICATED 时支持此属性。

Integer
pooling.type
(可读写)

指定要使用的池化实例的类型。

  • SHARED
  • DEDICATED - 这是默认设置。

String
portalFolder
(可读写)

门户中要发布的文件夹的名称。 默认文件夹是“我的内容”中的根文件夹。 仅当 serverType 属性设置为 FEDERATED_SERVER 时才支持此属性。

String
referenceImage
(可读写)

要用于对源栅格数据集进行地理配准的参考栅格数据集、镶嵌数据集或栅格图层。

String
returnJPGPNGAsJPG
(可读写)

指定是否要返回 JPG 图像。 当使用 JPGPNG 格式请求影像时,如果存在透明度,则返回 PNG 图像;否则返回 JPG 图像。 PNG 图像通常比 JPG 图像大很多,传输花费的时间可能更长。 如果不需要透明度并且您想要确保始终使用较小的图像大小来传输 Web 影像图层或影像服务,指定 True

Boolean
serverFolder
(可读写)

服务将发布到的服务器文件夹的名称。 默认文件夹是服务器的根文件夹。 文件夹如果不存在将进行创建。

String
serverType
(可读写)

指定创建共享草稿和设置支持共享时所使用的服务器类型。

  • FEDERATED_SERVER - ArcGIS Enterprise 门户联合服务器支持共享。
  • STANDALONE_SERVER - 支持共享独立 ArcGIS Server 站点。 这是默认设置。
String
serviceName
(只读)

影像服务或 web 影像图层的名称。 用户可以看到该名称并使用该名称来识别服务。 名称只能包含字母数字字符和下划线。 对于 Web 影像图层,可以使用空格。 对于影像服务,不允许使用空格或特殊字符。 名称不能超过 120 个字符。

String
sharing.groups
(可读写)

以逗号分隔的组名称。 仅当 serverType 属性设置为 FEDERATED_SERVER 时,此属性才可用。

String
sharing.sharingLevel
(可读写)

指定 Web 图层的共享级别。 仅当 serverType 属性设置为 FEDERATED_SERVER 时,此属性才可用。

  • OWNER - 只有所有者以及有权查看其他成员所拥有内容的组织成员才能访问项目。
  • ORGANIZATION - 组织中所有经过身份验证的用户均可以访问项目。
  • EVERYONE - 所有人都可以查看和访问项目。

String
sortField
(可读写)

allowedMosaicMethods 属性设置为 ByAttribute 时,默认镶嵌规则的排序字段。

String
sortValue
(可读写)

allowedMosaicMethod 属性设置为 ByAttribute 时,默认镶嵌规则的排序基础值。 类型取决于属性类型。

String
summary
(可读写)

服务汇总。 在提供值后,该属性将替代数据集汇总,或当汇总不存在时,提供汇总。 提供的汇总不会应用于原始数据集。 默认值为 None

String
tags
(可读写)

服务标签。 在提供值后,此属性将替代数据集上的标签,或在标签不存在时,提供标签。 提供的标签不会应用于原始数据集。 默认值为 None

String
targetServer
(可读写)

要发布服务的服务器。 当 offline 属性设置为 False 时(这是默认设置),必须设置该属性。

serverType 属性设置为 FEDERATED_SERVER 时,提供 ArcGIS Enterprise 门户联合服务器的服务器 URL。

serverType 属性设置为 STANDALONE_SERVER 时,则支持以下内容:

  • ArcGIS Server 连接 - 您可以使用在 ArcGIS Pro 工程窗口中服务器节点下列出的 ArcGIS Server 连接,也可以浏览至存储服务器连接文件 (.ags) 的文件夹。
  • ArcGIS Server 的 URL - 可以指定 ArcGIS Server 的 URL,前提是已将 ArcGIS Server 的管理员连接添加到 ArcGIS Pro 工程,且您正在脚本中打开工程或在 ArcGIS Pro 中运行该工具。 要连接到服务器,还可以在当前 Python 会话中登录门户。

String
useLimitations
(可读写)

Web 图层的使用限制。

String
virtualDownloadDirectory
(可读写)

虚拟下载目录。 此属性用于将影像所在的物理目录映射到将在其中映射影像 URL 的虚拟目录。

如果允许下载,则服务必须使用指向镶嵌数据集的源栅格的目录。 当影像服务将文件从镶嵌数据集源目录复制到服务器输出目录时,这将避免可能出现的性能瓶颈问题。 将此属性与 downloadDirectory 属性配合使用。

String

方法概述

方法说明
exportToSDDraft (out_sddraft)

ImageSharingDraft 转换为服务定义草稿文件 (.sddraft)。

方法

exportToSDDraft (out_sddraft)
参数说明数据类型
out_sddraft

The path and file name for the output service definition draft file (.sddraft).

String

代码示例

ImageSharingDraft 示例 1:将 Web 影像图层发布到 ArcGIS Enterprise 门户联合服务器中的门户文件夹。

以下脚本将创建 Web 图像图层服务定义草稿文件 (.sddraft),并设置元数据属性。 建议在发布之前注册数据位置。 如果未注册数据位置,则数据将复制到 ArcGIS Server。 随后,Web 影像图层将发布到 ArcGIS Enterprise 中的文件夹并与所有人(公众)共享。 可使用 SignInToPortal 函数获取门户信息。

import arcpy
import os

# Sign in to portal
arcpy.SignInToPortal(portal_url="https://organization.example.com/webadaptorname", username="MyUserName", password="MyPassword")

# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Raster1.tif"

# Create ImageSharingDraft and set metadata, portal folder, and server folder properties
federated_server_url = "https://gisserver.example.com/webadaptor"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="FEDERATED_SERVER", service_type="WEB_IMAGERY_LAYER",
                                           service_name=service_name, draft_value=datapath)
sddraft.targetServer = federated_server_url
sddraft.credits = "These are credits"
sddraft.description = "This is description"
sddraft.summary = "This is summary"
sddraft.tags = "tag1, tag2"
sddraft.useLimitations = "These are use limitations"
sddraft.portalFolder = "my folder name"
sddraft.serverFolder = "MyServerFolder"
sddraft.sharing.sharingLevel = "EVERYONE"
sddraft.sharing.groups = ""  # Group names = "group1,group2"

# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)

# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, federated_server_url)

print("Finish Publishing")
ImageSharingDraft 示例 2:将影像服务发布到独立 ArcGIS Server 站点的服务器文件夹

以下脚本将为影像服务创建服务定义草稿文件 (.sddraft),并设置元数据属性。 影像服务将发布到独立 ArcGIS Server 站点中的文件夹。

import arcpy
import os

# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Raster2.crf"

# Create ImageSharingDraft and set metadata and server folder properties
target_server_connection = r"C:\Project\gisserver.ags.esri.com (publisher).ags"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="STANDALONE_SERVER", service_type="IMAGE_SERVICE",
                                           service_name=service_name, draft_value=datapath)
sddraft.targetServer = target_server_connection
sddraft.credits = "These are credits"
sddraft.description = "This is description"
sddraft.summary = "This is summary"
sddraft.tags = "tag1, tag2"
sddraft.useLimitations = "These are use limitations"
sddraft.serverFolder = "MyServerFolder"

# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)

# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)

# Publish to server
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, target_server_connection)

print("Finish Publishing")
ImageSharingDraft 示例 3:覆盖 Web 影像图层

以下脚本将覆盖 Web 影像图层。 如果 Web 影像图层名称已存在,则将覆盖图层;否则,将创建新图层。 如果希望 Web 图层具有特定的属性,则必须设置属性值,即使要覆盖的 Web 图层已配置了属性。 否则,现有属性将被默认设置覆盖。

import arcpy
import os

# Sign in to portal
arcpy.SignInToPortal(portal_url="https://organization.example.com/webadaptorname", username="MyUserName", password="MyPassword")

# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Sample.gdb\Mosaic1"

# Create ImageSharingDraft and set overwrite property
federated_server_url = "https://gisserver.example.com/webadaptor"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="FEDERATED_SERVER", service_type="WEB_IMAGERY_LAYER",
                                           service_name=service_name, draft_value=datapath)
sddraft.targetServer = federated_server_url
sddraft.overwriteExistingService = True

# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)

# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, federated_server_url)

print("Finish Publishing")
ImageSharingDraft 示例 4:覆盖影像服务

以下脚本将覆盖影像服务。 如果服务名称已存在,将覆盖该服务;否则,将创建新服务。 如果希望影像服务具有特定属性,则必须设置属性值,即使要覆盖的影像服务已配置属性。 否则,现有属性将被默认设置覆盖。

import arcpy
import os

# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Sample.gdb\Mosaic2"

# Create ImageSharingDraft and set metadata, and server folder properties
target_server_connection = r"C:\Project\gisserver.ags.esri.com (publisher).ags"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="STANDALONE_SERVER", service_type="IMAGE_SERVICE",
                                           service_name=service_name, draft_value=datapath)
sddraft.targetServer = target_server_connection
sddraft.overwriteExistingService = True

# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)

# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, target_server_connection)

print("Finish Publishing")

相关主题