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?


17 Answers 17


This question has been converted to Community Wiki and wiki locked because it is an example of a question that seeks a list of answers and appears to be popular enough to protect it from closure. It should be treated as a special case and should not be viewed as the type of question that is encouraged on this, or any Stack Exchange site, but if you wish to contribute more content to it then feel free to do so by editing this answer.

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


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 https://github.com/elpaso/python-gis-workshop

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: https://www.packtpub.com/python-geo-spatial-development/book

I second Chris Garrard's materials at: http://www.gis.usu.edu/~chrisg/python/2009/

There are videos on general Python concepts and skills at Miro: http://python.mirocommunity.org/

Lots of good Python videos from PyCon at blip: http://pycon.blip.tv/


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.


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).


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: http://www.codecademy.com/

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


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.


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.


I am in a similar situation, trying to learn more about programming within an ArcGIS environment.

The best information is all online, learning through practice and examples. I have slowly increased my use of python and have successfully automated a whole number of tasks.

One website which I found extremely useful is https://www.codecademy.com/. It a free interactive website in which you can learn a whole variety of languages, Python being one.


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


Couresera - programming for everybody with charles severance: great easy intro to programming. chuck is great

Codeacademy - everyone recommends this site, it is good but i personally think it really only useful for practicing the actual code, not great for learning concepts.

Hackerrank - great website to do more practice problem at all levels

codingbat - more good logic problems

This is how I learned python in this order


I can add to the collection of online courses one that has beside the basic topics some more advanced examples. It is focused on python itself and therefore without GIS. It is availabe in english and german. I do like the examples and descriptions there and the fact that it does have the topics for python 2 and 3 as python 3 has some sublte changes and will be more present the next years(QGIS switching to python 3 with the upcoming version for example).


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