Hacer clip geométricamente a todos los features de una base de datos

0

 



En este articulo aprenderás como recortar todos los features (o shapefiles, como prefieras llamarlos) contenidos en una base de datos usando un shapefile.



El siguiente procedimiento te ayudará cuando tengas que recortar información espacial considerando la forma geométrica de un shapefile en específico; te aconsejo llevar a cabo este procedimiento una vez finalices tu proyecto. Para lograr esto utilizaremos un codigo Python desarrollado por mi, pero antes veremos cuales serian tus opciones convencionales 


Opción 1: cómo recortar geometricamente un feature utilizado el editor de capas de ArcMap (ArcGIS)


0. Haz un respaldo de tu informacion siempre antes de hacer una modificacion

1. Carga la capa a recortar la cual llamaremos capa X, asi tambien carga la capa que deseas usar como forma geometrica de recorte, que llamaremos capa Y.

2. Ve a la barra de herramienta "Standard" y presiona el boton "Search"(a), en la barra de busqueda (b) escribe la palabra "clip", y selecciona la opcion "Clip (Data Analysis)"(c).






3. En item "Input feature" arrastra la capa X (a), y en el item "Clip feature" arrastra la capa Y (b), ejecuta la herramienta, el resultado será conocido como capa Z en lo sucesivo (c).





4. En la barra de herramienta Editor, presiona la lista desplegable Editor y presiona el boton "Start Editing" (a).



5. Apaga las capas Y y Z (a), a continuación selecciona todos los polígonos de la capa X usando la "Edit tool" de la barra de herramientas "Editor" (b) y presiona en tu teclado la tecla "Delete" (c). El resultado deberia ser un fondo blanco en el area de visualización del software (d).






6. Prende la capa Z (a) y selecciona los polígonos de dicha capa usando la "Edit tool" de la barra de herramientas "Editor" (b), presiona Crtl+C y luego Ctrl+V (c) y escoge como capa destino la capa X (d). Los polígonos recortados ahora también estarán en la capa X (e).










7. Ve de nuevo a la lista desplegable "Editor" en la barra de herramientas correspondiente y presiona "Stop Editing" (a), asegurandote de guardar la edicion (b).



Opción 2: cómo recortar geometricamente un feature utilizado herramientas de geoprocesos


0. Haz un respaldo de tu información siempre antes de hacer una modificación

1. Carga la capa a recortar la cual llamaremos capa X, asi tambien carga la capa que deseas usar como forma geometrica de recorte, que llamaremos capa Y.

2. Ve a la barra de herramienta "Standart" y presiona el boton "Search", lo que desplegara la ventana "Search" que funcionara en este caso como un buscador de herramientas 


3. Escribe las palabras clave "clip", "delete" y "append" para poder seleccionar las herramientas "Clip (Data Analysis)", "Delete (Data Management)" y "Append (Data Manangement)",segun lo vayas requiriendo en la ejecucion del siguiente flujograma





4. Ejecuta el flujograma. En Dicho flujograma las capas empleadas en cada proceso se encuentran entre paréntesis luego del nombre del ítem al que corresponden en cada herramienta.


Aplicar la opción 1 o la opción 2 resulta fácil cuando el proceso debe aplicarse solo a una o dos capas dentro de la base de datos, pero cuando el numero se incrementa a decenas o centenas de capas, es mejor contar con un método automatizado, por esto observa a continuación como ser mucho mas eficiente usando código Python sin necesidad de programar.

Cómo recortar geométricamente los features dentro de una base de datos con Python (ArcPy)


Paso 0: Haz un respaldo de tu informacion siempre antes de hacer una modificacion.


Paso 1: Abrir un archivo MXD en blanco, y presiona el boton "Pause drawing" (a) o presiona en tu teclado F9 (Esto para evitar que el archivo MXD colapse por tanta información).




Paso 2: Carga las capas a recortar dentro del MXD, incluyendo aquella capa que te servira como forma geometrica de recorte.


Paso 3: Abrir la ventana Python en la barra de herramientas Standard.


Muestra la ubicación de la ventana Python dentro de la barra de herramientas Standard (estándar)


Paso 4: Copiar en un blog de notas el siguiente código y reemplazar el texto Clipper en la línea #04 por el nombre de la capa que hará las veces de forma geométrica de recorte.



import arcpy                                                                     #01
mxd = arcpy.mapping.MapDocument("CURRENT")                                       #02
layers = arcpy.mapping.ListLayers(mxd)                                           #03
Clip_Features = "Clipper"                                                        #04
for layer in layers:                                                             #05
  if layer.name != Clip_Features:                                                #06
    clipped_layer = arcpy.Clip_analysis(layer.dataSource, Clip_Features, None)   #07
    arcpy.DeleteFeatures_management(layer)                                       #08
    arcpy.Append_management(clipped_layer, layer, "NO_TEST")                     #09
    arcpy.Delete_management(clipped_layer)                                       #10
    



Paso 5: Copiar el código modificado en la ventana Python y presionar la tecla Enter o Intro dos veces.


Al cabo de unos segundos veras como se comienzan a ejecutar las herramientas Clip (Data Analysis)", "Delete (Data Management)" y "Append (Data Manangement)" en la esquina inferior derecha, y al pasar cierto tiempo todas las capas contenidas en el MXD habrán sido recortadas.


Notas:


a) Si quieres poder verificar el resultado del recorte antes de que sea definitivo, puedes iniciar una sesión de edición antes de ejecutar el código.  


Espero hayas disfrutado este artículo, próximamente subiré un video explicativo del procedimiento que podrás consultar en este blog. Guarda mi blog entre tus enlaces favoritos, estaré subiendo muchos más trucos de este estilo, recuerda que puedes hacerme llegar tus inquietudes en la página de contacto o deja tu comentario, estaré atento a responder.


Entradas que pueden interesarte

Sin comentarios