我不确定为什么我的 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]}`
我不确定你是否错误地把它放在那里,但你的
brk.symbol.outlineColor
行末尾有一个“'”。不确定它是否在您的代码中,但如果存在该单引号,您可能会收到不匹配的引号语法错误。
您需要在代码示例末尾设置
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