1 votos

Añadir leyenda con ArcPy sobre mi mapa interpolado

He creado un mapa interpolado con arcpy.IDW_ga y lo estoy exportando a PDF con arcpy.mapping.ExportToPDF. ¿Cómo puedo añadir una leyenda al mapa con ArcPy? Al final, quiero aplicar el código para crear 100 mapas, por lo que manualmente no es una solución. Sé que puedo ir a Insert>> Legend, pero necesito una solución automatizada.

arcpy.IDW_ga(in_features = in_features, 
             z_field= z_field, out_ga_layer="", 
             out_raster="Interpolation/year/" + name_save, 
             cell_size="6.46298456489016E-03", 
             power="2", 
             search_neighborhood="NBRTYPE=Standard S_MAJOR=0.336780807796406 S_MINOR=0.336780807796406 ANGLE=0 NBR_MAX=15 NBR_MIN=10 SECTOR_TYPE=ONE_SECTOR", 
             weight_field="")

mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]  
arcpy.mapping.ExportToPDF(mxd,  "C:/Users/"mypdf.pdf")

3voto

Tedy Puntos 46

Crear/guardar el documento cartográfico con una leyenda. Cuando añada su capa, ésta se añadirá automáticamente a la leyenda siempre que Añadir un nuevo elemento a la leyenda cuando se añade una nueva capa al mapa está seleccionada.

enter image description here

También puedes hacer 'clic en esta casilla' a través de arcpy.

legend = arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")[0]
legend.autoAdd = True

Código completo para añadir su resultado raster:

#get mxd object
mxd = arcpy.mapping.MapDocument (r"path\to\your\mxd.mxd")
#get data frame
df = arcpy.mapping.ListDataFrames (mxd) [0]

#get legend
legend = arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")[0]
#add new items to legend
legend.autoAdd = True

#IDW
arcpy.IDW_ga(in_features = in_features, 
             z_field= z_field, out_ga_layer="", 
             out_raster="Interpolation/year/" + name_save, 
             cell_size="6.46298456489016E-03", 
             power="2", 
             search_neighborhood="NBRTYPE=Standard S_MAJOR=0.336780807796406 S_MINOR=0.336780807796406 ANGLE=0 NBR_MAX=15 NBR_MIN=10 SECTOR_TYPE=ONE_SECTOR", 
             weight_field="")
#create raster layer
rastLyr = arcpy.MakeRasterLayer_management("Interpolation/year/" + name_save, 'rast') [0]
#add raster layer - it will be added to the legend as well
arcpy.mapping.AddLayer (df, rastLyr)

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