Automatizar la generalización de pendientes en ArcGIS Pro

Si alguna vez has tenido que generar el mapa de clases de pendiente para un EIA o un EOT, ya sabes de qué se trata: abrir la caja de herramientas, correr Slope, correr Reclassify, correr Majority Filter, correr Boundary Clean… y repetir todo otra vez si te equivocaste en un parámetro o el DEM cambió. Ese proceso, hecho a mano en ArcGIS Pro, toma entre 30 y 60 minutos por corrida. Con una aplicación desarrollada en Python, el mismo resultado —shapefile final, reportes en Excel y CSV incluidos— sale en 2 a 5 minutos, con un solo clic.

A continuación se explica cómo funciona, qué problema resuelve y por qué este tipo de automatización importa tanto en consultoría ambiental, donde un mismo flujo de trabajo se repite proyecto tras proyecto.

El ahorro, en números

Proceso manual 30–60 min Con la app 2–5 min Escala aproximada · 10 herramientas de geoprocesamiento ejecutadas manualmente vs. 1 clic

El problema: un flujo de 10 pasos que se repite en cada proyecto

Convertir un DEM en polígonos de clases de pendiente generalizadas no es un solo clic en ArcGIS Pro: es una cadena de herramientas que hay que ejecutar en orden, con los parámetros correctos cada vez.

  • Calcular la pendiente en porcentaje (método geodésico)
  • Reclasificar en 7 clases (0-3, 3-7, 7-12, 12-25, 25-50, 50-75, >75 %)
  • Aplicar un filtro de mayoría para suavizar el ruido
  • Limpiar bordes entre clases (Boundary Clean)
  • Agrupar regiones contiguas (Region Group)
  • Seleccionar solo las regiones representables según un umbral de celdas
  • Absorber las regiones pequeñas con Nibble
  • Convertir el raster a polígonos
  • Suavizar los polígonos (PAEK)
  • Calcular área geodésica, asignar descripciones y armar los reportes

Cada paso implica abrir una herramienta, apuntar la ruta de salida correcta, escribir el mismo parámetro que la vez anterior, y esperar. Si te saltas uno, olvidas liberar la licencia de Spatial Analyst o el DEM llega con otra unidad vertical, hay que empezar de nuevo. Multiplícalo por cada DEM de cada proyecto y son horas de trabajo repetitivo al mes que no agregan valor técnico: solo repiten clics.

La solución: una interfaz de escritorio que corre todo el pipeline

La aplicación tiene una ventana en CustomTkinter donde solo hay que seleccionar el DEM, la carpeta de salida, revisar tres parámetros (umbral de región, tolerancia de suavizado y unidad vertical) y darle a Ejecutar generalización. Por debajo corre exactamente la misma secuencia de arcpy que harías a mano, pero encadenada, validada y con seguimiento de progreso en tiempo real.

DEM Slope geodésico % Reclassify 7 clases Majority Filter + Boundary Clean Region Group regiones contiguas Extract + Nibble umbral de área Polígonos + reportes Un solo clic ejecuta esta cadena completa y libera la licencia de Spatial Analyst al terminar (o si se cancela)

Las 7 clases que genera automáticamente

El resultado final es un shapefile con estas categorías, ya con área geodésica en metros cuadrados y en hectáreas calculada para cada polígono:

ClaseRango de pendienteDescripción
10 – 3 %Plana a ligeramente plana
23 – 7 %Ligeramente inclinada
37 – 12 %Moderadamente inclinada
412 – 25 %Fuertemente inclinada
525 – 50 %Ligeramente escarpada
650 – 75 %Moderadamente escarpada
7> 75 %Fuertemente escarpada

Un detalle técnico que vale la pena resaltar: la pendiente se calcula con arcpy.sa.Slope usando método geodésico, lo que la hace más precisa en zonas de terreno complejo y, de paso, evita depender de la extensión 3D Analyst — solo se necesita licencia de Spatial Analyst, que es exclusiva del entorno de ArcGIS Pro.

De igual manera es importante mencionar que la reclasificación de pendientes puede ser reproducible para otros modelos o necesidades especificas modificando o agregando pocas líneas del código principal, esto hace que el flujo planteado sea útil es distintos contextos.

Reportes automáticos: nada de armar tablas a mano en Excel

Cada corrida deja organizada esta estructura de carpetas, lista para anexar al informe:

01_intermedios/
  generalizacion_intermedios.gdb/
02_producto_final/
  pendientes_generalizadas.shp
03_reportes/
  reporte_generalizacion.csv
  reporte_generalizacion.xlsx
  resumen_por_clase.csv
  • reporte_generalizacion.xlsx: libro con hojas de «Parámetros» (fecha, DEM usado, sistema de coordenadas, resolución, unidad mínima cartografiable) y «Resumen por clase», con encabezados, filtros y formato numérico aplicados automáticamente.
  • Dos CSV equivalentes, por si necesitas abrir los datos sin Excel o cargarlos a otro flujo de análisis.
  • El shapefile final, con los campos clase, desc_clase, area_m2 y area_ha ya calculados por polígono.

Antes vs después

AspectoProceso manualCon la aplicación
Tiempo por corrida30 – 60 minutos2 – 5 minutos
Pasos que ejecuta el usuario10 herramientas, una por una1 clic («Ejecutar generalización»)
Riesgo de error humanoAlto: parámetro mal copiado, herramienta olvidadaBajo: parámetros validados antes de correr
ReportesSe arman a mano en ExcelSe generan automáticos, ya con formato
Licencia Spatial AnalystPuede quedar «pegada» si algo falla a mitad de procesoSe libera siempre, incluso ante error o cancelación
Repetir con otro DEMRepetir todo el flujo desde ceroCambiar el DEM y volver a correr

Por qué esto importa en consultoría ambiental

En estudios como un EIA o un EOT, el mapa de pendientes no es un entregable aislado: alimenta zonificación, amenazas, capacidad de uso del suelo y varios anexos que terminan siendo revisados por ANLA o por las CAR. Cuando ese insumo se genera siempre con el mismo criterio técnico —mismas clases, mismo método geodésico, mismos reportes de trazabilidad— es más fácil sustentarlo ante la autoridad ambiental y más difícil que se encuentren inconsistencias entre un proyecto y otro. Automatizar no solo ahorra tiempo: estandariza el criterio técnico entre proyectos y entre personas del equipo que corran la herramienta.

Cómo se usa

La aplicación no instala, actualiza ni elimina paquetes: corre directamente sobre un Python de ArcGIS Pro que ya tenga arcpy, CustomTkinter, Pillow y openpyxl disponibles.

  1. La primera vez, se ejecuta instalar_dependencias.bat para instalar CustomTkinter, Pillow y openpyxl en el Python del entorno clonado de ArcGIS Pro el cual es detectado automáticamente, si por algún caso aún no ha sido clonado el entorno se puede ejecutar este lanzador como administrador y se instala en el entorno nativo de ArcGIS.
  2. Se abre iniciar_generalizacion.bat.
  3. Se selecciona el DEM y la carpeta de salida.
  4. Se revisan el umbral de región, la tolerancia de suavizado y la unidad vertical deaseada.
  5. Se pulsa Ejecutar generalización y listo.

Nunca se ejecuta pip install arcpy: ArcPy sigue siendo administrado exclusivamente por ArcGIS Pro; las dependencias adicionales viven aparte, documentadas en requirements-app.txt.

Automatizar este pipeline no elimina el criterio técnico del ingeniero: lo libera del clic repetitivo para que se enfoque en interpretar el resultado, no en producirlo, lo cual ayuda de gran manera a optimizar procesos.

Si tu equipo procesa varios DEM al mes para EIA, EOT o cualquier estudio que necesite pendientes generalizadas, este tipo de herramienta convierte una tarea repetitiva de casi una hora en un proceso de minutos, con trazabilidad de reportes incluida desde el primer clic.

Ver guía técnica en GitHub

En el siguiente link puede acceder directamente al repositorio de GitHub en el cual se encuentra la estructura del repositorio y las instrucciones de uso para que otros equipos técnicos repliquen la lógica con sus propios proyectos.


¿Necesitas apoyo en gestión de información geoespacial?

INGISOT S.A.S desarrolla soluciones en SIG, ciencia de datos geoespaciales, automatización, cartografía temática y análisis territorial para proyectos ambientales, mineros, catastrales y de ordenamiento territorial.