You are on page 1of 5

1

El lenguaje Python y su funcionalidad con los Sistemas de Informacin Geogrfica mediante ArcGIS 9.X
Bernardo Arango G., David Arenas H., Rafael Botero M.

Palabras clave: Geoprocesamiento, Python, script.


ResumenEste artculo relata la importancia y versatilidad de los scripts a la hora de automatizar tareas computacionales, enfocndolo a tareas de geoprocesamiento en los sistemas de informacin geogrfica (SIG), gracias a su integracin con el software ArcGIS. Para esta labor emplearemos el lenguaje de programacin Python el cual es muy fcil de aprender y de utilizar, adems de que viene integrado a ArcGIS desde la versin 9.0.

son muy complejos y requieren amplio conocimiento para desarrollar cosas sencillas. Desde la versin 9, Arcgis permiti la elaboracin de scripts de una forma rpida y sencilla, de tal manera que sus usuarios no requirieran ser programadores o tener destreza en programacin para realizar lneas de cdigo que les permitieran resolver problemas que ellos encontraran en su da a da con los SIG. Desde esta versin se incorpor en la instalacin de ArcGIS el lenguaje Python, el cual es muy sencillo y fcil de aprender, es un lenguaje abierto, orientado a objetos, adems de ser muy til para las labores de geoprocesamiento. Por estas razones encaminamos nuestro proyecto de la materia a este poderoso de lenguaje. Python no solamente es un lenguaje para escribir scripts, tambin posee soporte y estructura para realizar programas largos con muchas lneas de cdigo, es un lenguaje de muy alto nivel y ofrece muchos tipos de datos y el chequeo de errores es mucho ms sencillo que con otros lenguajes de programacin. Python permite dividir programas en mdulos que pueden ser reusados en otros programas escritos en Python y en otros lenguajes, pues viene con una amplia coleccin de mdulos predefinidos que pueden ser usados como base para otros programas escritos en el mismo lenguaje. Python es un lenguaje interpretado, lo cual ahorra tiempo pues no es necesario compilar. Este lenguaje no requiere ni obliga a la definicin del tipo de dato de las variables, tampoco requiere escribir punto y coma(;) despus de cada lnea pero si es bastante delicado con la indentacin pues los bloques de cdigo requieren sangra de acuerdo a cmo estos sean escritos. El siguiente ejemplo ilustra la facilidad de uso de Python

I.

INTRODUCCION

Las herramientas informticas en la actualidad realizan un sinnmero de funciones que requieren de mucho tiempo para aprenderlas a utilizar, a pesar de esto no hacen todas cosas que necesitamos ni cmo las necesitamos. Por estas razones este tipo de herramientas permiten su personalizacin para poder ser adaptadas por los usuarios a su forma de trabajo y a sus necesidades. Existe una manera rpida de personalizacin que es a travs de Scripts, stos son un conjunto generalmente corto de instrucciones o secuencias de cdigo sin compilar que son ejecutadas por un software que las interpreta y que permiten realizar acciones para automatizar tareas. Los Sistemas de Informacin Geogrfica (SIG) son herramientas robustas pero en algunos casos requieren de ciertas labores de personalizacin para agilizar diversas tareas, como lo son entre otras, las labores de geoprocesamiento, entendidas estas como el procesamiento de informacin geogrfica en la cual se crea nueva informacin a partir de la ya existente aplicando una serie de operaciones. En estos casos existen herramientas al interior de los software SIG que permiten realizar estas labores, pero en algunos casos estas se vuelven engorrosas o demoradas de ejecutar porque no se adaptan del todo a las necesidades del usurario, debido a lo anterior, es necesario contar con un lenguaje de programacin incrustado que permita realizar scripts para realizar estas tareas ms fcilmente. ArcGIS permiten usuarios, sencillas integra varios lenguajes de programacin que adaptarlo a las necesidades y requerimientos de sus estos permiten realizar scripts o lneas de cdigo que facilitan ciertas tareas pero algunos lenguajes

En el grfico anterior se observa que no es necesario definir el tipo de variable incluso tampoco es necesario definir las variables, pues con solo escribir su valor y el operador se pueden obtener resultados de forma inmediata sin necesidad de compilar el cdigo, esto permite utilizar a Python como una calculadora rpidamente.

Ahora vamos a crear un nuevo script, para esto vamos al men File, New, Python Script y OK. A continuacin vamos a escribir el siguiente cdigo: import win32com.client, sys, os El cdigo anterior importa los mdulos de las libreras estndar que van a ser utilizadas en el desarrollo del script.

II. METODOLOGA En nuestro proyecto pretendemos explicar cmo a travs de Python se pueden escribir sentencias de cdigo que permiten realizar tareas de geoprocesamiento, para esto explicaremos en este artculo un script que permite cortar (clip) con un shapefile uno o ms shapefiles ubicados dentro de un workspace y ubicar el resultado en una carpeta o workspace de salida, teniendo en cuenta un cluster tolerance o tolerancia de coincidencia. Para la elaboracin de este script en python es necesario: A. Preparacin de la informacin y de la herramienta Python En esta etapa emplearemos informacin correspondiente al tutorial de ArcGIS 9.2, ubicaremos los shapefiles de corte y a ser cortados dentro de una carpeta o workspace llamada San Diego. Debemos tener instalado ArcGIS 9.0 o superior y verificar la versin de Python instalada y de acuerdo a esto descargamos e instalamos la herramienta PythonWin del website de Python (Python.org), esta herramienta le agrega ambiente grfico a Python, lo cual facilita las labores de escritura, compilacin y depuracin de errores a la hora de escribir cdigo Python. B. Escritura del script El script lo vamos a escribir dentro del ambiente grfico Pythonwin, para esto debemos ejecutarlo, lo encontramos instalado en inicio, todos los programas, Python 2.x, Pytonwin. win32com.client: Apoya la comunicacin entre Pythom y COM IDispatch. COM IDispatch: habilita a los lenguajes interpretados basados en texto utilizar objetos COM. COM posibilita reutilizar mdulos y habilita la comunicacin entre ellos. El modulo Sys permite ingresar informacin por parte del usuario. El modulo OS provee facil acceso a la mayora de las herramientas fundamentales del sistema operativo. Ahora vamos a crear el objeto geoprocesador, escribiendo la siguiente lnea: GP = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1" ) En este objeto es donde estn disponibles las herramientas de geoprocesamiento de ArcGi, las cuales usaremos para realizar el script. Este script requiere de cuatro parmetros para funcionar por medio del siguiente cdigo:

GP.workspace = sys.argv[1] El anterior cdigo requiere una carpeta o workspace donde estn ubicados los shapefiles a ser cortados y el shape que los corta. clipFeatures = sys.argv[2]

3 El parmetro de la lnea anterior es el shapefiele con el cual se har el clip. outWorkspace = sys.argv[3] El parmetro de la lnea anterior es el workspace de salida donde quedarn ubicados los shapes cortados. clusterTolerance = sys.argv[4] El parmetro de la lnea anterior es la tolerancia de corte y es opcional.

Las siguientes lneas de cdigo hacen el clip de los shapefiles de las lista de shapefiles generada con anterioridad y verifican que si el shape con el cual se va hacer el corte est dentro del mismo workspace que los dems no sea tenido en cuenta para ser cortado con l mismo: if str(fc) != str(os.path.split(clipFeatures)[1]): GP.Clip(fc, clipFeatures, outFeatureClass, clusterTolerance) fc = fcs.Next() except: GP.AddMessage(GP.GetMessages(2)) print GP.GetMessages(2) El script debe quedar como el siguiente, se puede comentar el cdigo anteponiendo el smbolo #(numeral): C. Ejecucin del script Para su ejecucin es necesario guardar el script, vamos al men file, save as y le asignamos un nombre. Para saber si el cdigo tiene errores ya sea de escritura, de sintaxis o de indentacin vamos a la barra de herramientas y damos clic en el cono check, como se muestra a continuacin:

La sentencia siguiente, TRY define el comienzo de bloque de cdigo que ser manipulado por un manejador de excepciones, Python usa los bloques try/except para manipular errores inesperados durante la ejecucin. try: La siguiente lnea obtiene una lista de shapesfiles ubicados dentro del workspace previamente definido: fcs = GP.ListFeatureClasses() La siguientes sentencias recorren la lista de shapefiles fcs.Reset() fc = fcs.Next() while fc: Las siguientes lneas validan el nuevo nombre de los shapefiles cortados y que sern puestos en el workspace de salida, el mtodo ValidateTableName es usado para asegurar la validez del nombre y ruta de salida para el workspace de salid: outFeatureClass = outWorkspace 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 continuacin:

4 III. APLICACIONES PRACTICAS


PYTHON Y LOS SIG

Este lenguaje provee muchas opciones de integracin dentro de los SIG, puesto que posee capacidades de plataforma cruzada y fcil integracin con otros lenguajes como por ejemplo C, C++, FORTRAN y Java. Python posee una gran cantidad de libreras y herramientas desarrolladas para el trabajo con datos geogrficos e integracin SIG, ya que permite la manipulacin de shapefiles y formatos raster, as como labores ms sofisticadas como la interoperabilidad con ArcSDE, bases de datos y servicios Web. Para el trabajo con vectores python posee una librera open source llamada Shapelib la cual funciona con shapefiles; para el trabajo con elementos raster integra la librera (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 combinacin con Python tiene la facilidad para escribir operaciones de algebra de mapas y generar los resultados en los formatos soportados. Python es apropiado para el desarrollo web, pues este tipo de desarrollo es mucho ms rpido que con tecnologas como Java o .NET. Existen muchas herramientas disponibles para desarrollo Web usando Python como Zope, MapServer, Twisted, entre otros.

Luego aparece un cuadro de dilogo donde debemos ingresar los parmetros solicitados por el script y explicados previamente, para esto debemos escribir en arguments separado por un espacio la ruta del Workspace, la ruta con el shapefiel de corte, el workspace de salida y una toleracia, un ejemplo de esto sera: C:\San_Diego C:\San_Diego\study_quads.shp C:\San_Diego\salida\ 1 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 tecnologa web est siendo soportada por Python facilitando las labores de programacin de rico y amplio contenido web. - Los scripts permiten la automatizacin de tareas en muchos programas y son cada vez ms fciles de realizar por personal no programador. - Para la personalizacin de software es altamente recomendable leer la documentacin contenida en los software, puesto que esta permite conocer todas las funcionalidades, libreras, clases, mtodos, etc, as como todas las capacidades de personalizacin contenidas en los lenguajes de programacin incrustados en estos. -

Dejamos lo dems por defecto y hacemos clic en OK. A continuacin se ejecuta el script y corta los shapefiles.

5 REFERENCIAS BIBLIOGRFICAS

[1]

C. Trucker, Writing Geoprocessing Scripts With ArcGIS, Redlands,CA: ESRI 2005, pp. 1727. M. Lie Hetland, Beginning Python: From Novice to Professional. Berkeley, CA: Apress, 2005. H. Butler, AGuide to the Python Universe for ESRI Users, Iowa State University. es.wikipedia.org. http://www.tierradenomadas.com/diccionario.phtml?S

[2]

[3]

[4] [5]

You might also like