Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In your opinion, what is the best book/site to learn Python with GIS goals in mind?

By "best", I mean:

  • not very long (book)
  • easy to understand (book/site)
  • good practical examples (book/site)

For answers specific to learning how to use the ArcPy site-package for Python to customize ArcGIS for Desktop there is a separate Q&A: What are some resources for learning ArcPy?


locked by PolyGeo Aug 27 '15 at 9:24

This question's answers are a collaborative effort: if you see something that can be improved, just edit the answer to improve it! No additional answers can be added here

I agree, if the question was rephrased "useful GIS resources for programming in Python + general resources for learning python with GIS goals in mind" or something similar I think would be more on topic. – Andy W Oct 27 '10 at 19:59

15 Answers 15

up vote 38 down vote accepted

Edit: adding more links to GIS specific resources.

For straight python, his has been discussed thoroughly on Stack Overflow:

The second link has a link to the latest edition of a book I loved when learning python How to Think Like A Computer Scientist: Learning With Python

Finally, I throw in a plug for Zed Shaw's learn python book: Learn Python the Hard Way.

+1 for Zed Shaw! I am in the middle of Learn Python the Hard Way and I am learning more then I ever had in any of my prior classes/books. Really great place to start learning about programming for noobs. – Furlong Nov 9 '10 at 18:51

Try in an attempt to get back on topic :-)


We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

Nice, Python, GIS and open source :) – underdark Oct 28 '10 at 7:03
Here is a small amount of course material I found for using Python with ArcGIS. I do not remember how I came across this site but I assume it is meant to be public. Not nearly as expansive as the website iant gives though. – Andy W Oct 28 '10 at 13:20

For Python GIS, see the FOSS4G 2010 python workshop and the corresponding slides

A good start, mainly oriented on Pylons framework and Geoalchemy, the two main components of Mapfish Server

Edit : Do a

git clone

see into the pdf all the links related to GIS for python and enjoy !


I am surprised that no one has mentioned the official Python tutorial. I have been working through it on and off for the past couple of years, and I have found it to be both simple and helpful.


It won't be released in paper form until December, but Erik Westra's 'Python Geo-Spatial Development' from Packt Press looks promising:

I second Chris Garrard's materials at:

There are videos on general Python concepts and skills at Miro:

Lots of good Python videos from PyCon at blip:


Dive Into Python. Good and free. Provides good intro to many basic Pythonic principles.

Here's a shameless plug for a article I wrote for ArcUser on geoprocessing with Python.

You'll have to purchase the hard copy these days; Mark Pilgrim took down his content when he committed infosuicide. – Brad Koch Mar 26 '13 at 21:37
@BradKoch - Interesting, looks like it's getting mirrored at – Chad Cooper Mar 26 '13 at 21:57

Take a look at "A Primer on Scientific Programming with Python‎" - Hans Petter Langtangen - 2009

With 693 pages it’s maybe a bit long, but it matches the other two of your requirements nicely. A preview is available at Google books


NC State's Master of GIS Programming course is available for free online. They cover more in my opinion than the Penn State course with some ESRI specifics (script tools).


The Penn State free course on Python and geoprocessing in ArcGIS is very easy to follow and is very much oriented towards ArcGIS users rather than developers, so you might like it.

And they recommend Python Scripting for ArcGIS by Dr. Paul Zandbergen – dumbledad Jan 8 at 16:06

Whilst this doesn't strictly relate to Python for GIS, the best resource I have found up to now for learning straight Python is Codeacademy, here:

Courses are well structured, with regular challenges and tasks to reinforce learning. Best of all, it's completely free.


New Edition Released: Python Geospatial Development The goal of the book is the provide Python developers with the knowledge needed in order to create mapping applications from start to finish using open source geospatial Python tools.


The website Python GIS Resources is a site that I run which hopefully provides exactly what this question asks for. On the website you will find:

  • A large and continually maintenanced index list of available GIS-related Python modules/packages/libraries, each with a short description, category, and link.

The website is meant to be a one-stop resource-hub for Python open-source GIS tools.

If there are any resources that are missing you can also contribute and help keep the website up-to-date by posting a reply somewhere or sending an email.


There is a great compilation of resources from a similar thread titled What are some resources for learning Python and arcpy? Here you will find links to everything from tutorials and free classes to books and blogs. This is really an excellent comprehensive resource!


I found the Real Python Course easy to follow and it covered a lot of topics and techniques that I would use as a GIS analysis. For example interact with PDF files, SQL database connections, interacting with the web, scientific computing and graphing and reading and compiling text files/csv. If I was to suggest a resource for learning Python to a GIS person, this would be my choice. Once they have an understanding of python, I would then suggest one of the resources listed above to further hone the GIS and python skill-set


Not the answer you're looking for? Browse other questions tagged or ask your own question.