Review: Python Geospatial Development - Second Edition

First off, I really liked this book and I found it quite interesting. Second, it is very obvious this book is written by a somebody coming from a more technical background, discovering GIS from this front. As a result, this likely is who is going to get the  most from this book. As with previous reviews, yes, Packt gave me a copy to review.

If you have looked at my blog, it is obvious I tinker with Python a bit. I play with Python quite a bit in conjunction with ArcGIS and like to figure out solutions to other problems using Python as well. GIS is something I discovered through formal training in Natural Resource Management. The technical side of GIS I have learned through experience and necessity. This should frame my background coming into this book.

Digging into this book, I had to spend quite a bit of time doing side research to understand some of the code structures being used. This in no way was a bad thing. These coding methods would likely be common sense to anybody who has had formal training in development. Since I have not, I had to do my homework to understand many of the examples.

If you are approaching this text from a more development-centric perspective, there is only one chapter devoted to GIS and spatial concepts such as how projections, datums, and transformations work, different ways distance can be calculated and how distortion affects results. With my background being in GIS, all of this was a given. However, if your background in GIS is Google Maps, you may have to do some on-the-side homework to get your head wrapped around these concepts.

Given my perspective, a GIS professional, I tried to think of how this would be most useful to a GIS professional. After all, there is a massive amount of really good information here you cannot find anywhere else with such clear explanations of how to get so many technologies working together. True, there are GIS professionals out there not working in the Esri ecosystem. However, a vast majority do.

In the interest of full disclosure, yes, I do work for Esri. I work for Esri because even given the criticisms, the spatial tools Esri produces are the easiest to use and provide more power and capabilities than anything else out there. The tools discussed in this book are also very powerful and useful.

I do not view closed and open source as mutually exclusive. Rather, I try to approach them as complimentary. From this perspective, I was very interested in the discussion of SQLite with SpatiaLite and PostGIS in chapter six. ArcGIS 10.2 uses SQLite for import/export to the mobile API's and also can natively read and write data stored in Postgre SQL with the PostGIS extension. Although I have not tried it, it may be possible to store the data in one of these databases, interact with it using ArcGIS and also provide a web application developed using Django to provide a web application for interacting with the data as discussed in chapter nine.

In conclusion, I found the book hugely interesting, clearly lying out the path for combining a large number of open source technologies. Speaking from experience, this is not easy to do. This text does a decent job of lying out the path and providing line by line code examples. I was even able to follow them using a virtual machine running Ubuntu desktop, finding most of what I needed in the repositories.

My guess is most people interested in this text will find something very useful in it. If more a developer with no prior experience in GIS, you likely will eat up most of the book. If more of a GIS professional, you likely already have ArcGIS Desktop available and will likely be more interested in the later chapters discussing how to use different spatial databases and tie it in with a Django application.