Piling On About Python

First and foremost, I am not a Python expert. I am not even sure I could effectively play one on TV. As I mentioned at the beginning of the year, I am trying to beef up my Python skills.

Secondly, what I have to say in this post isn’t particularly original or unique. Others have said it before.

So I am posting this because I have fielded some form of this question at least ten times (no exaggeration) in the past couple of months: “What skill do you recommend most for someone getting into GIS today?”

My answer, invariably, has become “Python.”

Python: The Swiss Army Knife of GIS programming
Python: The Swiss Army Knife of GIS programming

This may sound like a very programmer-centric answer, and it may be, but just today I got this in an e-mail from one of the senior GIS analysts with whom I work:

Looks like you were right. Can’t use field calculator to do what I’m trying to do. I’ll be writing a Python script.

He had been trying to use the ArcGIS Desktop field calculator to find the minimum value in a column. After a quick call to Esri, he confirmed that it didn’t work that way. Gone are the days when a GIS analyst can just sit down, double-click the icon of their desktop GIS of choice and accomplish everything they need to do solely with the use of WIMP. Truly effective analysts will need to do some scripting and that’s where Python comes in.

Python is a real language that can be used to build real, complex, enterprise-scale applications. It also happens to be very effective for scripting as well. In the Esri world, the thankful sunsetting of VBA leaves analysts with Python as the recommended way to accomplish that. That said, if you are entering the GIS field in 2011, you need to have Python in your arsenal. It simply positions you to work with a broad set of tools, such as:

ArcGIS
Quantum GIS
Mapnik
GDAL/OGR
Shapely
GRASS
PostGIS/PostgreSQL
WeoGeo
GeoDjango
And a host of others discussed here.
And more, I’m sure.

This list is not comprehensive nor is it intended to be. It is meant to show that, wherever you want to go, Python is probably already there. Some of the tools listed there are not strictly GIS tools but are designed to perform some component functions of GIS very well so interpret the list broadly. Also, this list doesn’t really touch upon python libraries that can help with commonly performed related tasks like statistical analysis (things like rpy, which interfaces with R via Python).

If it’s not obvious by now, I am becoming a Python convert and having a lot of fun in my explorations. I can’t think of another time in my career where one language has cut across such a wide array of tools. It makes me wish I could have all those years of AML back.