A warped look at spatial...

CoastGIS 2013

I had the good fortune of being invited to come give the opening keynote address for the CoastGIS 2013 conference being held in Victoria BC this week. I got the invite after Dawn Wright of OSU and ESRI fame had to cancel. I actually was really looking forward to re-connecting with Dawn and hearing her talk… she is always inspiring. It turned out that this was a great opportunity for me to work with my team at NOAA to come up with a compelling rendition of our experience during the Deepwater Horizon oil spill. It also allowed me to re-connect at the conference with many people I used to work with in the “Marine GIS” space during my years at Ecotrust.

The ferry ride up from Anacortes to Sidney BC was glorious… always a very relaxing a beautiful journey. Straight down to Victoria to get settled for the night at the Marriot. Was fortunate enough to hook up for dinner with my good buddy Anthony Lukach (from our local CUGOS group, who now lives in Victoria). Off to the conference bright and early the next morning at the University of Victoria. A stroll through campus with my coffee and camera was a perfect way to kick of what was an excellent day.

The conference was opened with a song/prayer/story session from two elders from the local Coast and Straits Salish People. It gave me goose bumps and I have to say I have been thinking about their message for the last 2 days. The affects of modern society on indigenous people is a sad story without a clear solution… yet the positive energy from the speakers was inspiring.

I had the privilege to kick the conference off with the story of ERMA… which is really the story of how we are trying to drive the next generation of “Response Management” tools from within NOAA. It is a story of small teams of people doing big things, of positive lessons learned from horrific events, and the story of Open Source and Open Data. From the reactions I got in person and on twitter I think the message resonated with the audience and I am very glad I was able to share our story.

For this talk I used the really cool JS/CSS presentation framework Reveal.js. I love the concept of Markdown (as this blog is using Octopress and markdown, hosted on gitpages) so I ended up stripping down the Reveal.js stuff to basically allow me to write my entire presentation in a single Markdown file, yet render as a Reveal.js presentation. The starter for that is on my github account called revealz (I like adding z’s to everything… since my company is called Z-Pulley Inc!). I think I will be using this as the starter for presentations moving forward. Using Markdown under version control just has so many benefits.

The other great thing is that you can just post your slides to gitpages and be sharing… so in that light here are the slides from my CoastGIS 2013 keynote:

My approach to making Reveal.js presentations is that the right arrow will cycle you through the main slides, but if the down arrow is active, use it to reveal backup points or more detail on a topic. Pretty simple…

I have also posted some pictures on Flickr of the journey up to the conference. We truly do live in one of the most spectacular parts of the world.

To the conference committee of CoastGIS 2013, thanks for the invite. I had a great time and I hope my participation added something fun and interesting to your conference!

FOSS4G-NA 2013 - a Home Run!

Well, working in the oil spill field (with NOAA) the last couple of years has kept me very busy… I might even say too busy. I used to attend many conferences and made a point to invest a large chunk of my time to the Open Source GIS community. As I have been trying to come up for air this year and re-engage a bit more with my community of developers I decided to head to Minneapolis to FOSS4G-NA this year… and man am I glad I did. It was awesome!

First I must give a huge shout out to David Bitner and the whole organizing committee who really did a great job planning and executing a top notch event. Without all the countless volunteer hours something like this would not happen, and I can not say enough how essential this type of event is to our community.

It is fitting that this is the 10th anniversary of the first ever MapServer User Conference (I missed that one, but made the second one) which started in Minneapolis and was a real kick-starter toward the formation of OSGeo.

So… on to the conference this year. For me the big highlight of these events is the social gathering and ability to just hang out with the people you are always talking to on IRC. This year was no different (and probably even better than in years past). It all started with a pre-conference meet-up the night before things kicked off (Tuesday night). It was a great gathering of old friends (the old guard… of which I am a gray haired member now), and some great new friends (those JavaScript hacking kids I cant keep up with anymore). It was just so fun to see all the talent descend upon Minneapolis and see everyone smiling.

Day 1 of the conference was long… and I mean LONG. Arrived at the venue about 8am and did not leave until 8pm. 12 hours of geo-geekery at its best. The opening talks where well received and the crowd was eager to hit the sessions… and we did. There was something for everyone and having 5 concurrent sessions throughout the conference made it feel like a big event… while the committee was able to keep the overall conference feeling intimate.

Oh, I forgot to mention… even though I work almost exclusively for NOAA (and love it), I was attending foss4g-na on my own this year… just me having a good time with my people. This allowed me to talk about things I am passionate about and really focus on the community aspect of what we do instead of sometimes dry “work” things.

My first talk was on which is a CUGOS hack project. If you have not heard of CUGOS… or you are not on our mailing list… get off the couch and go get involved. We are a very passionate group of Geo Geeks in the greater Seattle area who love to hack… and I was there to tell the story of some of our projects.

Projfinder is a simple project that has provided great hack session opportunities for our local group… and is kind of a neat idea to boot. Go check it out, but the gist is that you can give us an “X and Y” in an unknown projection as well as a “reference point”, and we will try to kick back the most likely projection to you. Feel free to cycle through the slides here and try it out at Like I told the audience at the time… the point is not that we created a simple and hopefully useful tool… it is that we did it with our local community of Open Source GIS hackers as a learning opportunity. Go forth and replicate the process in your local community…

After getting that finished up in the late morning I was free to enjoy multiple sessions all afternoon. The quality of talks was high and I was just getting more and more pumped as the day went on.

Into the evening things progressed with a vendor hour… beer and wine flowing. At about 6pm we kicked into lightning talks… and that is where it got fun. I was on deck for talk #3… You heard right… mapfarts. At this point I am pretty sure all of my paying clients where glad they did not sponsor my attendance to this conference, but I sure was having fun. Armed with a “Fart Machine” I took the stage for my 5 minutes of shame… and delivered my 20 slide deck. I am not sure the fallout from this one… but it was pretty damn funny and I had a blast getting the crowd worked up… I think I will be known for mapfarts from this point forward.

After some great food and drinks out with the CUGOS crew… it was time to get some sleep in prep for day 2.

Day 2 was more of the same… great talks and great conversation. We started off with a very inspirational talk by Eric Gundersen who I cant speak highly enough about. What he is driving over at mapbox is truly inspirational… and I came out of the morning plenary all pumped up. Day 2 saw more talks by CUGOS members with Nick Dimiduk of Hortonworks talking about tilebrute and scaling out Mapnik tile generation via Hadoop (yes… he is that smart)! Second we had Jared Erickson and Michael Payne of Pierce County IT/GIS talking about Open Source projects within their county. If you want to see a local small government doing it right… go check them out. Jared is a regular CUGOSian as well and very involved in other cool projects like geometrycommands which where featured in the mapfart talk. Sharp folks… with great messages to deliver. Could not have been more proud of the great showing our local CUGOS group made at this event.

After this we where all off to the Gala Event down at the Mill City Museum. We where treated to a great venue, great food, and just a wonderful evening. Late night drinks and then off to bed… I had a 7am flight out the next morning.

While not geo related, I got off the plane the next morning in Seattle to hop directly into a car to drive to Spokane to compete in the 24 hours round the clock mountain bike race. We finished 6th out of 19 teams in the 4 person open division… and I must say it was hard as hell… but so so so fun.

So… back at home for the first time in a week and I am already contemplating how to get to foss4g 2013 international later this year! This community we have is like no other… I appreciate it more and more every day and I encourage all of you sitting out there… dive in and make some mapfarts… you wont regret it.

GIS Apprenticeship Program

This last spring (2012) I had the opportunity to host a local 7th grader for 3 months as an “apprentice”. This was the first time for me as a small business owner to participate… but it turned out to be a great experience.

We had the opportunity to edit OSM data in our local community, get out and do some GPS data collection, and share our experience with other apprenticeship programs in the region.

Will Simms (my apprentice and all around great kid) did some great work and as part of the program generated a presentation in OpenOffice (on an Ubuntu laptop) which you can check out here:

Final presentation

Looking forward to participating in the program again this spring… and encourage all you GIS folks out there to find a way to participate in education through your local school system… there are always lots of opportunities!!

Where Did All My Space Go

So I am sitting here on my trusty Ubuntu workstation in the office and realised I am running out of space. Well, here is an easy command to find out where your top offending directories are:

du -h --max-depth=1 | sort -rh | head

Here it is in action:

aaronr@aaron-zlinux-office1:~$ du -h --max-depth=1 | sort -rh | head
146G                           .
52G                            ./.VirtualBox
34G                            ./downloads
18G                            ./work
12G                            ./Dropbox
8.9G                           ./VirtualBox VMs
7.5G                           ./.local
4.0G                           ./purgatory
1.5G                           ./tmp
1.4G                           ./vm_shared

du to look from your current location down (recurse), -h for human readable, --max-depth=1 so you just get top level dir summaries… piped into sort in reverse order with -r and top that off with -h to make sure it sorts on human readable sizes… finally pipe that into head to look at the first 10 with an optional -n 20 to look at more.

Simple Psql Formating Tips

So you are neck deep in psql and are doing some queries… but the output looks like crap and the pager keeps getting in your way.

First… turn off the pager

\pset pager

Next, turn on expanded display


Now… things look a bit better. You dont loose your initial page by going into the pager, and your output is readable. This is especially true for very wide columns as is always happens with GIS data in postgis.

Lets Quickly Batch Reproject Some Files…

Lets say we have a directory full of .jpg files that are geo-referenced (could be any extension like .tif as well):

for f in *.jpg; do gdalwarp -t_srs EPSG:900913 $f ${f/.jpg}_900913.jpg; done

Boom… that simple. Love GDAL.

Extracting Extent From Gdalinfo on the Command Line

Had a question on #gdal IRC yesterday on how to get the extent from gdalinfo.

Well… here is some command line hackity hack to get it in a format that can be passed into things like gdal_translate with the -projwin flag:

gdalinfo my.tif | awk '/(Upper Left)|(Lower Right)/' | awk '{gsub(/,|\)|\(/," ");print $3 " " $4}' | sed ':a;N;$!ba;s/\n/ /g'

From this you get some simple output of the UL and LR corners of the image:

418081.036 3613108.883 1589231.036 2678608.883

Hope that helps someone else out…


Another QGIS plugin idea I have had is to create a method of splitting the map canvas within QGIS to have two side-by-side maps that can track and interact with each other. There are lots of possibilities for this type of “reconfiguring” of the QGIS interface on the fly via plugins, so I decided to dive in and give it a go.

Here is a link to a video showing some of the basic operation of the MirrorMap plugin.

*** This plugin is very “Alpha” in that it makes the size of the map canvas static after invoking the plugin (until you launch QGIS again), does not handle layers of differing projections, does not allow for re-ordering layers in the mirror canvas, and many other deficiencies I am sure. But hey, its just a test!

MirrorMap in action


Tidal Power DSS

One of the things I have been working on this last couple of months was a prototype of a Decision Support System (DSS) for web based interaction with In-Stream Tidal Power data and models. Renewable energy is a big interest of mine and I was lucky enough to be involved in a local effort to look at In-Stream Tidal Power potential for Washington State.

Here is a link to a video showing some of the basic operation of the tool. We worked to integrate some post-processing analysis of 2-D circulation modeling to create both visual (maps) and tabular (graphs) on the fly via the web interface. The work is based on Django, ExtJS, OpenLayers, Mapserver and a few other Open Source GIS projects from OSGeo. Hopefully round 2 funding will happen to continue allow us to continue on with this fun project.


RefMap - WebKit in PyQt

So one of the ideas I have been pondering is how WebKit integration into QT (and PyQt) could be leveraged inside of my favorite open source desktop GIS, QGIS. I decided to make a very alpha plugin to show some of the cool possibilities, but I am still looking for a final direction to take the plugin. As always my plugins for QGIS can be found here.

The general idea is to integrate many of the web based mapping API’s that exist into QGIS via a WebKit interface and try to link the QGIS map canvas to actions in those web pages.

Here is a quick video of the initial version of RefMap in action. There are still kinks to be worked out and more providers to add, but it is a good attempt at linking in bi-directional communication between a web page in WebKit and python in PyQt.

RefMap Plugin at work