SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
1




            El lenguaje Python y su funcionalidad con los
            Sistemas de Información Geográfica mediante
                             ArcGIS 9.X
                                   Bernardo Arango G., David Arenas H., Rafael Botero M.


 Palabras clave: Geoprocesamiento, Python, script.                  son muy complejos y requieren amplio conocimiento para
                                                                    desarrollar cosas sencillas.
   Resumen—Este artículo relata la importancia y versatilidad          Desde la versión 9, Arcgis permitió la elaboración de
de los scripts a la hora de automatizar tareas computacionales,     scripts de una forma rápida y sencilla, de tal manera que sus
enfocándolo a tareas de geoprocesamiento en los sistemas de         usuarios no requirieran ser programadores o tener destreza en
información geográfica (SIG), gracias a su integración con el
                                                                    programación para realizar líneas de código que les
software ArcGIS. Para esta labor emplearemos el lenguaje de
                                                                    permitieran resolver problemas que ellos encontraran en su día
programación Python el cual es muy fácil de aprender y de
                                                                    a día con los SIG.
utilizar, además de que viene integrado a ArcGIS desde la
versión 9.0.
                                                                       Desde esta versión se incorporó en la instalación de ArcGIS
                                                                    el lenguaje Python, el cual es muy sencillo y fácil de aprender,
                             INTRODUCCION
                        I.                                          es un lenguaje “abierto”, orientado a objetos, además de ser
                                                                    muy útil para las labores de geoprocesamiento. Por estas
Las herramientas informáticas en la actualidad realizan un
                                                                    razones encaminamos nuestro proyecto de la materia a este
sinnúmero de funciones que requieren de mucho tiempo para
aprenderlas a utilizar, a pesar de esto no hacen todas cosas que    poderoso de lenguaje.
necesitamos ni cómo las necesitamos. Por estas razones este
tipo de herramientas permiten su personalización para poder            Python no solamente es un lenguaje para escribir scripts,
ser adaptadas por los usuarios a su forma de trabajo y a sus        también posee soporte y estructura para realizar programas
necesidades. Existe una manera rápida de personalización que        largos con muchas líneas de código, es un lenguaje de muy
es a través de Scripts, éstos son un conjunto generalmente          alto nivel y ofrece muchos tipos de datos y el chequeo de
corto de instrucciones o secuencias de código sin compilar          errores es mucho más sencillo que con otros lenguajes de
que son ejecutadas por un software que las interpreta y que         programación. Python permite dividir programas en módulos
permiten realizar acciones para automatizar tareas.                 que pueden ser reusados en otros programas escritos en
                                                                    Python y en otros lenguajes, pues viene con una amplia
Los Sistemas de Información Geográfica (SIG) son
                                                                    colección de módulos predefinidos que pueden ser usados
herramientas robustas pero en algunos casos requieren de
                                                                    como base para otros programas escritos en el mismo
ciertas labores de personalización para agilizar diversas tareas,
                                                                    lenguaje.
como lo son entre otras, las labores de geoprocesamiento,
entendidas estas como el procesamiento de información
                                                                       Python es un lenguaje interpretado, lo cual ahorra tiempo
geográfica en la cual se crea nueva información a partir de la
                                                                    pues no es necesario compilar. Este lenguaje no requiere ni
ya existente aplicando una serie de operaciones. En estos
                                                                    obliga a la definición del tipo de dato de las variables,
casos existen herramientas al interior de los software SIG que
                                                                    tampoco requiere escribir punto y coma(;) después de cada
permiten realizar estas labores, pero en algunos casos estas se
                                                                    línea pero si es bastante delicado con la indentación pues los
vuelven engorrosas o demoradas de ejecutar porque no se
                                                                    bloques de código requieren sangría de acuerdo a cómo estos
adaptan del todo a las necesidades del usurario, debido a lo
anterior, es necesario contar con un lenguaje de programación       sean escritos.
“incrustado” que permita realizar scripts para realizar estas
tareas más fácilmente.                                              El siguiente ejemplo ilustra la facilidad de uso de Python

ArcGIS      integra varios lenguajes de programación que
permiten    adaptarlo a las necesidades y requerimientos de sus
usuarios,   estos permiten realizar scripts o líneas de código
sencillas   que facilitan ciertas tareas pero algunos lenguajes
2




En el gráfico anterior se observa que no es necesario definir el   Ahora vamos a crear un nuevo script, para esto vamos al menú
tipo de variable incluso tampoco es necesario definir las          File, New, Python Script y OK.
variables, pues con solo escribir su valor y el operador se
pueden obtener resultados de forma inmediata sin necesidad         A continuación vamos a escribir el siguiente código:
de compilar el código, esto permite utilizar a Python como una
calculadora rápidamente.                                           import win32com.client, sys, os

                                                                   El código anterior importa los módulos de las librerías
                                                                   estándar que van a ser utilizadas en el desarrollo del script.
                    II. METODOLOGÍA
                                                                   win32com.client: Apoya la comunicación entre Pythom y
En nuestro proyecto pretendemos explicar cómo a través de
                                                                   COM IDispatch.
Python se pueden escribir sentencias de código que permiten
realizar tareas de geoprocesamiento, para esto explicaremos
                                                                   COM IDispatch: habilita a los lenguajes interpretados
en este artículo un script que permite cortar (clip) con un
                                                                   basados en texto utilizar objetos COM.
shapefile uno o más shapefiles ubicados dentro de un
                                                                   COM posibilita reutilizar módulos y habilita la comunicación
workspace y ubicar el resultado en una carpeta o workspace
                                                                   entre ellos.
de salida, teniendo en cuenta un “cluster tolerance” o
tolerancia de coincidencia.
                                                                   El modulo Sys permite ingresar información por parte del
                                                                   usuario.
Para la elaboración de este script en python es necesario:
                                                                   El modulo OS provee facil acceso a la mayoría de las
                                                                   herramientas fundamentales del sistema operativo.
  A. Preparación de la información y de la herramienta
  Python                                                           Ahora vamos a crear el objeto geoprocesador, escribiendo la
                                                                   siguiente línea:
En esta etapa emplearemos información correspondiente al
tutorial de ArcGIS 9.2, ubicaremos los shapefiles de corte y a
                                                                   GP                                                      =
ser cortados dentro de una carpeta o workspace llamada San
                                                                   win32com.client.Dispatch(quot;esriGeoprocessing.GpDispatch.1quot;
Diego. Debemos tener instalado ArcGIS 9.0 o superior y
                                                                   )
verificar la versión de Python instalada y de acuerdo a esto
descargamos e instalamos la herramienta PythonWin del
                                                                   En este objeto es donde están disponibles las herramientas de
website de Python (Python.org), esta herramienta le agrega
                                                                   geoprocesamiento de ArcGi, las cuales usaremos para
ambiente gráfico a Python, lo cual facilita las labores de
                                                                   realizar el script.
escritura, compilación y depuración de errores a la hora de
escribir código Python.
                                                                   Este script requiere de cuatro parámetros para funcionar por
  B. Escritura del script                                          medio del siguiente código:
El script lo vamos a escribir dentro del ambiente gráfico
Pythonwin, para esto debemos ejecutarlo, lo encontramos
instalado en inicio, todos los programas, Python 2.x,              GP.workspace = sys.argv[1]
Pytonwin.                                                          El anterior código requiere una carpeta o workspace donde
                                                                   están ubicados los shapefiles a ser cortados y el shape que los
                                                                   corta.
                                                                   clipFeatures = sys.argv[2]
3

El parámetro de la línea anterior es el shapefiele con el cual
se hará el clip.                                                     Las siguientes líneas de código hacen el clip de los shapefiles
outWorkspace = sys.argv[3]                                           de las lista de shapefiles generada con anterioridad y verifican
El parámetro de la línea anterior es el workspace de salida          que si el shape con el cual se va hacer el corte está dentro del
donde quedarán ubicados los shapes cortados.                         mismo workspace que los demás no sea tenido en cuenta para
clusterTolerance = sys.argv[4]                                       ser cortado con él mismo:
El parámetro de la línea anterior es la tolerancia de corte y es
opcional.                                                                if str(fc) != str(os.path.split(clipFeatures)[1]):
                                                                             GP.Clip(fc, clipFeatures, outFeatureClass,
                                                                             clusterTolerance)
La sentencia siguiente, TRY define el comienzo de bloque de              fc = fcs.Next()
código que será manipulado por un manejador de                       except:
excepciones, Python usa los bloques try/except para                    GP.AddMessage(GP.GetMessages(2))
manipular errores inesperados durante la ejecución.                    print GP.GetMessages(2)

try:                                                                 El script debe quedar como el siguiente, se puede comentar el
   La siguiente línea obtiene una lista de shapesfiles ubicados      código anteponiendo el símbolo #(numeral):
dentro del workspace previamente definido:
                                                                      C. Ejecución del script
  fcs = GP.ListFeatureClasses()
                                                                     Para su ejecución es necesario guardar el script, vamos al
                                                                     menú file, save as y le asignamos un nombre.
La siguientes sentencias recorren la lista de shapefiles

                                                                     Para saber si el código tiene errores ya sea de escritura, de
  fcs.Reset()
                                                                     sintaxis o de indentación vamos a la barra de herramientas y
  fc = fcs.Next()
                                                                     damos clic en el ícono “check”, como se muestra a
  while fc:
                                                                     continuación:
Las siguientes líneas validan el nuevo nombre de los
shapefiles cortados y que serán puestos en el workspace de
salida, el método ValidateTableName es usado para asegurar
la validez del nombre y ruta de salida para el workspace de
salid:

    outFeatureClass   =    outWorkspace           +        quot;/quot;   +
GP.ValidateTableName(fc,outWorkspace)




                                                                     Una vez revisados los errores, ejecutamos el script como
                                                                     mediante el ícono “Run” de la barra de herramientas como se
                                                                     muestra a continuación:
4

                                                                              III. APLICACIONES PRACTICAS

                                                                 PYTHON Y LOS SIG
                                                                 Este lenguaje provee muchas opciones de integración dentro
                                                                 de los SIG, puesto que posee capacidades de plataforma
                                                                 cruzada y fácil integración con otros lenguajes como por
                                                                 ejemplo C, C++, FORTRAN y Java. Python posee una gran
                                                                 cantidad de librerías y herramientas desarrolladas para el
                                                                 trabajo con datos geográficos e integración SIG, ya que
                                                                 permite la manipulación de shapefiles y formatos raster, así
                                                                 como labores más sofisticadas como la interoperabilidad con
                                                                 ArcSDE, bases de datos y servicios Web.

                                                                 Para el trabajo con vectores python posee una librería “open
                                                                 source” llamada Shapelib la cual funciona con shapefiles; para
                                                                 el trabajo con elementos raster integra la librería (open source)
                                                                 GDAL que permite trabajar con diversos formatos como
                                                                 ArcInfo grids, JPEG 2000, BSP, United States Geological
                                                                 Survey digital elevation model, entre otros. GDAL en
Luego aparece un cuadro de diálogo donde debemos ingresar
                                                                 combinación con Python tiene la facilidad para escribir
los parámetros solicitados por el script y explicados
                                                                 operaciones de algebra de mapas y generar los resultados en
previamente, para esto debemos escribir en “arguments”
                                                                 los formatos soportados.
separado por un espacio la ruta del Workspace, la ruta con el
shapefiel de corte, el workspace de salida y una toleracia, un
                                                                 Python es apropiado para el desarrollo web, pues este tipo de
ejemplo de esto sería:
                                                                 desarrollo es mucho más rápido que con tecnologías como
                                                                 Java o .NET. Existen muchas herramientas disponibles para
C:San_Diego C:San_Diegostudy_quads.shp
                                                                 desarrollo Web usando Python como Zope, MapServer,
C:San_Diegosalida 1
                                                                 Twisted, entre otros.
La siguiente figura ilustra mejor lo anterior:


                                                                         IV. CONCLUSIONES Y RECOMENDACIONES

                                                                     - Phyton provee un completo conjunto de herramientas
                                                                        para GIS combinado con ArcGIS las posibilidades
                                                                        son casi ilimitadas.

                                                                     - La tecnología web está siendo soportada por Python
                                                                        facilitando las labores de programación de rico y
                                                                        amplio contenido web.

                                                                     - Los scripts permiten la automatización de tareas en
                                                                        muchos programas y son cada vez más fáciles de
                                                                        realizar por personal no programador.

                                                                     - Para la personalización de software es altamente
                                                                        recomendable leer la documentación contenida en los
                                                                        software, puesto que esta permite conocer todas las
                                                                        funcionalidades, librerías, clases, métodos, etc, así
                                                                        como todas las capacidades de personalización
                                                                        contenidas en los lenguajes de programación
Dejamos lo demás por defecto y hacemos clic en OK.                      incrustados en estos.

A continuación se ejecuta el script y corta los shapefiles.          -
5

                REFERENCIAS BIBLIOGRÁFICAS



[1]   C. Trucker, Writing Geoprocessing Scripts With ArcGIS, Redlands,CA:
      ESRI 2005, pp. 17–27.

[2]   M. Lie Hetland, Beginning Python: From Novice to Professional.
      Berkeley, CA: Apress, 2005.

[3]   H. Butler, AGuide to the Python Universe for ESRI Users, Iowa State
      University.

[4]   es.wikipedia.org.

[5]   http://www.tierradenomadas.com/diccionario.phtml?S

Más contenido relacionado

La actualidad más candente

¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y DjangoAntonio Ognio
 
Programacion orientada a objetos python manuel casado martín - universidad ...
Programacion orientada a objetos python   manuel casado martín - universidad ...Programacion orientada a objetos python   manuel casado martín - universidad ...
Programacion orientada a objetos python manuel casado martín - universidad ...Wilson Bautista
 
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Fidel_Angel
 
Manual de python
Manual de pythonManual de python
Manual de pythonULEAM
 
Fundamentos de programamacion c#
Fundamentos de programamacion c# Fundamentos de programamacion c#
Fundamentos de programamacion c# Robert Rodriguez
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Ricardo Muñiz
 
Que es visual c# eduardo sorto
Que es visual c# eduardo sortoQue es visual c# eduardo sorto
Que es visual c# eduardo sortoeduardo sorto
 
Tutorial de Python - Pyar
Tutorial de Python - PyarTutorial de Python - Pyar
Tutorial de Python - PyarSergio Vallejo
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++N_Alejandrino
 

La actualidad más candente (11)

¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y Django
 
Programacion orientada a objetos python manuel casado martín - universidad ...
Programacion orientada a objetos python   manuel casado martín - universidad ...Programacion orientada a objetos python   manuel casado martín - universidad ...
Programacion orientada a objetos python manuel casado martín - universidad ...
 
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
 
Paralela10
Paralela10Paralela10
Paralela10
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Fundamentos de programamacion c#
Fundamentos de programamacion c# Fundamentos de programamacion c#
Fundamentos de programamacion c#
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)
 
Que es visual c# eduardo sorto
Que es visual c# eduardo sortoQue es visual c# eduardo sorto
Que es visual c# eduardo sorto
 
Python
PythonPython
Python
 
Tutorial de Python - Pyar
Tutorial de Python - PyarTutorial de Python - Pyar
Tutorial de Python - Pyar
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
 

Destacado

Usos de un sig
Usos de un sigUsos de un sig
Usos de un sigduke4
 
Articulo(impresion f inal)
Articulo(impresion f inal)Articulo(impresion f inal)
Articulo(impresion f inal)Gustavo Diaz
 
Análisis De Criterios MúLtiples
Análisis De Criterios MúLtiplesAnálisis De Criterios MúLtiples
Análisis De Criterios MúLtiplesIssaac
 

Destacado (6)

Usos de un sig
Usos de un sigUsos de un sig
Usos de un sig
 
Articulo sig
Articulo sigArticulo sig
Articulo sig
 
Mapa estrategico
Mapa estrategicoMapa estrategico
Mapa estrategico
 
Articulo sig
Articulo sigArticulo sig
Articulo sig
 
Articulo(impresion f inal)
Articulo(impresion f inal)Articulo(impresion f inal)
Articulo(impresion f inal)
 
Análisis De Criterios MúLtiples
Análisis De Criterios MúLtiplesAnálisis De Criterios MúLtiples
Análisis De Criterios MúLtiples
 

Similar a Clip múltiples shapefiles con Python en ArcGIS

Similar a Clip múltiples shapefiles con Python en ArcGIS (20)

Informe lpi
Informe lpiInforme lpi
Informe lpi
 
Introduccion a-python
Introduccion a-pythonIntroduccion a-python
Introduccion a-python
 
Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2
 
Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
GENERACIONES DE LOS LENGUAJES DE PROGRAMACIONGENERACIONES DE LOS LENGUAJES DE PROGRAMACION
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
 
Sesion01 c++
Sesion01  c++Sesion01  c++
Sesion01 c++
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Programacion
ProgramacionProgramacion
Programacion
 
Tarea3
Tarea3 Tarea3
Tarea3
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Principios programacion
Principios programacionPrincipios programacion
Principios programacion
 
Guia 1 java
Guia 1 javaGuia 1 java
Guia 1 java
 
Programacion informatica
Programacion informaticaProgramacion informatica
Programacion informatica
 
Python basic slides for beginners to learn python
Python basic slides for beginners to learn pythonPython basic slides for beginners to learn python
Python basic slides for beginners to learn python
 
9 anulacion
9   anulacion9   anulacion
9 anulacion
 
Cuaderno3
Cuaderno3Cuaderno3
Cuaderno3
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Clip múltiples shapefiles con Python en ArcGIS

  • 1. 1 El lenguaje Python y su funcionalidad con los Sistemas de Información Geográfica mediante ArcGIS 9.X Bernardo Arango G., David Arenas H., Rafael Botero M. Palabras clave: Geoprocesamiento, Python, script. son muy complejos y requieren amplio conocimiento para desarrollar cosas sencillas. Resumen—Este artículo relata la importancia y versatilidad Desde la versión 9, Arcgis permitió la elaboración de de los scripts a la hora de automatizar tareas computacionales, scripts de una forma rápida y sencilla, de tal manera que sus enfocándolo a tareas de geoprocesamiento en los sistemas de usuarios no requirieran ser programadores o tener destreza en información geográfica (SIG), gracias a su integración con el programación para realizar líneas de código que les software ArcGIS. Para esta labor emplearemos el lenguaje de permitieran resolver problemas que ellos encontraran en su día programación Python el cual es muy fácil de aprender y de a día con los SIG. utilizar, además de que viene integrado a ArcGIS desde la versión 9.0. Desde esta versión se incorporó en la instalación de ArcGIS el lenguaje Python, el cual es muy sencillo y fácil de aprender, INTRODUCCION I. es un lenguaje “abierto”, orientado a objetos, además de ser muy útil para las labores de geoprocesamiento. Por estas Las herramientas informáticas en la actualidad realizan un razones encaminamos nuestro proyecto de la materia a este sinnúmero de funciones que requieren de mucho tiempo para aprenderlas a utilizar, a pesar de esto no hacen todas cosas que poderoso de lenguaje. necesitamos ni cómo las necesitamos. Por estas razones este tipo de herramientas permiten su personalización para poder Python no solamente es un lenguaje para escribir scripts, ser adaptadas por los usuarios a su forma de trabajo y a sus también posee soporte y estructura para realizar programas necesidades. Existe una manera rápida de personalización que largos con muchas líneas de código, es un lenguaje de muy es a través de Scripts, éstos son un conjunto generalmente alto nivel y ofrece muchos tipos de datos y el chequeo de corto de instrucciones o secuencias de código sin compilar errores es mucho más sencillo que con otros lenguajes de que son ejecutadas por un software que las interpreta y que programación. Python permite dividir programas en módulos permiten realizar acciones para automatizar tareas. que pueden ser reusados en otros programas escritos en Python y en otros lenguajes, pues viene con una amplia Los Sistemas de Información Geográfica (SIG) son colección de módulos predefinidos que pueden ser usados herramientas robustas pero en algunos casos requieren de como base para otros programas escritos en el mismo ciertas labores de personalización para agilizar diversas tareas, lenguaje. como lo son entre otras, las labores de geoprocesamiento, entendidas estas como el procesamiento de información Python es un lenguaje interpretado, lo cual ahorra tiempo geográfica en la cual se crea nueva información a partir de la pues no es necesario compilar. Este lenguaje no requiere ni ya existente aplicando una serie de operaciones. En estos obliga a la definición del tipo de dato de las variables, casos existen herramientas al interior de los software SIG que tampoco requiere escribir punto y coma(;) después de cada permiten realizar estas labores, pero en algunos casos estas se línea pero si es bastante delicado con la indentación pues los vuelven engorrosas o demoradas de ejecutar porque no se bloques de código requieren sangría de acuerdo a cómo estos adaptan del todo a las necesidades del usurario, debido a lo anterior, es necesario contar con un lenguaje de programación sean escritos. “incrustado” que permita realizar scripts para realizar estas tareas más fácilmente. El siguiente ejemplo ilustra la facilidad de uso de Python ArcGIS integra varios lenguajes de programación que permiten adaptarlo a las necesidades y requerimientos de sus usuarios, estos permiten realizar scripts o líneas de código sencillas que facilitan ciertas tareas pero algunos lenguajes
  • 2. 2 En el gráfico anterior se observa que no es necesario definir el Ahora vamos a crear un nuevo script, para esto vamos al menú tipo de variable incluso tampoco es necesario definir las File, New, Python Script y OK. variables, pues con solo escribir su valor y el operador se pueden obtener resultados de forma inmediata sin necesidad A continuación vamos a escribir el siguiente código: de compilar el código, esto permite utilizar a Python como una calculadora rápidamente. import win32com.client, sys, os El código anterior importa los módulos de las librerías estándar que van a ser utilizadas en el desarrollo del script. II. METODOLOGÍA win32com.client: Apoya la comunicación entre Pythom y En nuestro proyecto pretendemos explicar cómo a través de COM IDispatch. Python se pueden escribir sentencias de código que permiten realizar tareas de geoprocesamiento, para esto explicaremos COM IDispatch: habilita a los lenguajes interpretados en este artículo un script que permite cortar (clip) con un basados en texto utilizar objetos COM. shapefile uno o más shapefiles ubicados dentro de un COM posibilita reutilizar módulos y habilita la comunicación workspace y ubicar el resultado en una carpeta o workspace entre ellos. de salida, teniendo en cuenta un “cluster tolerance” o tolerancia de coincidencia. El modulo Sys permite ingresar información por parte del usuario. Para la elaboración de este script en python es necesario: El modulo OS provee facil acceso a la mayoría de las herramientas fundamentales del sistema operativo. A. Preparación de la información y de la herramienta Python Ahora vamos a crear el objeto geoprocesador, escribiendo la siguiente línea: En esta etapa emplearemos información correspondiente al tutorial de ArcGIS 9.2, ubicaremos los shapefiles de corte y a GP = ser cortados dentro de una carpeta o workspace llamada San win32com.client.Dispatch(quot;esriGeoprocessing.GpDispatch.1quot; Diego. Debemos tener instalado ArcGIS 9.0 o superior y ) verificar la versión de Python instalada y de acuerdo a esto descargamos e instalamos la herramienta PythonWin del En este objeto es donde están disponibles las herramientas de website de Python (Python.org), esta herramienta le agrega geoprocesamiento de ArcGi, las cuales usaremos para ambiente gráfico a Python, lo cual facilita las labores de realizar el script. escritura, compilación y depuración de errores a la hora de escribir código Python. Este script requiere de cuatro parámetros para funcionar por B. Escritura del script medio del siguiente código: El script lo vamos a escribir dentro del ambiente gráfico Pythonwin, para esto debemos ejecutarlo, lo encontramos instalado en inicio, todos los programas, Python 2.x, GP.workspace = sys.argv[1] Pytonwin. El anterior código requiere una carpeta o workspace donde están ubicados los shapefiles a ser cortados y el shape que los corta. clipFeatures = sys.argv[2]
  • 3. 3 El parámetro de la línea anterior es el shapefiele con el cual se hará el clip. Las siguientes líneas de código hacen el clip de los shapefiles outWorkspace = sys.argv[3] de las lista de shapefiles generada con anterioridad y verifican El parámetro de la línea anterior es el workspace de salida que si el shape con el cual se va hacer el corte está dentro del donde quedarán ubicados los shapes cortados. mismo workspace que los demás no sea tenido en cuenta para clusterTolerance = sys.argv[4] ser cortado con él mismo: El parámetro de la línea anterior es la tolerancia de corte y es opcional. if str(fc) != str(os.path.split(clipFeatures)[1]): GP.Clip(fc, clipFeatures, outFeatureClass, clusterTolerance) La sentencia siguiente, TRY define el comienzo de bloque de fc = fcs.Next() código que será manipulado por un manejador de except: excepciones, Python usa los bloques try/except para GP.AddMessage(GP.GetMessages(2)) manipular errores inesperados durante la ejecución. print GP.GetMessages(2) try: El script debe quedar como el siguiente, se puede comentar el La siguiente línea obtiene una lista de shapesfiles ubicados código anteponiendo el símbolo #(numeral): dentro del workspace previamente definido: C. Ejecución del script fcs = GP.ListFeatureClasses() Para su ejecución es necesario guardar el script, vamos al menú file, save as y le asignamos un nombre. La siguientes sentencias recorren la lista de shapefiles Para saber si el código tiene errores ya sea de escritura, de fcs.Reset() sintaxis o de indentación vamos a la barra de herramientas y fc = fcs.Next() damos clic en el ícono “check”, como se muestra a while fc: continuación: Las siguientes líneas validan el nuevo nombre de los shapefiles cortados y que serán puestos en el workspace de salida, el método ValidateTableName es usado para asegurar la validez del nombre y ruta de salida para el workspace de salid: outFeatureClass = outWorkspace + quot;/quot; + GP.ValidateTableName(fc,outWorkspace) Una vez revisados los errores, ejecutamos el script como mediante el ícono “Run” de la barra de herramientas como se muestra a continuación:
  • 4. 4 III. APLICACIONES PRACTICAS PYTHON Y LOS SIG Este lenguaje provee muchas opciones de integración dentro de los SIG, puesto que posee capacidades de plataforma cruzada y fácil integración con otros lenguajes como por ejemplo C, C++, FORTRAN y Java. Python posee una gran cantidad de librerías y herramientas desarrolladas para el trabajo con datos geográficos e integración SIG, ya que permite la manipulación de shapefiles y formatos raster, así como labores más sofisticadas como la interoperabilidad con ArcSDE, bases de datos y servicios Web. Para el trabajo con vectores python posee una librería “open source” llamada Shapelib la cual funciona con shapefiles; para el trabajo con elementos raster integra la librería (open source) GDAL que permite trabajar con diversos formatos como ArcInfo grids, JPEG 2000, BSP, United States Geological Survey digital elevation model, entre otros. GDAL en Luego aparece un cuadro de diálogo donde debemos ingresar combinación con Python tiene la facilidad para escribir los parámetros solicitados por el script y explicados operaciones de algebra de mapas y generar los resultados en previamente, para esto debemos escribir en “arguments” los formatos soportados. separado por un espacio la ruta del Workspace, la ruta con el shapefiel de corte, el workspace de salida y una toleracia, un Python es apropiado para el desarrollo web, pues este tipo de ejemplo de esto sería: desarrollo es mucho más rápido que con tecnologías como Java o .NET. Existen muchas herramientas disponibles para C:San_Diego C:San_Diegostudy_quads.shp desarrollo Web usando Python como Zope, MapServer, C:San_Diegosalida 1 Twisted, entre otros. La siguiente figura ilustra mejor lo anterior: IV. CONCLUSIONES Y RECOMENDACIONES - Phyton provee un completo conjunto de herramientas para GIS combinado con ArcGIS las posibilidades son casi ilimitadas. - La tecnología web está siendo soportada por Python facilitando las labores de programación de rico y amplio contenido web. - Los scripts permiten la automatización de tareas en muchos programas y son cada vez más fáciles de realizar por personal no programador. - Para la personalización de software es altamente recomendable leer la documentación contenida en los software, puesto que esta permite conocer todas las funcionalidades, librerías, clases, métodos, etc, así como todas las capacidades de personalización contenidas en los lenguajes de programación Dejamos lo demás por defecto y hacemos clic en OK. incrustados en estos. A continuación se ejecuta el script y corta los shapefiles. -
  • 5. 5 REFERENCIAS BIBLIOGRÁFICAS [1] C. Trucker, Writing Geoprocessing Scripts With ArcGIS, Redlands,CA: ESRI 2005, pp. 17–27. [2] M. Lie Hetland, Beginning Python: From Novice to Professional. Berkeley, CA: Apress, 2005. [3] H. Butler, AGuide to the Python Universe for ESRI Users, Iowa State University. [4] es.wikipedia.org. [5] http://www.tierradenomadas.com/diccionario.phtml?S