Necesito encontrar una forma de reclasificar/reactualizar la simbología de colores graduados entre la exportación de páginas con datos.
Antecedentes: He unido espacialmente Grupos de Bloques (BGs) a 1000 instalaciones (e ID de instalaciones) en un radio de 10 millas. Hay múltiples instancias de los mismos BGs porque están ubicados muy cerca de múltiples instalaciones.
Prefiero utilizar el método de clasificación de la desviación estándar. Actualmente, cuando las Data Driven Pages están activadas y clasifico los datos, los rangos de valores que se aplican son relevantes para lo que se muestra (esto es bueno). El problema surge cuando paso a la siguiente página y ésta no se recalcula, sino que sigue utilizando los rangos de valores de las BGs mostradas anteriormente.No puedo mostrarlas todas a la vez, porque las múltiples ocurrencias se solapan. Además, para una instalación concreta un BG puede representar un valor inferior mientras que para otra el mismo BG puede representar un valor mayor.
Exporto páginas con datos en un script de python muy básico. Una respuesta sería insertar un código que aplique la simbología de una capa diferente antes de exportar la página. Este proceso funciona manualmente en Arcmap: Aplicar simbología > refrescar > exportar página...etc. Tengo poca experiencia con python, y la penúltima línea que he añadido a continuación no lo hace (pero funciona en un script aparte).
Este es el python con el que estoy trabajando actualmente:
import arcpy
mxd = arcpy.mapping.MapDocument(r"E:\Templates_MXD\BU_5Mile.mxd")
export_path = r"C:\Users\sder\Desktop\Test\\"
field_name = "ID"
df = arcpy.mapping.ListDataFrames(mxd, "Business Analyst Map")[0]
updateLayer = arcpy.mapping.ListLayers(mxd, "BKtoBG", df)[0]
sourceLayer = arcpy.mapping.Layer(r"E:\Templates_Layer\BKtoBG.lyr")
for i in range(1, mxd.dataDrivenPages.pageCount + 1):
mxd.dataDrivenPages.currentPageID = i
row = mxd.dataDrivenPages.pageRow
print row.getValue(field_name)
arcpy.mapping.ExportToPDF(mxd, export_path + row.getValue(field_name) + ".pdf", resolution=200, image_quality="BETTER")
arcpy.mapping.UpdateLayer(df, updateLayer, sourceLayer,True)
del mxd