ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

CreateImageSDDraft

  • 摘要
  • 语法
  • 代码示例

摘要

CreateImageSDDraft 函数是使用 ArcPy 自动发布镶嵌数据集或栅格数据集作为“影像服务”的第一步。基于 CreateImageSDDraft 创建的输出是服务定义草稿 (.sddraft) 文件,该文件由栅格数据集或地理数据库中的镶嵌数据集、服务器信息以及一组服务属性组合而成。该服务定义草稿可作为服务定义过渡,然后作为影像服务上传至指定的 ArcGIS 服务器。

警告:

服务定义草稿 (.sddraft) 文件必须转换为服务定义 (.sd) 文件,然后才能用于发布到 ArcGIS Server。这些函数此时未包含在 ArcGIS Pro 中。需要 ArcGIS Desktop 进行过渡和发布。

服务器信息包括服务器连接或已发布的服务器类型,正在发布的服务的类型,服务的元数据(项目信息)和数据参考(是否向服务器复制数据)。

注:

草稿服务定义不包含数据。草稿服务不能单独用于发布服务。

语法

CreateImageSDDraft (raster_or_mosaic_layer, out_sddraft, service_name, {server_type}, {connection_file_path}, {copy_data_to_server}, {folder_name}, {summary}, {tags})
参数说明数据类型
raster_or_mosaic_layer

想要发布的栅格图层或镶嵌图层。

String
out_sddraft

用于表示输出服务定义草稿 (.sddraft) 文件的路径和文件名的字符串。

String
service_name

用于表示服务名称的字符串。该名称用于向用户显示并识别服务。名称只能包含字母数字字符和下划线。不允许使用空格或特殊字符。名称长度不能超过 120 个字符。

String
server_type

表示服务器类型的字符串。如果未提供 connection_file_path 参数,则必须提供 server_type。如果提供了 connection_file_path 参数,则可从连接文件获取 server_type。在这种情况下,您可以选择 FROM_CONNECTION_FILE 或完全跳过该参数。

  • ARCGIS_SERVER —ArcGIS Server 服务器类型。
  • FROM_CONNECTION_FILE —获取 connection_file_path 参数中所指定的 server_type。

(默认值为 ARCGIS_SERVER)

String
connection_file_path

用于表示 ArcGIS Server 连接文件 (.ags) 的路径和文件名的字符串。

(默认值为 None)

String
copy_data_to_server

指示由镶嵌数据集引用的源数据、镶嵌数据集本身或发布为影像服务的栅格数据集是否将被复制到服务器的布尔值。

copy_data_to_server 参数仅在 server_type 为 ARCGIS_SERVER 且 connection_file_path 未指定的情况下使用。如果 connection_file_path 已指定,则会使用服务器的已注册数据存储。例如,对于包含由镶嵌数据集引用的源数据的工作空间,如果镶嵌数据集本身或栅格数据集已注册到服务器,则 copy_data_to_server 将始终为 False。相反,对于包含由镶嵌数据集引用的源数据的工作空间,如果镶嵌数据集或栅格数据集未注册到服务器,则 copy_data_to_server 将始终为 True。

  • False —数据将不会被复制到服务器。这是默认设置。
  • True —数据将被复制到服务器。

(默认值为 False)

Boolean
folder_name

用于表示您要向其中发布服务定义的文件夹名称的字符串。如果该文件夹当前不存在,则将创建该文件夹。默认的文件夹为服务器根级别。

(默认值为 None)

String
summary

用于表示项目描述摘要的字符串。

使用此参数可以覆盖用户界面摘要,如果摘要不存在,则将提供摘要。

(默认值为 None)

String
tags

用于表示项目描述标签的字符串。

使用此参数可以覆盖用户界面标签,如果标签不存在,则将提供标签。

(默认值为 None)

String

代码示例

CreateImageSDDraft 示例 1

创建影像服务定义草稿文件。

import arcpy
ws = "C:/workspace"
mdpath = os.path.join(ws, "fgdb.gdb/mdDEM")      
con = os.path.join(ws, "myserver_6080 (publisher).ags")
service = 'dem_service'
sddraft = os.path.join(ws, service + '.sddraft')
arcpy.CreateImageSDDraft(mdpath, sddraft, service, 'ARCGIS_SERVER', 
                         con, True, None, "Publish las MD", 
                         "las,image service")
CreateImageSDDraft 示例 2

通过镶嵌数据集发布影像服务。

# It is recommended that you set the default mosaic dataset properly before
# publishing. A connection to ArcGIS Server must be established in the
# Catalog window of ArcMap before running this script
import arcpy
import os
import sys
# Define local variables:
# The folder for service definition draft and service definition files
MyWorkspace = r"\\myserver\ArcPyPublishing"
Name = "OrthoImageService"
InputData = r"\\myserver\ArcPyPublishing\fgdb.gdb\ortho_images"
Sddraft = os.path.join(MyWorkspace, Name + ".sddraft")
Sd = os.path.join(MyWorkspace, Name + ".sd")
con = os.path.join(MyWorkspace, "arcgis on myserver_6080 (admin).ags")
# Create service definition draft
try:
    print("Creating SD draft")
    arcpy.CreateImageSDDraft(InputData, Sddraft, Name, 'ARCGIS_SERVER', con, 
                             False, None, "Ortho Images",
                             "ortho images,image service")
except Exception as err:
    print(err[0] + "\n\n")
    sys.exit("Failed to create SD draft")
# Analyze the service definition draft
analysis = arcpy.mapping.AnalyzeForSD(Sddraft)
print("The following was returned during analysis of the image service:")
for key in list(analysis.keys()):
    print("---{}---".format(key.upper()))
    for ((message, code), layerlist) in analysis[key].items():
        print("    {} (CODE {})".format(message, code))
        print("       applies to: {}".format(
            " ".join([layer.name for layer in layerlist])))
# Stage and upload the service if the sddraft analysis did not contain errors
if analysis['errors'] == {}:
    try:
        print("Adding data path to data store to avoid copying data to server")
        arcpy.AddDataStoreItem(con, "FOLDER", "Images", MyWorkspace,
                               MyWorkspace)
        print "Staging service to create service definition"
        arcpy.StageService_server(Sddraft, Sd)
        print "Uploading the service definition and publishing image service"
        arcpy.UploadServiceDefinition_server(Sd, con)
        print "Service successfully published"
    except arcpy.ExecuteError:
        print(arcpy.GetMessages() + "\n\n")
        sys.exit("Failed to stage and upload service")
    except Exception as err:
        print(err[0] + "\n\n")
        sys.exit("Failed to stage and upload service")
else:
    print("Service was not published because of errors found during analysis.")
    print(analysis['errors'])

相关主题

  • AnalyzeForSD
  • CreateGPSDDraft
  • CreateMapSDDraft

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明