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.

Tuesday, December 8, 2009

PostGIS Workshop

This has been too long coming, but I've finally sent my PostGIS workshop material out into the wild. This was presented at the FOSS4G conference in Sydney and has had minimal changes since then. Feel free to send me any comments or errata.

I would like to thank Mike and Paul from OpenGeo for their help, both with the material and during the workshop. It is always a pleasure to work with people that are professional, enthusiastic and willing to go the extra mile to make sure everyone leaves relatively happy.

Friday, October 23, 2009

FOSS4G 2009 - Day 4

The final day of the conference was a welcome relief for me. The only real trauma was Jody's GeoTools tutorial. At the beginning of the break as he was running off to the demo theater to get things going, he looked around the booth for his box of dvd's and print material and couldn't find it. After a quick pass over the booth myself, I ran to the tutorial room to make sure it hadn't migrated there and then tracked down Michael Bedward, Jody's partner in crime for the tutorial, to make sure he hadn't moved it. Of course he hadn't. So back to the booth to dig through every box in the place. It turned out it was in plain sight, but had been moved under the table and had some spare propaganda and a program dropped on the top to hide its true contents.

I managed to attend Andrea Antonello's presentation on jGRASS, which I thoroughly enjoyed, but had to flee before Silvia Franceschi's related presentation. Instead I attended Ben Caradoc-Davies talk on Application Schemas in GeoServer, which was a good talk in and of itself, but more review for me than I had hoped. Andrea Aime's talk on GeoServer in Production follow Ben and gave heaps of valuable information; much more that I had been able to scrounge up from the lists on my own.

The late-afternoon sessions were started with the WMS Shootout, which was presented in a lively and engaging manner by Andrea Aime and Jeff McKenna. The results are already posted and the whole shootout is in svn, reproducible by all and a great basis for ongoing performance comparisons. I wonder if this could be ported to DuckHawk.

The CCIP discussion was frankly a poor reflection on the good work that the CCIP actually did. I can't comment in much more detail, as I wasn't awake for all of it. The Sol Katz award was presented to the very deserving Daniel Morissette, who I was finally able to meet on Tuesday, and a passionate closing by Cameron Shorter to cap of the day.

The end of the conference was a strange feeling. So much work has been poured into it by so many people over the last year, most of it seemingly in the last month. With everything finished, and everything successful, I suddenly didn't know what to do with myself. I met some people for some meat and wine and the Meat and Wine Company. We deferred our plans to make a serious investment in wine for a day, since Jody and I were both in pretty poor shape. I went to sleep before 11pm for the first time in a month. Bloody hell that was nice.

But... what happened to day 3?

Day three was a long day for me. I was assisting Jody with a uDig-based tour of the Live DVD in the morning and so we both had to blow off Ignite Spatial on Wednesday to go back to the office and get it finished. I made it through the three out of the four available workbooks and got some slides put together for an overview of PostGIS. It was a late night and it made for a rough morning. The tutorial was fairly successful. Because it was completely hands-on and required a laptop, or a neighbor with a laptop, we had around 40% of the prospective attendees walk out at the start. It actually worked well, and those that stayed behind got a good tour of a number of services, though we didn't get through all the material. I only made Simon Greener's presentation, PostGIS and Oracle Spatial, and enjoyed that, though the slides were too complicated to fully ingest at the rate of delivery. Simon was a very entertaining presenter which more than made up for it.

Thursday night was also the dinner cruise and Bird of a Feathers. I rolled into the PostGIS BoF with no particular plan to be awake, let alone useful, but found myself called upon to provide some direction. I didn't, but the call itself was enough to get people talking. There was some great discussion of how people are hacking up raster-ish support, the hacks and use-cases of real users and even some excitement about Paul's work on the geography datatype. I had to flee earlier than I had hoped to make the dinner cruise.

The cruise was plenty good. They handled my special dietary needs quite well, but the food was overcooked. The wine was not. I only sampled the sparkling and the red and both were very nice bottles. Between exhaustion and free bar, it was a fun night. We didn't really get much value from the cruise aspect of the dinner cruise. We left Darling Harbour and sailed under the Sydney Harbour Bridge. Most people were on the viewing deck with their cameras blazing, but then the drinks and food was eminent were drained so we returned below deck. The views out the windows were nice enough, but I was left feeling that we could have made better use of the whole I'm on a boat phenomena. Bow jumping for example, or water skiing.

The result of the whole day three experience was that I didn't have a blog post in me. Not that there wasn't bloggable material, clearly, but consciousness and coherence was not in the cards by the time my day was done. I beg your forgiveness.

Wednesday, October 21, 2009

FOSS4G 2009 - Day 2

The first real day of FOSS4G began today with a spectacular keynote session by Paul Ramsey. I made it's way onto YouTube by lunch and has been all the talk on Twitter. If you haven't seen it yet, you should do so. I'll wait.

Due to my committments to both organisation and boothery, I only managed to make one session during the day. Volker Mische presented his work on GeoCouch, the spatial extension for CouchDB, to a large, but widely dispersed crowd in the Auditorium. The presentation was much better than his ad-hoc explanations over beer; likely due to the reduced heckling that large spaces and microphones bring. I was able to catch the set-up of the first of Jim Groffen's tutorials with Andrea Aime, and the set-up and take-down of the second with Arne Kepp. With back-to-back sets, I held no envy for Jim's afternoon. Even still, the rooms were packed and attendees were leaving happy. At least, those that got a seat were leaving happy.

Tomorrow is another day, and my morning includes assisting Jody Garnett with a tutorial session. As such, we've absconded the venue and hidden ourselves away to complete and rehearse our material.

Until tomorrow then.

Tuesday, October 20, 2009

FOSS4G 2009 - Day 1

Day one of the FOSS4G conference has come to a close, and by all reports has been a resounding success. I would like to mention a few names: Jeff McKenna (the wisdom of the ages), Daniel Branik (our system and network manager from Arinex) and Julia Vernon (conference manager from Arinex). Without these people things would have fallen apart weeks ago. My thanks to you.

As for the workshops themselves, I didn't have the pleasure of actually attending one, other than my own, but everyone I've spoken to has had nothing but good things to say. The effort all of the workshop presenters have put in to their material both today and in the weeks and months leading up to today have served them well and it's because of these efforts that so many people have finished today with a smile on their faces. Well done to all of you.