Python : el lenguaje que los geomáticos deberían priorizar

El año pasado pude ser testigo de cómo mi amigo “Filiblu” debió dejar por un lado su programación Visual Basic for Applications (VBA) con el que se sentía bastante cómodo, y remangarse la camisa aprendiendo Python desde cero, para desarrollar una adaptación del plugin “SIT Municipal” sobre QGIS.  Es una aplicación que ha está quedando nítida, y de la cual apenas fui diseñador funcional porque no estuve hasta el momento que ahora lleva.  Luego de conversaciones sostenidas en aquel momento con Fili y recientemente con Nan de Perú, que lleva ya algunos meses desoxidándose con un curso de Python, nos planteamos este post, pensando en qué tan importante se ha vuelto Python como lenguaje en este mundo de los Sistemas de Información Geográfica.

El tema por sí mismo podría parecer irrelevante, sobretodo para los que se llevan ‘codeando’ hace mucho tiempo con este lenguaje. Revisando en los tópicos de Geofumadas, apenas unos 16 artículos hacen referencia a Python, y casi como complementario de diversas discusiones.  Pero como ya lo hemos dicho antes, los geomáticos de estos tiempos, deben dominar el desarrollo de aplicaciones, no necesariamente porque se dedicarán a programar, sino porque es urgente que se pueda entender el alcance y saber conducir o supervisar desarrollos informáticos en materia geoespacial.

Ciertamente el lenguaje creado por Guido van Rossum ha ido posicionándose en segmentos cada vez mas preponderantes. Revisando el articulo de Stephen Cass publicado en IEEE Spectrum encontramos que Python ocupa en la actualidad el primer lugar del ranking, cuando de lenguajes de programación top se habla, aunque ya Forbes nos había adelantado algo similar.  Claro que ahora,  en su versión 3, se presenta ya consolidado en relación a su lejana presentación pública en 1991. Y aunque siento que, en aras de la objetividad, no debo explayarme en las bondades de Python frente a otros lenguajes, no puedo dejar de acotar la preferencia que he adquirido por Python, tanto por su característica multi – propósito como su flexibilidad y la experiencia vivida de ver un programador adecuarse con mucha facilidad a este lenguaje, prefiriendo ahora hacer las aplicaciones sobre Python pese que amaba su total dominio sobre VBA.

Cuando hablábamos esto con Nan, revisando los foros sobre SIG, encontramos que los programadores se preguntaban sobre el tema. Si pasamos a cadenas en gis.stackexchange encontramos que, lamentablemente, muchos de los enlaces indicados están inactivos; lo cual, sin embargo, no quita el ser punto de partida en nuestra reflexión. La pregunta desarrollada allí fue:

“En tu opinión, ¿cuál es el mejor libro/sitio para aprender Python si tienes en mente como objetivo el trabajo en SIG?

Por ‘mejor’, se quiso decir:

  • no muy largo (libro)
  • fácil de entender (libro/sitio)
  • buenos ejemplos prácticos (libro/sitio)”

Me gustaría iniciar la discusión separando ‘sitios’ de ‘libros’. Luego que mi conversación casi freudeana con Nan,  hemos llegado a pensar que sería más orientador. Empezamos, entonces con los ‘sitios’:

1. Todo depende del ‘level’

Comprendemos que no es lo mismo ser un principiante que un ‘experto’. Si recién se toma contacto, nada mejor que centrarse en el lenguaje y luego, en la especialidad. Por ello,  cuando encontramos tres respuestas (que suman 9 votos) señalando a Codecademy pienso en los ‘newbies’, ya que este sitio permite de una forma bastante sencilla introducirnos en el mundo Python o de cualquier lenguaje que deseemos aprender.

En segundo lugar, ya en un nivel intermedio, se encuentra Coursera. Esta plataforma MOOC ofrece cursos que abarcan diferentes areas. En particular nos referimos al ciclo de cursos (5 en total) ‘Python for Everybody’ a cargo del simpático Charles Severance. Quien haya llevado la secuencia con ‘Dr. Chuck’, reconocerá como nos guía muy diestramente conforme se avanza en el nivel de dificultad curso a curso.

Otro curso de nivel intermedio, cuyo libro posee el mismo nombre del sitio es: Learn Python The Hard Way. 52 ejercicios que cubren los diferentes temas. Zed Shaw tiene su fanaticada sin lugar a dudas.  ¡44 votos para el libro!

Claro que no podía faltar quienes se apegan a la ‘biblia’ del lenguaje. Esta respuesta con 10 votos nos muestra que revisar siempre el sitio oficial no deja de ser una buena alternativa de consulta.

Ya en menor escala aparecen Hackerrank, CodingBat, Real Python o este. Hay para todos los gustos, pero no está demás darle un vistazo.

2. Los libros para formación básica

La oferta aquí también es dispersa. Cada uno termina acomodándose mejor con un libro en particular. Sin olvidar el votadísimo ‘Learn Python The Hard Way’ encontramos uno de similar aceptación: ‘How to Think Like a Computer Scientist’ (descarga gratuita)

Menos votados encontramos a ‘Dive into Python’ (10 votos y también descarga gratuita) y, finalmente con 4 votos, el libro de Hans Petter Langtangen, ‘A Primer on Scientific Programming with Python’, que puede ser encontrado en Amazon.

3. SIG y Python. La especialización

Llegó el momento esperado. Y a decir verdad, la información brindada por el foro GIS nos deja en orfandad debido a sus enlaces inactivos. No es despreciable, lo que ofrece GisGeography como alternativas gratuitas.  Aunque a mi parecer, en este tema conviene invertir en un buen curso para iniciarse.  Luego las soluciones gratuitas o libros nos darán mayor solidez.

En nuestro contexto hispano, y específicamente sobre aplicaciones GIS sobre Python, yo recomendaría casi con los ojos cerrados a tres sitios amigos de nuestra blógsfera geofumada:

En caso de cursos en idioma inglés, para el nivel inicial nos aconsejan los siguientes sitios:

  • Programming Foundation with Python (en Udacity) – Ups, este es general, pero lo agregamos como un extra. Para codear en Python aprendiendo de forma activa y gratis.  Visitar.
  • GEO485 GIS Programming and Automation (Penn State Open CourseWare) – Se aprende Python y como automatizar tareas SIG en Esri ArcGIS desktop. Visitar. (3 votos en nuestro antiguo foro).

También básicos pero con mucho mayor información:

  • Python Geo-Spatial Development. Viejito pero interesante, no en vano obtiene 23 votos de calificación.
  • El GIS programming Fundamentals (GIS540) de la NC State University obtiene 4 votos. Parece, efectivamente con mayor información que el de Penn State.
  • Un portal con mucha información. GIS LOUNGE proporciona una amplia gama de artículos, noticias, cursos y demás información. Sus 44 votos respaldan las preferencias de los usuarios.

En mi experiencia, los cursos en línea son orientadores, en los que se aprende a perderle el miedo, se hacen ejercicios guiados, se interactúa con compañeros y maestros; pero al finalizar el curso, si se quiere tomar en serio el tema y llevarlo a nivel dedicado, conviene comprarse un buen libro.  En este aspecto, se nos proporciona una lista para revisar con calma:

Con 13 votos aparece Python Geospatial Development para empezar a construir aplicaciones desde cero usando SIG Open Source. Un buen inicio.

  • Python Scripting for ArcGIS (Esri) – Para crear herramientas de geoprocesamiento personalizadas y aprender como escribir código python en ArcGIS. Se puede descargar y ejercicios a través de Esri. Aparece en la bibliografía del curso de Penn State.

¿Todavía interesado en aprender ArcPy? Aquí una lista de recursos para investigar.

Y finalmente nos muestran una pequeña lista de libros de Packthub, que me parecen interesantes:

En conclusión, pese que algunas maestrías sobre temas geoespaciales continúan enseñando Visual Basic como lenguaje genérico para no informáticos, realmente la tendencia debería ser Python.  Lo que queda por hacer, si esto ha despertado interés es comenzar a revisar, revisar y revisar. Somos conscientes de que esto es solo una primera aproximación al tema. ¡Ahora, manos a la obra!

geograficas a utm 2

Tagged with 

Deja un comentario

Tu dirección de correo electrónico no será publicada.