6 votos

¿Reducción del tiempo para exportar a PDF (o cualquier otra alternativa para imprimir mapas) en ArcPy?

Para mi trabajo, diseñé una herramienta para crear mapas en PDF con gran cantidad de datos, intersectados con 5 anillos de amortiguación utilizando ArcPy. El trabajo implica la intersección de puntos, la selección de puntos, la generación de elevación para los puntos y la distancia desde la ubicación de la orden (el centro de los buffers). El trabajo funciona bien para un solo mapa y sólo tarda 2-3 minutos.

Pero surgieron otros requisitos y ahora estoy anexando dos PDF más al PDF original pero con diferentes extensiones basadas en los radios de los anillos. El trabajo está tardando entre 8 y 9 minutos. Si creo un libro de mapas con páginas con datos, no es tan lento. He probado diferentes resoluciones, es algo eficiente con menos dpi pero el director del proyecto no está contento con ello. Estamos utilizando 400 dpi en lugar de los 300 dpi por defecto. Además, las capas y los atributos son necesarios para los informes, aunque ese cambio no afectó mucho al tiempo. La escala de la herramienta también es desconocida. El diseño original estaba pensado para 1000 usos en un mes, pero el negocio se está lanzando en otra jurisdicción, así que no estamos seguros del número de usos en el futuro. Y con más usos y más tiempo de ejecución, la herramienta se encontrará con "La ejecución del trabajo XXX falló debido a la caída o la terminación del objeto del servidor", independientemente del cambio de tiempo del servicio de ArcGIS.

¿Alguien ha utilizado otra herramienta de generación de PDF con en Python para generar mapas?

if (country.lower()== 'xy'):
            scale = df.scale * 1.1
            df.scale = ((int(scale)/100)+1)*100
            MainTitleTextElement.text= "Map : "+ Buffer4 + " Mile Radius"
            outputLayoutPDF4 = os.path.join(scratch, 'mapExport4.pdf')
            arcpy.mapping.ExportToPDF(mxd, outputLayoutPDF4, "PAGE_LAYOUT", 640, 480, 400, "FASTER", "RGB", True, "ADAPTIVE", "RASTERIZE_BITMAP", False, True, "LAYERS_AND_ATTRIBUTES", True, 90) 
            scale = df.scale * 1.1
            df.scale = ((int(scale)/100)+1)*100
            MainTitleTextElement.text= "Map : "+ Buffer3 + " Mile Radius"
            outputLayoutPDF3 = os.path.join(scratch, 'mapExport3.pdf')
            arcpy.mapping.ExportToPDF(mxd, outputLayoutPDF3, "PAGE_LAYOUT", 640, 480, 400, "FASTER", "RGB", True, "ADAPTIVE", "RASTERIZE_BITMAP", False, True, "LAYERS_AND_ATTRIBUTES", True, 90)        
            outputPDF.appendPages(outputLayoutPDF4)
            outputPDF.appendPages(outputLayoutPDF3)

5voto

Lazer Puntos 3926

Sugiero gastar el esfuerzo en reducir el tiempo de dibujo del mxd en lugar de centrarse en el proceso de exportación a python. Hay alguna información sobre eso aquí:

Esri KB 34043 - HowTo: Mejorar el rendimiento de la impresión o la exportación

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