Cómo programar con ArcObjects y no morir en el intento - 3ª Parte
A partir de la versión 9 de ArcGIS Desktop, se incluye un nuevo entorno de geoprocesamiento, que incluye un objeto de alto nivel, llamado Geoprocessor, que permite automatización ActiveX. ¿Qué significa esto?. Pues que podemos utilizar TODA la funcionalidad proporcionada por ArcToolBox desde un lenguaje de script compatible con ActiveX. El más completo y potente es Python (http://www.python.org), que además es open source y multiplataforma. Python es un lenguaje interpretado orientado a objetos, lo cual nos dará mucha flexibilidad a la hora de programar macros complejas o incluso programas completos, orientados a la resolución de tareas repetitivas y procesos SIG.
Además, al no ser necesario abrir las aplicaciones de ArcGIS Desktop, el rendimiento de nuestras macros es muy superior.
Veamos un ejemplo.
Este ejemplo importa archivos .e00 de ArcInfo workstation a formato cobertura. Para ello busca todos los ficheros .e00 en un directorio (primer parámetro) y guarda el resultado en otro directorio (segundo parámetro).
Como se puede apreciar, es un lenguaje de tipado dinámico, por lo que no es necesario decirle a cada variable de qué tipo es, simplemente las declaramos. La declaración del objeto Geoprocessor siempre se hace de la misma forma (en la línea GP = win32com.client.Dispatch("esriGeoprocessing.GPDispatch.1"). En python además es muy importante el sangrado de código, para ello conviene utilizar alguno de los editores que existen para este lenguaje. IDLE, incluido con Python, puede ser suficiente para empezar, aunque conviene utilizar PythonWin si estamos en plataforma Windows, dadas sus características más completas.
Este tipo de archivos pueden ejecutarse directamente desde una consola, sin necesidad de abrir ArcGIS Desktop.
Además, al no ser necesario abrir las aplicaciones de ArcGIS Desktop, el rendimiento de nuestras macros es muy superior.
Veamos un ejemplo.
Este ejemplo importa archivos .e00 de ArcInfo workstation a formato cobertura. Para ello busca todos los ficheros .e00 en un directorio (primer parámetro) y guarda el resultado en otro directorio (segundo parámetro).
Como se puede apreciar, es un lenguaje de tipado dinámico, por lo que no es necesario decirle a cada variable de qué tipo es, simplemente las declaramos. La declaración del objeto Geoprocessor siempre se hace de la misma forma (en la línea GP = win32com.client.Dispatch("esriGeoprocessing.GPDispatch.1"). En python además es muy importante el sangrado de código, para ello conviene utilizar alguno de los editores que existen para este lenguaje. IDLE, incluido con Python, puede ser suficiente para empezar, aunque conviene utilizar PythonWin si estamos en plataforma Windows, dadas sus características más completas.
Este tipo de archivos pueden ejecutarse directamente desde una consola, sin necesidad de abrir ArcGIS Desktop.
5 Comments:
Felicitaciones por el blogg, aunque debo confesar que entendí sólo la cuarta parte de lo planteado. Soy Karla Gómez, recién titulada de Geografía de la Universidad Católica de Chile, y me encuentro realizando un postgrado en Geomática, y aunque aun no ingreso al "mundo laboral", me he dado cuenta que ya no vasta con tener un manejo de las herramientas que entregan los distintos SIG, sino cada vez son más las empresas que exigen conocimientos en programación, por lo que le agradecería enormemente que desde su perspectiva me diera unas pequeñas pistas de cuales son los pasos que debiera seguir.
Desde ya, le agradezco su respuesta, y me despido desde estas tierras.
Saludos
Karla Gómez
By only me, at 9:11 a. m.
En la actualidad estoy peleandome con el ArcObject, utilizo la versión 9.1 de ArcMap. Mi pregunta es si se puede llamar desde arcobject a un elemento del ArcToolBox. Yo programo en visual basic. ¿se podria integrar codigo python y visual basic?
Gracias.
meloville@gmail.com
By Melo, at 1:02 p. m.
Hola Carmelo,
Ambas cosas son posibles, sin duda. Date una vuelta por los foros de ESRI o por el EDN (http://edn.esri.com) y encontrarás quizás algún ejemplo de lo que buscas.
By Juan Marín Otero, at 7:58 p. m.
Ni idea de python,pero quiero arriesgarme...alguien tiene algun link para comenzar a desvariar...
By Elizabeth en el pais de los desencantados, at 1:01 a. m.
hola oscuridadtye@hotmail.com, me llamo marlon nesesito tu ayuda ;)
By Marlon Martos, at 6:21 p. m.
Publicar un comentario
<< Home