Since my one day map hack a few months ago I've been doing more work with open source geographic software. There's a lot to learn and I've yet to find a good simple introduction, so here's some notes on resources and how they fit together.

Libraries. There's a lot of core math and data structures for GIS. GEOS implements the basics of OpenGIS geometry: data types, simple calculations, etc. GDAL is the library + utilities for working with raster georeferenced data (maps). GDAL also includes OGR for working with vector data (shapefiles). Finally Proj is the library for translating data from one spatial reference system (SRID) to another. GEOS + GDAL + Proj give you most of the core library functions you need for working with geographic data. They're C libraries and fast but have bindings for more humane languages as well.

Data formats. GeoTIFF is a common format for raster data. There's a zillion others GDAL supports, but GeoTIFF is the native format. Esri Shapefile is a common format for vector data, but you also see a lot of GPX, KML, GeoJSON, etc.

Database. PostGIS is the most common OSgeo database. It adds a bunch of datatypes and functions to Postgres. There are also geo extensions for other databases like MySQL and Oracle. Often a relational database is unnecessary: files + GDAL go a long way.

Web development. There are lots of options for using geographic data in a web application. GeoDjango is a great choice for building a webapp. MapServer and MapNik are two options for rendering custom maps on a web server. I really like Polymaps for doing map display and compositing in Javascript.

Desktop applications. Not everyone wants to write code. QGis is a good desktop application for manipulating geographic data. There's also GRASS, OpenEV, and uDig. These programs are focused on displaying and editing geographic datasets, for making and updating custom maps by hand.

Datasets. OpenStreetMap is a huge resource for free data for road maps. geodata.gov is a portal for US government datasets where with enough digging you can find interesting data. There's a lot of other data scattered about, I haven't found a good catalog.

Community. OSGeo and OpenStreetMap are two centers of the open source geo hacking world. slashgeo is a good news site, as is the GIS forum. GIS StackExchange is looking promising.

I’m still new to all this so if I misstated or overlooked something please email me.

Thanks to Adam and Matt for feedback
tech
  2010-12-14 20:36 Z
A couple of weeks ago I went on an absolutely fantastic flying trip, a 5 day journey to the Colorado Rockies with the Flyout Group. Normally in little planes you avoid mountains, cross high and quick for safety. For this trip we sought the mountains out to enjoy the challenge of flying down in them.

The map above (KML) is from our most mountainous flying, a full day of playing around in the valleys and mountain passes of the Rockies. Some of the highlights include flying through Independence Pass (12,095') and landing at the highest airport in the US (9927'). The 182 we were flying isn't very happy flying over 12,000' and we were breathing supplemental oxygen, but that just made it all the more fun.

The main purpose of the trip was instructional: Ken and I had an instructor with us. We got a lot of practical experience with density altitude and performance, learning just what it really feels like taking off at 9000' on a 90° day. We got lucky with calm winds, only 10-15kts at the ridgetops, so we never had to deal with any significant turbulence or downdrafts. That let us fly safely down in the valleys but I'm a little sorry I didn't get more experience with more challenging conditions. Then again we got some very exciting flying with beautiful sights.

It's startling to look under your left wing and see mountains above you! But at a safe distance with good weather, it's fun. See my photo set for more pictures; on the fourth day we flew over Utah along the Colorado River and I got a lot of great overhead shots of Glen Canyon. I also landed and took off at Las Vegas International (very busy), landed in Death Valley (-210'), and took my first flight over the Sierras. A great week of flying, I'm ready for more!

aviation
  2010-07-23 13:57 Z
I whipped up a little Javascript library to format relative timestamps. Instead of labelling blog entries something nerdy and confusing like "2005-09-07 08:32 Z", ago lets you say "3 hours ago". You can see it here on my blog. The idea was shamelessly stolen from NetNewsWire, Flickr, and a dozen other apps. I implemented it here on my blog to help me deal with time zones; I'm in Zürich, my server is in Texas but running in UTC, and most of my friends are in California.

To use it, put some javascript in your document like

document.write(ago(1126162027))
It will be replaced with a friendly English string in the client's browser. The number is a Unix seconds since epoch timestamp. The clever thing here is that by doing this in Javascript, the relative timestamps look correct even if the page is pulled from a cache. (It will be broken if the client's clock is wrong, but that's their problem.)

The code is freely available, public domain. You'll also find JsUnit tests, a demo, and a Blosxom plugin to make it easy to add to my blog.

techago
  2005-09-08 06:50 Z