Son varias las personas que por un motivo u otro nos han preguntado a lo largo del tiempo acerca de la creación y edición de scripts en Python, sobre todo en relación a su utilidad en la elaboración de proyectos medioambientales y a las herramientas de edición que utilizamos en Alburen, por lo que ese será el objeto de este post.

Para el que no lo sepa, Python es un lenguaje de programación con muchos años a sus espaldas, pero que se caracteriza por su sencillez y por una relativamente cómoda curva de aprendizaje, aunque como todo en esta vida es más que nada una cuestión de dedicarle tiempo.

print («Hola mundo»)

Esta sencillez, pero a la vez gran potencial, unido a la cantidad de librerías y aplicaciones disponibles, lo han convertido en el lenguaje de programación más importante en el mundo de los sistemas de información geográfica, como ArcPy de ESRI, PyQGIS, Jython en gvSIG, etc.

¿De verdad es necesario saber programar en Python?

Imprescindible no es, pero después de utilizarlo durante años he de reconocer que es de gran utilidad y que son muchas las situaciones en las que permite agilizar e incluso automatizar el trabajo, sobre todo el de tipo repetitivo.

Según el nivel de conocimientos que alcances, podrías llegar a crear tus propias herramientas y plugins con los que realizar tu trabajo o, con unos conocimientos más básicos, podrás al menos personalizar y adaptar scripts que otras personas han creado para tareas parecidas y que fácilmente puedes encontrar online.

Esa es precisamente otra de las grandes ventajas del lenguaje Python, que son innumerables los usuarios del mismo a nivel mundial, lo que facilita su aprendizaje, difusión y encontrar recursos útiles y de interés en una comunidad de usuarios en continuo crecimiento.

Python para nosotros

Como consultoría medioambiental, una parte muy importante de nuestro trabajo se desarrolla a través de sistemas de información geográfica, como pueden ser la creación de mapas en los proyectos y estudios que realizamos, creación y edición de información con componente geográfica, como estudios de fauna o flora, etc.

Algunos proyectos, como la evaluación ambiental de planes, programas o proyectos, implican además la necesidad de definir lo que se denomina un «ámbito de estudio», dentro del cual se analizan los diferentes factores y variables medioambientales presentes, por lo que la primera etapa en dichos trabajos supone la necesidad de cortar decenas de capas de información geográfica utilizando dicho ámbito.

layered_map_flat

Otro caso muy común también en nuestro campo de trabajo es conseguir encontrar en una zona determinada, como por ejemplo dentro de un municipio, una superficie de terreno que cumpla una serie de criterios, como cercanía a determinadas infraestructuras, suelos con cierta pendiente, orientación o altitud, alejados de elementos de interés naturalístico o de figuras de protección medioambiental, con cierto tipo de vegetación o que ésta presente un estadio maduro, etc.

geo-2016-0028-fig03

Estos son sólo un par de ejemplos, y por supuesto que el trabajo se puede realizar de forma manual, capa a capa y geoprocesamiento a geoprocesamiento, pero es en este tipo de tareas donde la programación en Python y la posibilidad de disponer de herramientas y scripts que automaticen el trabajo se hace tan interesante y donde el ahorro en tiempo y esfuerzo se hace más evidente.

Editores de Python

Para crear o editar un archivo en Python, tan sólo es necesario disponer de un editor de texto plano, como el Bloc de Notas, aunque sin duda resulta de ayuda disponer de herramientas específicas que faciliten la escritura, visualización y detección de errores.

Es aquí donde entran los entornos de desarrollo integrado o integrated development environment (IDE) en inglés, algunos específicos de Python y otros más generales y válidos para diferentes lenguajes de programación.

A lo largo del tiempo hemos trabajado con diferentes editores y entornos, y los que más nos han gustado son:

PyCharm: es el más completo y fácil con el que trabajar, con un entorno dedicado exclusivamente a Python y por lo tanto una excelente integración con él.

python_pycharm
Eclipse + PyDev: una excelente combinación, la de integrar pydev en el editor Eclipse, éste último diseñado y especialmente utilizado para lenguajes como Java o C++

python_eclipse_pydev
Sublime Text 3 + Anaconda: esta potente IDE permite incorporar infinidad de herramientas y paquetes que facilitan el trabajo cotidiano al programador, y permite integrar en él Python, bien de forma nativa o mediante un paquete denominado Anaconda, que aporta algunas facilidades.

python_sublimetext
Notepad++: Es un simple editor de texto, pero permite configurarlo para resaltar el código de diferentes lenguajes de programación, incluyendo Python.

python_notepad
IDLE de Python: Es la herramienta o entorno que viene por defecto con Python y con la que también es perfectamente viable la creación o edición de scripts.

python_idle

¿Con cuál me quedo?

Para gustos, los colores, y más en entornos de programación. Además, éstas no son más que una pequeña muestra de la gran cantidad de editores e IDEs que hay para Python u otros lenguajes.

Nosotros principalmente utilizamos la combinación de Notepad++ como editor de archivos, ejecutándolos directamente a través de la IDLE de Python, bien pegando el código cuando éste es sencillo o bien lanzando el archivo desde el shell.

Para scripts más complejos, recomendamos PyCharm, una solución muy potente y con una excelente integración de Python, así como facilidades para detectar errores en el código.