1 votos

Añadir una clase de característica al mapa actual de ArcGIS Pro con ArcPy

Escribí un código simple que creó múltiples polígonos utilizando la herramienta Buffer. Voy a utilizarlo en una caja de herramientas y por lo tanto quiero que el outFeatureClass se añade automáticamente al mapa actual.

El siguiente código no funciona. "outcome" es la outFeatureClass que quiero añadir.

pw = r"C:\Users\Main\GIS\Data\ArcGISProject\ArcGISProject.gdb\outcome"
aprx = arcpy.mp.ArcGISProject("CURRENT")
aprxMap = aprx.listMaps("Map")[0]
aprxMap.addLayer(pw)

Al ejecutar el código en la línea de comandos de ArcGIS Pro Python recibo un error:

 "ValueError: r"C:\Users\Main\GIS\Data\ArcGISProject\ArcGISProject.gdb\outcome"

En env.workspace para el archivo Python se establece en r"C:\Users\Main\GIS\Data\ArcGISProject\ArcGISProject.gdb" .

2voto

John Kramlich Puntos 286

Si lee el archivo de ayuda de addLayer() para un mapa toma un "objeto Layer o LayerFile". Ha pasado pw que es una cadena que resulta representar una ruta a una Feature Class, por lo que no es un Objeto de capa . ArcPro quiere que acceda a un conjunto de datos a través de un archivo de capa, pero como usted está accediendo directamente a la FeatureClass asumo un archivo lyrx no existe.

Se crea un objeto Capa utilizando la herramienta MakeFeatureLayer.

Esto es lo que puede hacer en ArcPro 2.6:

with arcpy.EnvManager(addOutputsToMap=True):
  pw = r"C:\Users\Main\GIS\Data\ArcGISProject\ArcGISProject.gdb\outcome"
  arcpy.MakeFeatureLayer_management(pw,"Outcome")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X