- Prime Student members get £10 off with a spend of £40 or more on Books. Enter code SAVE10 at checkout. Enter code SAVE10 at checkout. Here's how (terms and conditions apply)
Python Geospatial Development Paperback – 14 Dec 2010
|New from||Used from|
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
There is a newer edition of this item:
Special offers and product promotions
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
About the Author
Erik Westra has been a professional software developer for over twenty five years and by choice has worked almost exclusively in Python for the past decade. Erik's early interest in graphical user-interface design led to the development of one of the most advanced urgent courier dispatch systems used by messenger and courier companies worldwide. In recent years, Erik has been involved in the design and implementation of systems matching seekers and providers of goods and services across a range of geographical areas. This work has included the creation of real-time geocoders and map-based views of constantly changing data. Erik is based in New Zealand, but works for companies worldwide.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The next section explains how to use a number of Python GIS libraries such as GDAL/OGR, PyProj, and Shapely. The author starts with a general description of the capabilities of each library, and continues with a `cookbook-style' approach showing how to do various tasks with these libraries. For example, instructions are given for how to convert projections and calculate Great Circle Distances with PyProj, how to extract shape geometries and attributes from shapefiles using OGR and how to do basic GIS analysis with Shapely. Details are given on joining these libraries together to exchange data between them using the very useful Well-Known Text (WKT) format - a format that I hadn't come across, but which appears to be very useful. This section finishes by putting together a number of these libraries to do some real-world tasks such as identifying parks near urban areas.
The third section focuses on geodatabases - an area I know very little about. This section gives a good overview of the concept of a geodatabase, and then specific details about three geodatabases: PostGIS, MySQL and SpatiaLite. I was pleased to see that three contrasting databases were chosen, and a good listing of advantages and disadvantages of each was given. After introducing the workings of these databases, code examples for linking them to Python are given, starting from basic queries and going right up to complex spatial analysis performed within the database. A geospatial application (called DISTAL) is then implemented, showing how to combine geodatabase access with the GIS analyses explained in the previous section. This is implemented as a web-application, but previous experience with web programming is not needed as it is implemented using simple Python CGI scripts, and there are sidebars explaining terms that the reader may not have come across before.
The fourth section is by far the most complicated, and deals with producing maps using a library called Mapnik and producing geo-enabled web-applications using GeoDjango. I must admit that I didn't quite follow all of this chapter, although this is probably because I'm not hugely interested in, or experience with, building web-apps. In some ways a little too much emphasis is made of how to do things using Django - and trying to introduce any web-app framework (be it Django, Ruby on Rails, or anything else) in one chapter is a tall order - and not enough on the GIS, but I can see why the author included it - as it brings together a fair amount of the tools covered in the book into one coherent whole.
Overall, I'm very impressed with this book. If I had my way (and you never know, if I end up as a lecturer one day I might...), I'd make Chapter 2 part of the core reading for any GIS course, as I am completely shocked that it covers areas that I have never covered even when doing Advanced GIS courses at degree level! I should mention that as well as the chapters mentioned above there is a useful chapter on sources of geospatial data (which, again, mentioned sources that I'd not heard of), and a comprehensive index which makes it very easy to find things. The instructions on how to use the Python libraries (and, more importantly, how to join them together) are well-written and comprehensive and the introductions to GIS concepts are pitched at just the right level. I would thoroughly recommend this book for any GIS or geospatial data user for two main reasons: firstly, it gives great introductions to GIS concepts they may not have come across, and secondly, knowing how to do these things in Python can make certain jobs so much easier (how about a 10 line Python script rather than a few hours of repetitive data conversion).
The integration of Google maps in almost everything from telephone directories to pizza ordering services and on-line news services shows that there is a huge appeal to providing relevant geographical information in all sorts of contexts. But where do you start if you want to develop such functionality in Python? This book is certainly an excellent starting point.
Erik covers basically any subject from necessary geometrical concepts like units, datums and projections, just to get you started, to where to get the needed Python libraries and more importantly where to source good basic data like maps, positions of cities, shapes of countries and shorelines, etc, preferably from free sources. As geographical information used to be hard to get and often expensive, this attention to data sources is a very valuable part of the book. I particularly liked his extensive coverage of the collaborative Open Streetmap project ([...]), an extensive source of geographical data collected by a host of people around the world.
With these resources at hand the next steps are directed to manipulating geospatial data and generating all sorts of maps. The storage of data in databases with specific geospatial extensions to handle large datasets is covered in depth with specific examples for PostGIS, MySQL ans Sqlite. Also the rendering of maps is explained in a detailed manner focusing on the Mapnik library ([...]).
The final part of the book is dedicated to developing a web application to work interactively with map data. As performance is a key issue when working with large maps, even the implementation of a caching tile server (a server that generates small parts of a map on demand as you browse and zoom over the map) is implemented and explained in detail.
All in all a near perfect book for everybody who wants to start developing map based applications. Its solid coverage, excellent reference material and detailed explanations certainly make it a five out five for me.
Even though there's a lot of python GIS documentation and tutorials on the web, this well-structured book is valuable because it brings the important information together in a concise way. I'll make sure new developers on my geo-projects read this first.
Most helpful customer reviews on Amazon.com
First, a serious problem with the Kindle edition needs mention. The book is written using Python code almost exclusively. But the Kindle doesn't format this code properly. There is no indentation - crucial for Python both in terms of readability and syntactically. Reading through examples that are more than two or three lines long is painfully awkward; longer examples are impossible to follow. You can download most of the code, but the code as found in the Kindle edition is worse than worthless.
Coverage of topics is, at best, superficial. Most of the chapters claiming to provide background on the foundations of geospatial science are very weak, and consist of nothing more than a listing of tools and libraries, with web site addresses offered along with advice to go there for any actual information.
A disturbing number of the Python examples, even the short ones that don't suffer from the aforementioned formatting problems, contain gross errors and will not run as written. Function names are spelled incorrectly, scoping qualifiers are omitted where they are required or are simply wrong. Claims of the author's expertise with Python are questionable, given the low quality of the examples. A comparison between Python and C++ early on in the book, purporting to show Python's superiority, clearly demonstrates the author's lack of knowledge about C++ - the example is written in C - and the difference between a language and its support libraries.
Overall, you can gain far more knowledge on just about any geospatial topic with a few minutes worth of web searching than you ever will from reading this book. Spend your money elsewhere.
Most importantly to me was the section of different data sources and formats, and how to integrate them into your projects using .shp files and PostGIS. It makes rendering geospatial data trivial for even the newbie programmers (which I am not, however).
I wouldn't recommend the Kindle book for the reason that I have had problems before in the past with code not displaying properly on them. The only reason I took one star off of my review is that I feel the paperback version is a bit overpriced seeing as this text was published in 2010 and many advancements have taken place since then.