Saturday, May 8, 2010

PostGIS in Action

As an enthusiastic user, advocate and sometimes even developer on the PostGIS project, I'm always happy to see new material hit the market to help curious newbies figure out where to start. Unlike client applications where a "download it and try it out" approach works with many users, a database extension is a bit harder to simply poke with a stick and see how it responds. This is why I was excited to get a copy of PostGIS in Action by Regina O. Obe and Leo S. Hsu.

My initial impression of the book is that it fills the niche I had for it beautifully. Regina is an active member of the PostGIS community responsible for much of our documentation and many questions answered, so it came as no surprise to me that the early chapters of the book provided a smooth and well constructed introduction to the fundamental concepts of spatial data and data modeling. With many hands-on examples, new users are guided through the concepts in an interactive and results-focussed manner. Even the two chapters on spatial functions cover the what a function does without losing sight of the question of why you would want it. Follow those up with one of the clearest discussions on spatial reference systems I've ever seen, and you're holding in your hand the most thorough and approachable introduction to PostGIS I've yet to see.

But wait, it gets better. After the introductory half of the book takes you through what PostGIS is, what it information it stores and what you can do with it, you move on to the nitty-gritty of actually getting stuff done. Starting with the apropos subject of loading and exporting data, you are presented with an objective comparison of a handful of freely available, easy to use tools to get the job done. Once the data is loaded, the book progresses into in-depth discussion of a number of problems that are common, but difficult.

The same approach used for the beginner is applied with great success in the more advanced sections as well. For example, the Proximity Analysis problem is presented in clear and simple terms and then broken down into four sections covering different aspects of the problem. Each section clearly lays out how the problem is approached, common mistakes to beware of and one or two short, clear examples solving the problem. Similarly, a substantial section on performance considerations runs the gamut between the standard indices and key definitions to the more specialized tweaks including geometry generalization and query rewriting. These two sections alone make this a must-have reference for veteran PostGIS users.

The book is rounded out with sections on extensions to PostGIS and desktop GIS applications supporting it. A handful of appendices provide even more detail, including a handy SQL Primer that is worthy of publication unto itself.

PostGIS in Action is rather difficult to view as a single resource. It is in part an elegant introduction to an difficult domain. It is part analysis of advanced spatial data manipulation. Part is a clearly organized and written reference manual. What truly unifies this book is the clarity and purpose of writing. Wherever the subject matter becomes abstract or difficult to grasp the authors have gone to great lengths to break the problem down into attainable steps, providing clear and patient guidance throughout. Whatever your competence with spatial data, or databases in general, there's plenty you will learn from this book.