domingo, 10 de agosto de 2025

馃椇 Automatizaci贸n de Geodatabases en ArcGIS con ArcPy

Automatizaci贸n de Geodatabases en ArcGIS con ArcPy

馃椇 Automatizaci贸n de Geodatabases en ArcGIS con ArcPy

En este tutorial aprender谩s c贸mo automatizar la creaci贸n, clonaci贸n y configuraci贸n de Geodatabases usando ArcPy.

Trabajaremos en dos partes:

  • Creaci贸n de GDB, Feature Dataset, Feature Class y Campos
  • Clonado de Geodatabases (con y sin datos)

馃梻 Parte 1 — Creaci贸n de una GDB, Dataset y Feature Class con Campos en ArcPy

1️⃣ Configuraci贸n de rutas y nombres


import arcpy
import os

ruta_carpeta = r"Ruta de la carpeta donde se almacenar谩 la GBD"
nombre_gdb = "Nombre.gdb" #Debe tener siempre la extensi贸n .gdb
ruta_gdb = os.path.join(ruta_carpeta, nombre_gdb)

馃搶 Aqu铆 definimos:

  • La carpeta donde se crear谩 la Geodatabase.
  • El nombre de la GDB.
  • La ruta completa usando os.path.join() para mayor compatibilidad.

2️⃣ Creaci贸n de la Geodatabase (GDB)


if not arcpy.Exists(ruta_gdb):
    arcpy.CreateFileGDB_management(ruta_carpeta, nombre_gdb)
    print("GDB Creada con 茅xito en la ruta {}".format(ruta_gdb))
else:
    print("La GDB ya existe")

馃挕 Verificamos si la GDB ya existe.

  • Si no existe, la creamos con arcpy.CreateFileGDB_management().
  • Si ya existe, mostramos un mensaje informativo.

3️⃣ Creaci贸n del Feature Dataset


spatial_ref = r"ruta del archivo 9377.prj"
nombre_dataset = 'Nombre_dataset'
ruta_dataset = os.path.join(ruta_gdb, nombre_dataset)

if not arcpy.Exists(ruta_dataset):
    arcpy.CreateFeatureDataset_management(ruta_gdb, nombre_dataset, spatial_ref)
    print("Dataset creado con 茅xito en la ruta: {}".format(ruta_dataset))
else:
    print("El dataset ya existe")

馃搶 Un Feature Dataset agrupa varias capas con la misma referencia espacial.

  • Usamos un archivo .prj para definir el sistema de coordenadas.
  • Se crea solo si no existe.

4️⃣ Creaci贸n de la Feature Class


nombre_fc = "Nombre_capa"
ruta_fc = os.path.join(ruta_dataset, nombre_fc)

if not arcpy.Exists(ruta_fc):
    arcpy.CreateFeatureclass_management(ruta_dataset, nombre_fc, "POLYGON", spatial_reference=spatial_ref)
    print("Feature Class '{}' creada con 茅xito".format(nombre_fc))
else:
    print("La Feature Class '{}' ya existe".format(nombre_fc))

馃搶 Creamos una Feature Class del tipo POLYGON para almacenar predios.

  • Definimos la referencia espacial.
  • Se crea solo si no existe.

5️⃣ Agregar campos a la tabla de atributos


campos = [
    ("NUMERO_PREDIAL", "TEXT", 30),
    ("CODIGO_CATASTRAL", "TEXT", 20),
    ("DIRECCION", "TEXT", 50),
    ("PROPIETARIO", "TEXT", 50),
    ("AREA_OFICIAL", "DOUBLE", None),
    ("AREA_CALCULADA", "DOUBLE", None)
]

for nombre_campo, tipo, longitud in campos:
    if nombre_campo not in [f.name for f in arcpy.ListFields(ruta_fc)]:
        if longitud:
            arcpy.AddField_management(ruta_fc, nombre_campo, tipo, field_length=longitud)
        else:
            arcpy.AddField_management(ruta_fc, nombre_campo, tipo)
        print("Campo '{}' agregado a {}".format(nombre_campo, nombre_fc))
    else:
        print("El campo '{}' ya existe".format(nombre_campo))

馃搶 A帽adimos los campos requeridos para el manejo de datos catastrales.

  • Campos de texto (TEXT) con longitudes espec铆ficas.
  • Campos num茅ricos (DOUBLE) sin longitud definida.
  • Solo se agregan si no existen previamente.

馃帴 Video recomendado: Creaci贸n de una GDB, Dataset y Feature Class con Campos en ArcPy

Descarga el archivo aqu铆...

馃摝 Parte 2 — Clonado de Geodatabases con ArcPy

En esta secci贸n aprenderemos dos formas de clonar una Geodatabase usando ArcPy:

  • Clonado completo (estructura + datos)
  • Clonado de solo la estructura (sin datos), usando exportaci贸n e importaci贸n a trav茅s de un archivo XML.

1️⃣ Clonar todo (datos + estructura)


import arcpy

gdb_origen = r"RUTA_GDB_ORIGEN"
gdb_destino = r"RUTA_GDB_DESTINO"

arcpy.Copy_management(gdb_origen, gdb_destino)
print("GDB copiada a: {}".format(gdb_destino))

馃挕 Tip: Este m茅todo crea una copia exacta de la geodatabase, ideal para respaldos o migraciones r谩pidas.

2️⃣ Clonar solo la estructura (sin datos)

A veces necesitamos duplicar solo la estructura (datasets, feature classes, dominios, subtipos, relaciones) sin transferir datos. Esto se logra exportando el esquema a un archivo XML y luego import谩ndolo en una nueva GDB vac铆a.

Exportar estructura a XML


import arcpy

xml_salida = r"RUTA_AL_ARCHIVO\\XML_ESQUEMA.xml"

arcpy.ExportXMLWorkspaceDocument_management(
    gdb_origen,
    xml_salida,
    "SCHEMA_ONLY"
)
print("Estructura exportada a: {}".format(xml_salida))

Crear nueva GDB e importar estructura


import arcpy

ruta_carpeta_destino = r"RUTA_DE_CARPETA_DESTINO"
nombre_gdb_destino = "NOMBRE_GDB_DESTINO.gdb"

arcpy.CreateFileGDB_management(ruta_carpeta_destino, nombre_gdb_destino)
nueva_gdb = ruta_carpeta_destino + "\\" + nombre_gdb_destino

arcpy.ImportXMLWorkspaceDocument_management(
    nueva_gdb,
    xml_salida,
    "SCHEMA_ONLY"
)
print("Estructura importada en: {}".format(nueva_gdb))

馃帴 Video recomendado: Clonado de Geodatabases con ArcPy

Descarga el archivo aqu铆...

馃搶 Conclusi贸n

La automatizaci贸n de procesos en ArcGIS Pro y ArcMap con Python no solo ahorra tiempo y esfuerzo, sino que tambi茅n garantiza la estandarizaci贸n de los flujos de trabajo. La creaci贸n de datasets, el llenado de tablas y la manipulaci贸n de datos pueden convertirse en tareas repetitivas y propensas a errores si se realizan manualmente. Implementar scripts permite ejecutar estas operaciones de forma precisa, reproducible y con la flexibilidad necesaria para adaptarse a diferentes proyectos. En un entorno profesional, esta eficiencia se traduce en mejores resultados y mayor productividad para cualquier equipo GIS.


¿Quieres m谩s?

Si te interesa aprender c贸mo visualizar estos servicios desde Python, Colab o un visor web, puedes suscribirte a nuestro canal de YouTube FD-SIG Soluciones o seguir este blog para futuros tutoriales.


Etiquetas: ArcGIS, Python, Geodatabase, GDB, SIG, GIS, arcpy, ESRI, shapefile, feature class, datos espaciales, cartograf铆a, an谩lisis geoespacial, gesti贸n de datos, renombrar geodatabase, eliminar geodatabase, crear geodatabase, Python GIS, ArcGIS Pro, ArcMap, XML workspace, exportar GDB, importar GDB, visualizaci贸n SIG, ArcGIS Online, geoprocesamiento, bases de datos espaciales, SIG Python, tutorial ArcGIS, scripts arcpy

No hay comentarios.:

Publicar un comentario

馃椇 Automatizaci贸n de Geodatabases en ArcGIS con ArcPy

Automatizaci贸n de Geodatabases en ArcGIS con ArcPy 馃椇 Automatizaci贸n de Geodatabases en ArcGIS con ArcPy En este tutorial aprende...