6 votos

¿Cómo añadir una capa con ArcPy y conservar los metadatos de clase de característica (como Créditos) en las propiedades de la capa?

Tengo múltiples clases de características en una geodatabase, cada clase de característica tiene metadatos que incluyen una Descripción, Créditos y otra información. Si utilizo el botón "Añadir datos" en ArcMap 10.1 para añadir una de las clases de características, los metadatos se importan en la descripción de la capa. Es decir, veo las propiedades de la capa y se rellenan la descripción, los créditos, etc. Sin embargo, si utilizo arcpy y añado la clase de característica utilizando MakeFeatureLayer_management y AddLayer entonces esos metadatos no se importan.

¿Alguien sabe si es posible conseguir que la funcionalidad completa de las clases de características y su descripción, créditos, etc para cargar con arcpy? ¿Estoy haciendo algo mal? O, ¿debo exportar los metadatos, leer las secciones que quiero, y añadir ese texto al archivo de capa?

Según lo solicitado, una muestra de código es:

mxd=arcpy.mapping.MapDocument(path_to_blankmxd)
df = arcpy.mapping.ListDataFrames(mxd,"Layers")[0]
arcpy.MakeFeatureLayer_management(featureclass_sde,activation+"_"+featureclass)
addLayer=arcpy.mapping.Layer(activation+"_"+featureclass)
addLayer.name=layername
arcpy.mapping.AddLayer(df,addLayer)

La clase de rasgo que debe insertarse en el MXD es 'featureclass_sde' con metadatos completos. Sin embargo, una vez insertados, todos los metadatos se pierden. Actualmente estoy exportando los metadatos como XML, analizando XML para obtener los elementos de metadatos (descripción, fuente, etc), y luego insertar los elementos en el MXD. Funciona, pero parece tan.... mal....

1voto

UnkwnTech Puntos 21942

Estoy de acuerdo en que esto parece ser un error con AñadirCapa y por eso creo que deberías denunciarlo a tu Soporte de Esri .

Pude reproducirlo fácilmente creando una geodatabase de archivos, creando una clase de característica dentro de ella, y luego usando Descripción de Elemento para Editar sus Metadatos incluyendo Créditos.

Cuando arrastré y solté esta clase de rasgo en el mapa se creó una capa que tenía los Créditos en la pestaña General de sus Propiedades - como era de esperar.

Sin embargo, cuando ejecuté el código siguiente (basado en el suyo) y miré en ArcMap la capa creada por AddLayer, ¡faltaban los créditos esperados!

import arcpy

path_to_blankmxd = r"C:\temp\test.mxd"
featureclass_gdb = r"C:\temp\test.gdb\testFC"
activation = "XX2"
layername = "test"
featureclass = "Poly"

mxd=arcpy.mapping.MapDocument(path_to_blankmxd)
df = arcpy.mapping.ListDataFrames(mxd,"Layers")[0]
arcpy.MakeFeatureLayer_management(featureclass_gdb,activation+"_"+featureclass)

addLayer=arcpy.mapping.Layer(activation+"_"+featureclass)
addLayer.name=layername
arcpy.mapping.AddLayer(df,addLayer)
mxd.save()
del mxd

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