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!
]]>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 projfinder.com 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 projfinder.com. 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… mapfart.com. 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.
]]>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:
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!!
]]>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
aaronr@aaron-zlinux-office1:~$
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.
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
\x
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.
]]>for f in *.jpg; do gdalwarp -t_srs EPSG:900913 $f ${f/.jpg}_900913.jpg; done
Boom… that simple. Love GDAL.
]]>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…
]]>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!
]]>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.
]]>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.
]]>from PyQt4 import QtCore
import pdb
...
QtCore.pyqtRemoveInputHook()
pdb.set_trace()
This not only sets a trace (breakpoint) in your code, but it stops the PyQt event loop. The call to pyqtRemoveInputHook() is a tasty little tidbit in PyQt to allow for this “stop it in it’s tracks” behavior. This is a must have for debugging PyQGIS or Python based plugins.
Once you are in pdb, you are set to go with interactive debugging:
--Return--
> /home/aaronr/.qgis/python/plugins/refmap/refmap.py(101)__init__()->None
-> pdb.set_trace()
(Pdb) bt
<string>(1)<module>()
/home/aaronr/.qgis/python/plugins/refmap/refmap.py(144)initGui()
-> self.refmap_gui = ReferenceMapWindow(self.iface,flags,self)
> /home/aaronr/.qgis/python/plugins/refmap/refmap.py(101)__init__()->None
-> pdb.set_trace()
(Pdb) print self
<refmap.refmap.ReferenceMapWindow object at 0x8cc6c2c>
(Pdb) print self.iface.mainWindow().windowTitle()
Quantum GIS - 1.1.0-Unstable-trunk
(Pdb)
Happy debugging!!!
]]>Well, its been a while since I have had a chance to even think about blogging. I am currently in-between projects and it has been a great time to catchup on getting my development environment up-to-date, test out some new ideas, and of course prune the orchard! Spring is here and with over 70 trees to get in shape much of the next couple of months will be on a ladder. Another development in the works is trying to start 2 bee hives in the orchard this year.
I have been starting to dive back into QGIS and plugin development. There are some really cool things on the horizon and I will be posting about some of the things I am looking at over the next couple of weeks. Of particular interest to me is the new WebKit integration to QT that happened at QT version 4.4+.
More to come soon…
]]>I had the privilege of giving a talk at LinuxFest Northwest this year… and what a cool event this is. We had a great room full of people interested in Geospatial technology, some great questions and I think some genuine interest from participants that could lead to some folks going home and hacking away with some mapping. Great job to the organizers of the event and looking forward to helping make LinuxFestNW 2009 an even bigger and better event!
Here are the links to my talk:
(UPDATE 042808): They have now posted a link to the video of my talk:
http://www.ustream.tv/recorded/377931
CUGOS - For those local to the Pacific Northwest, come visit us and make some local Geospatial friends!!
]]>As I noted over on the QGIS blog I have started to organize my python plugins and will be adding more soon.
]]>4.5 gigs used for the base Ubuntu system as well as the base GIS software:
1) Proj4 (4.6.0) 2) GDAL/OGR (1.5.0) 3) GEOS (3.0.0) 4) Postgresql (8.2.5) 5) PostGIS (1.3.2) 6) QT dev environment (4.3.2) 7) QGIS svn (0.9.2)
What do you get? Well, an ultra portable GIS workstation weighing in at less than 2 lbs that is very fun!
http://media.reprojected.com/presentations/Videos/eee_qgis_install/eee_qgis_install.html
]]>$399 for the pc, $19 for 1 gig RAM upgrade, $21 for a 4 gig SDHC card and there you have a pretty fun machine.
Here are some pics…
New RAM going in…
QGIS running from a remote server!
Size compare with an IPOD…
Well, as I start to install more stuff I will post more info. So far I am very happy and excited to be playing with the eee
]]>1) Make sure you have Python 2.5 or newer installed on your machine… if you don’t have it you can download it from HERE (official) or HERE (my archive).
2) Install PyQt4.3.1 from HERE (official) or HERE (my archive)
3) Download and unpack THIS zip file. Copy the PyQt4 directory unpacked from the zip into your Python 2.5 site-packages directory. Make sure to save the old PyQt4 directory in the site-packages by renaming it in case something goes wrong!
4) Download and install QGIS from HERE (my archive). This is the latest release candidate from what_nick that is based on the Qt4.3.1 series.
5) In the QGIS install there are some GRASS documentation files that are missing and can cause warning dialogs to pop up when using the GRASS toolbox. You can unzip the contents of THIS archive into the QGISDIR\grass\docs\html directory to stop the warnings.
You can still follow the instructions HERE to build QGIS yourself and play to your hearts content, but I know that there are many windows users out there that really would just like to get moving without the hassle of compiling. This post is for you.
]]>Well, it was a great week in Victoria BC for this years FOSS4G conference! Besides the great chance to hang out with the OS GIS community, it was a great chance to take a look at what is hot in our field. Keep checking back to the FOSS4G web site as many of the presentations as well as video from the plenaries are being uploaded.
My talk on the use of PyQGIS (Python bindings to QGIS) for development of some stand alone desktop tools went well. My powerpoints are here (6 meg). I even have a couple of snapshots of giving the talk (thanks to Gary Sherman).
Gary Sherman gave a great workshop on Monday. He has posted the slides and ISO image of the live CD on the QGIS blog. Here are a couple images that show Gary laying it out and some of the students soaking it in. I also had a voice recorder and have made streaming mp3’s of the session available at the following links:
We also had a great QGIS BOF session which was well attended by a diverse group of developers, users, and interested newbies. All in all I think QGIS had a great showing at FOSS4G and am looking forward to pushing many of the ideas talked about there forward.
]]>