应用图层的符号设置 (数据管理)

摘要

用于将指定图层或图层文件中的符号系统应用于输入。 此工具可应用于要素、栅格、网络分析、TIN 以及地理统计图层。

使用情况

  • 符号系统图层必须与输入图层的数据类型相匹配;例如,不能将要素图层应用到栅格图层,反之亦然。

  • 符号系统只能应用于几何相同的要素;例如,点符号系统无法应用于面图层。

  • 除符号系统外,该工具还将传输时间字段3D 高程和偏移标注分类HTML 弹出窗口属性。

  • 如果输入为要素类或数据集路径,则此工具将自动创建并返回应用了该工具结果的新图层。

  • 可以在按数据更新符号系统范围参数中维护或更新符号系统范围。 默认符号系统方法是动态的。 例如,将符号系统图层中的五类“自然间断点”分类方法应用于输入图层,并更新范围值以反映输入图层的 Shape_Area 值。 维护范围选项将使用与符号系统图层相同的值。 更新范围选项将使用输入图层 Shape_Area 字段的五类“自然间断点”分类方法。

    应用图层的符号设置工具图示

    以下方法是动态的:

    • 要素的唯一值符号系统
      • 对唯一值进行更新以反映输入图层的值。
      • 如果不想更新唯一值分类,请选择符号系统图层中的 <所有其他值> 默认符号。
    • 要素的分级色彩符号系统
      • 将范围值更新为输入图层的值。
      • 如果不想更新范围输出,则选择手动分类。
    • 栅格的分类值渲染
      • 对范围值进行更新以反映输入图层的值。
      • 如果不想更新范围输出,则选择手动分类。

  • 按数据更新符号系统范围参数设置为维护范围可将符号系统图层值中的标注复制到输入图层值。 如果将此参数设置为更新范围,则将重新计算标注。

  • 符号系统仅在图层持续时间内有效。 要保留图层,可通过保存 AllSource 会话或使用将图层保存至文件工具将图层保存到图层文件。

    要查看在脚本工具中创建的符号系统,该工具必须将图层作为派生的输出参数。 同样,必须将更新的输入图层参数值添加为派生模型参数模型工具,才能查看符号系统更改。

参数

标注说明数据类型
输入图层

将应用符号系统的图层。

Feature Layer; Raster Layer; Layer
符号系统图层

包含将应用于输入图层的符号系统的图层。 支持 .lyrx.lyr 文件。

Layer
符号系统字段
(可选)

与符号系统图层中使用的符号系统字段相匹配的输入图层中的字段。 符号系统字段包含以下三个属性:

  • 字段类型 - 字段类型:符号系统值、归一化或其他类型。
  • 源字段 - 符号系统图层中使用的符号系统字段。 如果不知道源字段并要使用默认值,请使用空白值或 "#"
  • 目标字段 - 应用符号系统时要使用的输入图层中的字段。

支持的字段类型如下:

  • 值字段 - 用于对值进行符号化的主要字段
  • 归一化字段 - 用于对定量值进行归一化的字段
  • 排除子句字段 - 用于符号系统排除子句的字段
  • 图表渲染器饼图大小字段 - 用于设置饼图符号大小的字段
  • 旋转 X 表达式字段 - 用于设置 x 轴上符号旋转的字段
  • 旋转 Y 表达式字段 - 用于设置 y 轴上符号旋转的字段
  • 旋转 Z 表达式字段 - 用于设置 z 轴上符号旋转的字段
  • 透明度表达式字段 - 用于设置符号透明度的字段
  • 透明度归一化字段 - 用于归一化透明度值的字段
  • 大小表达式字段 - 用于设置符号大小或宽度的字段
  • 颜色表达式字段 - 用于设置符号颜色的字段
  • 原始覆盖表达式字段 - 用于设置单个符号图层上各种属性的字段

Value Table
按数据更新符号系统范围
(可选)

指定是否将更新符号系统范围。

  • 默认值除了以下情形之外,将对符号系统范围进行更新:当输入图层为空时;当符号系统图层使用分类间隔(例如,分级色彩或分级符号),并且分类方法为手动间隔或定义间隔时;或者,当符号系统图层使用唯一值,并且选中显示所有其他值选项时。
  • 更新范围符号系统范围将更新。
  • 维护范围符号系统范围将不会更新;这些范围将保留不变。
String

派生输出

标注说明数据类型
更新后的输入图层

已更新的输入图层。

Layer

arcpy.management.ApplySymbologyFromLayer(in_layer, in_symbology_layer, {symbology_fields}, {update_symbology})
名称说明数据类型
in_layer

将应用符号系统的图层。

Feature Layer; Raster Layer; Layer
in_symbology_layer

包含将应用于输入图层的符号系统的图层。 支持 .lyrx.lyr 文件。

Layer
symbology_fields
[[field_type, source_field, target_field],...]
(可选)

与符号系统图层中使用的符号系统字段相匹配的输入图层中的字段。 符号系统字段包含以下三个属性:

  • 字段类型 - 字段类型:符号系统值、归一化或其他类型。
  • 源字段 - 符号系统图层中使用的符号系统字段。 如果不知道源字段并要使用默认值,请使用空白值或 "#"
  • 目标字段 - 应用符号系统时要使用的输入图层中的字段。

支持的字段类型如下:

  • VALUE_FIELD - 用于对值进行符号化的主要字段
  • NORMALIZATION_FIELD - 用于对定量值进行归一化的字段
  • EXCLUSION_CLAUSE_FIELD - 用于符号系统排除子句的字段
  • CHART_RENDERER_PIE_SIZE_FIELD - 用于设置饼图符号大小的字段
  • ROTATION_XEXPRESSION_FIELD - 用于设置 x 轴上符号旋转的字段
  • ROTATION_YEXPRESSION_FIELD - 用于设置 y 轴上符号旋转的字段
  • ROTATION_ZEXPRESSION_FIELD - 用于设置 z 轴上符号旋转的字段
  • TRANSPARENCY_EXPRESSION_FIELD - 用于设置符号透明度的字段
  • TRANSPARENCY_NORMALIZATION_FIELD - 用于归一化透明度值的字段
  • SIZE_EXPRESSION_FIELD - 用于设置符号大小或宽度的字段
  • COLOR_EXPRESSION_FIELD - 用于设置符号颜色的字段
  • PRIMITIVE_OVERRIDE_EXPRESSION_FIELD - 用于设置单个符号图层上各种属性的字段

Value Table
update_symbology
(可选)

指定是否将更新符号系统范围。

  • DEFAULT除了以下情况外,将更新符号系统范围:
    • 当输入图层为空时
    • 当符号系统图层使用分类间隔(例如,分级色彩分级符号),并且分类方法为手动间隔或定义间隔时
    • 当符号系统图层使用唯一值,并且选中显示所有其他值选项时
  • UPDATE符号系统范围将更新。
  • MAINTAIN符号系统范围将不会更新;这些范围将保留不变。
String

派生输出

名称说明数据类型
out_layer

已更新的输入图层。

Layer

代码示例

ApplySymbologyFromLayer 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ApplySymbologyFromLayer 函数。

import arcpy
arcpy.env.workspace = "C:/data.gdb"
arcpy.management.ApplySymbologyFromLayer("sf_points", "sf_points_water.lyrx")
ApplySymbologyFromLayer 示例 2(独立脚本)

如下介绍了如何在独立脚本中使用 ApplySymbologyFromLayer 函数。


# Import system modules
import arcpy

# Set the current workspace
arcpy.env.workspace = "C:/data.gdb"

# Set layer to apply symbology to
inputLayer = "sf_points"

# Set layer that output symbology will be based on
symbologyLayer = "water_symbols_pnt.lyrx"

# Apply the symbology from the symbology layer to the input layer
arcpy.management.ApplySymbologyFromLayer(inputLayer, symbologyLayer)
ApplySymbologyFromLayer 示例 3(独立脚本)

如下介绍了如何在独立脚本中使用 ApplySymbologyFromLayer 函数。


# Import system modules
import arcpy

# Set the current workspace
arcpy.env.workspace = "C:/data.gdb"

# Set layer to apply symbology to
inputLayer = "InlandEmpireBlocks"

# Set layer that output symbology will be based on
symbologyLayer = "USCensusBlocks.lyrx"

# The symbology layer is symbolized by population normalized by area.
# Symbolize the input by Pop2014 field normalized to Square Miles
symbologyFields = [["VALUE_FIELD", "#", "Pop2014"], 
                   ["NORMALIZATION_FIELD", "#", "SQ_MILES"]]

# Apply the symbology from the symbology layer to the input layer
arcpy.management.ApplySymbologyFromLayer(inputLayer, symbologyLayer, 
                                         symbologyFields)
ApplySymbologyFromLayer 示例 3(脚本工具)

在脚本工具中,将符号系统应用于多个派生输出要素图层。 该示例工具具有以下参数:

  • 输入图层
    • 数据类型:要素图层(多值)
    • 类型:必填
    • 方向:输入
  • 符号系统
    • 数据类型:要素图层
    • 类型:必填
    • 方向:输入
  • 派生输出
    • 数据类型:要素图层(多值)
    • 类型:派生
    • 方向:输出

# Import system modules
import os
import arcpy

# Get Parameters
layers = arcpy.GetParameter(0)  # Accepts Feature Layers (multivalue)
sym = arcpy.GetParameter(1)  # Accepts a Feature Layer

# Apply symbology to each input layer, store the result objects in a list
results = []
for layer in layers:

    # Derive the name of the output featureclass
    layername = arcpy.Describe(layer).baseName
    outfeature = os.path.join(arcpy.env.scratchGDB, layername + "_out")

    # Copy feature to get output. This step could be replaced by other
				# steps that produce or manipulate a featureclass.
    arcpy.management.CopyFeatures(layer, outfeature)

				# Apply symbology to the each final output
    res = arcpy.management.ApplySymbologyFromLayer(outfeature, sym)

    # Append multivalue feature
    results.append(res)

# Set the symbology of the derived output parameter using the 
# list of result objects
arcpy.SetParameter(2, results)