如何更改 arcpy 中的符号系统以获得清晰的轮廓点?

问题描述 投票:0回答:2

我不确定为什么我的 arcpy 结果的点轮廓在 ArcGIS Pro 中没有更改为清晰。除了大纲语法之外,其他一切都有效。我的语法有问题还是这可能是 ArcPro 的错误?

`#Add spatial join layer to the current map
p = arcpy.mp.ArcGISProject('CURRENT')
m = p.listMaps('CompTool')[0]
layer = Stream_Comp.getOutput(0)
m.addDataFromPath(layer)

#Format symbology rendering 
l = m.listLayers(StreamComp_Name)[0]
sym = l.symbology


if sym.renderer.type == 'SimpleRenderer':
    sym.updateRenderer('GraduatedColorsRenderer')
    sym.renderer.classificationField = Comp_Field
    sym.renderer.classificationMethod = 'NaturalBreaks'
    sym.renderer.breakCount = 7


#Updating Symbology Rendering - error:nothing happens to the symbol outline     
for brk in sym.renderer.classBreaks:
    brk.symbol.size = 6
    brk.symbol.outlineColor = {'RGB' : [0, 0, 0, 0]}` 
python arcgis arcpy
2个回答
0
投票

我不确定你是否错误地把它放在那里,但你的

brk.symbol.outlineColor
行末尾有一个“'”。不确定它是否在您的代码中,但如果存在该单引号,您可能会收到不匹配的引号语法错误。


0
投票

您需要在代码示例末尾设置

l.symbology = sym
才能更新渲染。


我正在使用 ArcGIS Pro 3.1.2,并且在以下示例中使用单个符号:

import arcpy

project = arcpy.mp.ArcGISProject("current")
map = project.listMaps("Buildings")[0]  # map 'Buildings'
layer = map.listLayers("Buildings")[0]  # layer 'Buildings'

symbology = layer.symbology
symbol = symbology.renderer.symbol
symbol.color = {"RGB": [220, 220, 220, 100]}
symbol.outlineColor = {"RGB": [255, 0, 0, 50]}
symbol.size = 5
layer.symbology = symbology  # "re-set" property symbology

导致上述示例的关键线索位于以下书籍的第 131 页:

康利,J.(2022)。地理学家计算基础知识指南:ArcGIS Pro 中的 Python。施普林格。

这是使用渐变颜色渲染器的示例:

import arcpy

project = arcpy.mp.ArcGISProject("current")
map = project.listMaps("Buildings")[0]  # map 'Buildings'
layer = map.listLayers("Buildings")[0]  # layer 'Buildings'

symbology = layer.symbology
renderer = symbology.renderer
symbology.renderer.classificationField = "Shape_Area"
symbology.renderer.breakCount = 6
symbology.renderer.classificationMethod = "Quantile"
symbology.renderer.colorRamp = project.listColorRamps("Green-Blue (Continuous)")[0]

for brk in symbology.renderer.classBreaks:
    brk.symbol.size = 2
    brk.symbol.outlineColor = {'RGB' : [0, 0, 0, 100]}
    
layer.symbology = symbology
© www.soinside.com 2019 - 2024. All rights reserved.