我如何改变arcpy中的符号学以获得清晰的轮廓点



我不确定为什么我的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]}` 

您需要在代码示例的末尾设置l.symbology = sym,以便更新渲染。


我使用的是ArcGIS Pro 3.1.2,第一个例子是使用SimpleRenderer

import arcpy
project = arcpy.mp.ArcGISProject("current")
map = project.listMaps("Buildings")[0]  # map 'Buildings'
layer = map.listLayers("Buildings")[0]  # layer 'Buildings'
symbology = layer.symbology
symbology.updateRenderer("SimpleRenderer")
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

以下是使用GraduatedColorsRenderer:的示例

import arcpy
project = arcpy.mp.ArcGISProject("current")
map = project.listMaps("Buildings")[0]  # map 'Buildings'
layer = map.listLayers("Buildings")[0]  # layer 'Buildings'
symbology = layer.symbology
symbology.updateRenderer("GraduatedColorsRenderer")
renderer = symbology.renderer
renderer.classificationField = "Shape_Area"
renderer.breakCount = 6
renderer.classificationMethod = "Quantile"
renderer.colorRamp = project.listColorRamps("Green-Blue (Continuous)")[0]
for class_break in renderer.classBreaks:
class_break.symbol.size = 2
class_break.symbol.outlineColor = {"RGB" : [0, 0, 0, 100]}

layer.symbology = symbology  # "re-set" property symbology

我不确定你是否把它放错了,但你有一个"'"在brk.symbol.outlineColor行的末尾。不确定它是否在代码中,但如果只有一个引号,则可能会出现不匹配的引号语法错误。

最新更新