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.
Showing posts with label postgis. Show all posts
Showing posts with label postgis. Show all posts
Saturday, May 8, 2010
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.
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.
Monday, March 30, 2009
FOSS4G Workshops and Tutorials
Months ago when I volunteered to chair the workshop committee for FOSS4G 2009 I was convinced it wouldn't be too much work. There are only ten workshops after all. For the most part I was right, but not for the reasons I expected. There was some writing involved; producing calls for submissions and templates for prospective instructors to fill in, but there were examples for me to draw from.. There was some thinking and research to put into the rating system I used to select workshops, but others were free with their advice and experience.
Where things started to bog down was once the ratings came in. We went through two iterations of ratings before arriving at our final selection. I made the decision early on to involve as many people in the selection as possible, in part because I had submitted a workshop of my own and wanted enough transparency to avoid awkward questions. I got more of a response than I had expected considering how far off the conference is, and the fact that I insisted on people justifying their opinions made for an interesting conversation indeed. In the end my role was mostly an administrative one. I collected the ranking and comments and spat out results so we could go through it all again. With the final recommendations approved by the local organising committee, I sat down tonight and churned out 33 emails to 40 potential instructors sharing the excitement and the disappointment with each.
I've discovered that being the unpleasantness of being the chair of the committee is not the work involved. It's watching your favourite fail. I did manage to get my workshop in, but it should come as no surprise that it's not my favourite. I already know most of the material, so it will be largely review for me anyway. But there were a few submissions that I was eyeing, wondering if I could slip away from my responsibilities to do the unthinkable and crash a workshop.
But enough of my ramblings. The interesting bit here is who was selected!
Tutorials
A Friendly Hands-on Survey of Popular Geospaital Services
-- Jody Garnett, Mark Leslie, and Andrea Antonello
Delivering data using published application schemas
-- Rob Atkinson, Ben Caradoc-Davies
Getting Started with MapWindow: An easy-to-install, easy-to-use free GIS for Windows
-- Dan Ames and Ted Dunsford
How to Cope with GeoSpatial - Intro to GeoTools for the Java Developer
-- Jody Garnett and Michael Bedward
Introduction to deegree iGeoDesktop
-- Hanko Rubach
Leveraging OGC Services with GeoExt
-- Andreas Hocevar
Making Maps Fast - Performance tuning and Tile Caching
-- Arne Kepp and Jim Groffen
Making Maps Pretty with Style Layer Descriptor
-- Andrea Aime and Jim Groffen
Protecting OGC Web Services with the 52°North Security System
-- Jan Drewnak
Sensor Web Enablement - Bringing Sensors into SDIs
-- Arne Broering, Simon Jirka, Christoph Stasch, and Thomas Everding
Using ILWIS with its PostGIS plug-in for raster-vector applications
-- Rob Lemmens
Working with GRASS-GIS Vectors and Databases
-- Richard Chirgwin
Workshops
Getting Started with MapServer
-- Jeff McKenna, Tyler Mitchell, and Pericles Nacionales
Geospatial BI with FOSS: an introduction to GeoMondrian and Spatialytics
-- Thierry Badard and Etienne Dubé
Introduction to PostGIS
-- Mark Leslie and Paul Ramsey
Introduction to the Open Geo-Stack: PostGIS, GeoServer, GeoWebCache, and OpenLayers
-- Justin Deoliveira, Andrea Aime, Paul Ramsey, and Tim Schaub
Making Maps Fast - Performance tuning and Tile Caching
-- Arne Kepp and Jim Groffen
OpenLayers - Your Foundation for Browser Based Mapping
-- Tim Schaub and Roald de Wit
Organising your geospatial data and services using GeoNetwork opensource
-- Jeroen Ticheler and François Prunayre
Practical Introduction to GRASS and related software for beginners
-- Paolo Zatelli, Marco Ciolli, and Clara Tattoni
Practical introduction to MapFish, the web 2.0 mapping application
framework
-- Claude Philipona, Cédric Moullet, Frédéric Junod, and Eric Lemoine
Working with GeoServer
-- Justin Deoliveira and Andrea Aime
Where things started to bog down was once the ratings came in. We went through two iterations of ratings before arriving at our final selection. I made the decision early on to involve as many people in the selection as possible, in part because I had submitted a workshop of my own and wanted enough transparency to avoid awkward questions. I got more of a response than I had expected considering how far off the conference is, and the fact that I insisted on people justifying their opinions made for an interesting conversation indeed. In the end my role was mostly an administrative one. I collected the ranking and comments and spat out results so we could go through it all again. With the final recommendations approved by the local organising committee, I sat down tonight and churned out 33 emails to 40 potential instructors sharing the excitement and the disappointment with each.
I've discovered that being the unpleasantness of being the chair of the committee is not the work involved. It's watching your favourite fail. I did manage to get my workshop in, but it should come as no surprise that it's not my favourite. I already know most of the material, so it will be largely review for me anyway. But there were a few submissions that I was eyeing, wondering if I could slip away from my responsibilities to do the unthinkable and crash a workshop.
But enough of my ramblings. The interesting bit here is who was selected!
Tutorials
A Friendly Hands-on Survey of Popular Geospaital Services
-- Jody Garnett, Mark Leslie, and Andrea Antonello
Delivering data using published application schemas
-- Rob Atkinson, Ben Caradoc-Davies
Getting Started with MapWindow: An easy-to-install, easy-to-use free GIS for Windows
-- Dan Ames and Ted Dunsford
How to Cope with GeoSpatial - Intro to GeoTools for the Java Developer
-- Jody Garnett and Michael Bedward
Introduction to deegree iGeoDesktop
-- Hanko Rubach
Leveraging OGC Services with GeoExt
-- Andreas Hocevar
Making Maps Fast - Performance tuning and Tile Caching
-- Arne Kepp and Jim Groffen
Making Maps Pretty with Style Layer Descriptor
-- Andrea Aime and Jim Groffen
Protecting OGC Web Services with the 52°North Security System
-- Jan Drewnak
Sensor Web Enablement - Bringing Sensors into SDIs
-- Arne Broering, Simon Jirka, Christoph Stasch, and Thomas Everding
Using ILWIS with its PostGIS plug-in for raster-vector applications
-- Rob Lemmens
Working with GRASS-GIS Vectors and Databases
-- Richard Chirgwin
Workshops
Getting Started with MapServer
-- Jeff McKenna, Tyler Mitchell, and Pericles Nacionales
Geospatial BI with FOSS: an introduction to GeoMondrian and Spatialytics
-- Thierry Badard and Etienne Dubé
Introduction to PostGIS
-- Mark Leslie and Paul Ramsey
Introduction to the Open Geo-Stack: PostGIS, GeoServer, GeoWebCache, and OpenLayers
-- Justin Deoliveira, Andrea Aime, Paul Ramsey, and Tim Schaub
Making Maps Fast - Performance tuning and Tile Caching
-- Arne Kepp and Jim Groffen
OpenLayers - Your Foundation for Browser Based Mapping
-- Tim Schaub and Roald de Wit
Organising your geospatial data and services using GeoNetwork opensource
-- Jeroen Ticheler and François Prunayre
Practical Introduction to GRASS and related software for beginners
-- Paolo Zatelli, Marco Ciolli, and Clara Tattoni
Practical introduction to MapFish, the web 2.0 mapping application
framework
-- Claude Philipona, Cédric Moullet, Frédéric Junod, and Eric Lemoine
Working with GeoServer
-- Justin Deoliveira and Andrea Aime
Wednesday, March 11, 2009
Toronto Code Sprint in absentia
While I was prevented from attending the recent code sprint in Toronto due to a large rock, Jody and I decided to use the excuse to sprint along in our time zone.
I had spent some time working on issues with PostGIS' support for curved geometries and was able to commit the fixes prior to the sprint. I had focused on the well known text (wkt) representations and parsing, simply because it's easier to fake up some data in a text format. This meant that the SQL-MM defined well known binary (wkb) was still unsupported. I spent much of my time sorting this out. It is in need of further test cases, but most of the heavy lifting is now done.
Jody took on a much more satisfying challenge, which was to connect uDig to my development PostGIS instance and actually render out a curved geometry. With time short, we took the approach of parsing the wkt and converting it into a linear approximation of the geometry using the segmentisation code I wrote for PostGIS back in the day. We had a great time porting the C code into Java, with Jody taking every opportunity to expound on the virtues of garbage collection and slagging C. For my part, I was happy to have another set of eyes on my code and once again rediscovered the virtues of clear comments, if only they would be read.
The end result, after two evenings work, is the following image. On the left is the geometry I drew using OpenJump to provide sensible points from which to derive a curved geometry. On the right is the uDig representation. It's curvy!

While this is not the end of the work required, it's a good start and paints a pretty picture.
I had spent some time working on issues with PostGIS' support for curved geometries and was able to commit the fixes prior to the sprint. I had focused on the well known text (wkt) representations and parsing, simply because it's easier to fake up some data in a text format. This meant that the SQL-MM defined well known binary (wkb) was still unsupported. I spent much of my time sorting this out. It is in need of further test cases, but most of the heavy lifting is now done.
Jody took on a much more satisfying challenge, which was to connect uDig to my development PostGIS instance and actually render out a curved geometry. With time short, we took the approach of parsing the wkt and converting it into a linear approximation of the geometry using the segmentisation code I wrote for PostGIS back in the day. We had a great time porting the C code into Java, with Jody taking every opportunity to expound on the virtues of garbage collection and slagging C. For my part, I was happy to have another set of eyes on my code and once again rediscovered the virtues of clear comments, if only they would be read.
The end result, after two evenings work, is the following image. On the left is the geometry I drew using OpenJump to provide sensible points from which to derive a curved geometry. On the right is the uDig representation. It's curvy!

While this is not the end of the work required, it's a good start and paints a pretty picture.
Monday, February 23, 2009
PUGs in Paradise
A few weeks ago I had the opportunity to present an Introduction to PostGIS talk at the local PostgreSQL Users Group meeting. Having attended all of one meeting previously I knew the technical expertise that attendees were likely to have and was a little apprehensive about the presentation. On the bright side, I also had no expectation that I would be allowed to stick to my slides and was able to save some time in their production as a result.
I wasn't disappointed by the crowd. It more than filled the boardroom at Fujitsu in North Sydney; maybe fifteen people all told. I managed to make it to my third slide before I was sidetracked, leaping half way through the presentation for an example and not getting back on track for ten minutes or so. The group was much more up to speed in the intricacies of spatial data than I had feared and I was able to spend my time in interesting discussions instead of harping on about the basics. I did manage to work through all my slides, but I did so by taking twice the time I was alloted. The discussion continued across the street at the pub, as all such discussions do, though my inability to eat pub fare kept my evening short and somewhat giddy near the end.
I posted the slides on SlideShare and much to my surprise discover I had reached 128 views this morning. It's a small number by any standard, but in the absence of any particular linking (I haven't even blogged about it until today), or any effort at all spent in making it a pleasant read (not a single picture of a cat) it surprised me. I had honestly expected up to fifteen views. It has impressed upon me the need for presentations like this to be available. And now it is. It's a fairly poor presentation when not accompanied by dialogue, but I'm hoping to clean it up in my abundant spare time and turn it into something a little more stand-alone. Until then, comments are always welcome.
I wasn't disappointed by the crowd. It more than filled the boardroom at Fujitsu in North Sydney; maybe fifteen people all told. I managed to make it to my third slide before I was sidetracked, leaping half way through the presentation for an example and not getting back on track for ten minutes or so. The group was much more up to speed in the intricacies of spatial data than I had feared and I was able to spend my time in interesting discussions instead of harping on about the basics. I did manage to work through all my slides, but I did so by taking twice the time I was alloted. The discussion continued across the street at the pub, as all such discussions do, though my inability to eat pub fare kept my evening short and somewhat giddy near the end.
I posted the slides on SlideShare and much to my surprise discover I had reached 128 views this morning. It's a small number by any standard, but in the absence of any particular linking (I haven't even blogged about it until today), or any effort at all spent in making it a pleasant read (not a single picture of a cat) it surprised me. I had honestly expected up to fifteen views. It has impressed upon me the need for presentations like this to be available. And now it is. It's a fairly poor presentation when not accompanied by dialogue, but I'm hoping to clean it up in my abundant spare time and turn it into something a little more stand-alone. Until then, comments are always welcome.
Subscribe to:
Posts (Atom)