Open-Source GIS
I’ve been interested in delving into the world of Open Source GIS, and the bike planner project is a good reason to learn more. I have a huge amount of appreciation for ESRI‘s software — I use it at work all the time, and it does many things extremely well. (The sheer number of commands and options can make it intimidating to new users.)
ESRI has been around seemingly forever (founded 1969), has a large and generous user community, conferences, customer support, annual conferences… and their software has a big price tag. They do have a grants program, and it’s great. I know many nonprofits who received ESRI software for free or at a big discount.
But choice is good. And there are increasingly more choices that are free and open source. It’s hard to keep tabs on what is out there, what the various packages do, and their strengths and limitations. I’ve compiled a few notes on a few of the more well-known open-source GIS programs below.
GDAL/OGR
GDAL stands for Geospatial Data Abstraction Library. When you download it, you also get a copy of OGR, which stands for itself, OGR Simple Features Library. (Apparently, it used to stand for something else years ago…)
GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for data translation and processing. The NEWS page describes the November 2009 GDAL/OGR 1.6.3 release.
The related OGR library (which lives within the GDAL source tree) provides a similar capability for simple features vector data. I’ve used OGR in the past to convert GML files to shapefiles when I was experimenting with OpenStreetMap data, and it worked like a charm.
If you want to use these tools on Windows or Linux, you grab the package called FWTools, “a set of Open Source GIS binaries for Windows (win32) and Linux (x86 32bit) systems produced by Frank Warmerdam (FW).” With it you get a bunch of useful utilities for working with different GIS files. In my experience, these are useful *if* you already know what you are doing, and have a particular task in mind, such as: I need to re-project this satellite image from UTM coordinates into state plane coordinates so I can use it with the rest of my project data.
FWTools for Windows is distributed with Python 2.3.4, which is already quite old, released in May 27th, 2004. This makes me wonder how up-to-date this package is.
Also, a word of caution: If you have ESRI’s ArcGIS installed and use Python for scripting, do NOT upgrade or change your version of Python, or your ability to run ArcGIS tools via scripts will be broken.
GDAL looks especially useful to programmers, as there are bindings available in a number of different languages. My recommendation: If you are planning to write code to manipulate your geodata, look here first so you don’t have to reinvent the wheel!
GRASS
GRASS (Geographic Resources Analysis Support System) is a Software for performing spatial analysis. It consists of more than 350 modules for processing vector (2D/3D), raster and vector data. Many interfaces to other programs in related domains like geostatistics, databases, mapserver and even other GIS software exist. It can serve as a Desktop GIS and as the backbone of a complete GIS infrastructure.

GRASS GIS
I know that this is mature software that has been around for a long time, and is used by lots of serious scientists. My impression was that it is mostly suited for raster analysis, and that its vector capabilities (for working with points, lines, and polygons) were not as well-developed.
GRASS is run from the command line, which means you have to type in text commands to do most things. There are a few different GUIs available, JGrass, and qGIS. It doesn’t look like JGrass is very well-developed or has a large userbase. qGIS may be the way to go here.
Here is a 34-page document called GRASS GIS in a Nutshell from 2005.
The latest manual (version 7) has the page, Intro vector map processing and network analysis, which describes working with lines. The plus: it seems fully capable of managing network topology, intelligently dealing with edges and nodes. The minus: the manual text is dense, and difficult to understand.
Some information about working with vectors from section 6.1 that makes it sound like a potentially good tool (ability to bring in *many* formats, and ability to create topologies:
Vector maps can be imported from various sources such as ArcInfo-Coverages, CSV, DGN, SHAPEfiles, GML, MapInfo, MySQL, ODBC, OGDI, PostgreSQL/PostGIS, S57, SDTS, TIGER, UK .NTF,and VRT. The module for importing vector maps is v.in.ogr. The input ?dsn? (data source name) parameter can be a file, a directory or a database connection, depending on the data format. As GRASS is a topological GIS, non-topological Simple Feature data such as SHAPE files are transformed into a topological representation upon import. Data quality is verified during the import, and vector features which violate topological conditions are stored in a separate layer for later inspection. For more details please refer to the manual page of v.in.ogr.
It looks like the easiest way to learn about GRASS is to buy a copy of the GRASS book. (Doesn’t look like you can read it online anywhere…)
Quantum GIS

Quantum GIS
Quantum GIS or qQIS, looks like it’s under very active development, with revisions being pushed out frequently. As of December 2009, it’s on version 1.30. (I was hesitant to install it on my office desktop when the version number was less than 1!)
Quantum GIS (QGIS) is a user friendly Open Source Geographic Information System (GIS) licensed under the GNU General Public License. QGIS is an official project of the Open Source Geospatial Foundation (OSGeo). It runs on Linux, Unix, Mac OSX, and Windows and supports numerous vector, raster, and database formats and functionalities.
One of its strenghts is that it upports a number of different data formats (and can do on-the-fly projection!):
- spatially-enabled PostgreSQL tables using PostGIS and SpatiaLite
- most vector formats supported by the OGR library*, including ESRI shapefiles, MapInfo, SDTS and GML
- raster formats supported by the GDAL library*, such as digital elevation models, aerial photography or landsat imagery,GRASS locations and mapsets
- online spatial data served as OGC-compliant WMS or WFS
Does it support the creation and editing of topologies? Seems like the answer is no, or at least I can’t find any references to the word “topology” in the documentation. But perhaps, because of the linkage with GRASS, it can do this? I need to investigate further to find out.
OSGeo
OSGeo is the Open Source Geospatial Foundation, and their website is a portal of information and links to many different applications, a number of which are listed here. The foundation “is a not-for-profit organization whose mission is to support and promote the collaborative development of open geospatial technologies and data. The foundation provides financial, organizational and legal support to the broader open source geospatial community.”
What we’re interested in is the software OSGeo4W. They maintain a “binary distribution”, which is a bundle of programs from the OSGeo family. For Windows users, there is OSGeo4W, “a windows based stack of GeoFOSS which is based upon cygwin.”
I tried OSGeo4W, and my experience was a disaster. I tried installing it back in August, but qGIS did not work. I kept getting cryptic error messages. Spent a few hours trying again, looking for workarounds, etc. Eventually decided to throw in the towel, but was unable to un-install it. It ended up messing up my installation of Python, and leaving a few hundred megabytes of files. Not sure what will happen if I just delete all of these… Oh well, you can not set your expectations too high for free software developed by volunteers. I hand it to the developers for their work on this important, and no doubt challenging project. But it’s not quite ready for prime time.
Update: I’ve since tried installing cygwin, and never got it to work on my computer. Perhaps that is the reason why OSGeo4W never worked either.
For Linux users, the project to compile all the installers in one place looks a little less well-focused. If you’re using the Debian flavor of Linux, there is the DebianGIS project, which enables Debian users to install GRASS, GDAL, and Proj4.
PostGIS
PostGIS is software that lets you turn a PostgreSQL database into a GIS database. A whole bunch of different programs can use PostGIS as a “backend”, i.e. a place to store the geodata. The list includes open-source packages like qGIS, GRASS, and uDig, but also commercial packages like ArcGIS and MapInfo.
In fact, the wikipedia article on PostGIS is a nice list of different current open-source GIS programs.
Two reasons for us to be interested in this package. First, PostgreSQL is commonly used as a web database, perhaps second to MySQL, so it is ready to use for a web project. Second, there is an open-source module called pgRouting for calculating directions.
uDig
From the wikipedia article on uDig:
uDig is a GIS software program produced by a community led by Canadian-based consulting company Refractions Research. It is based on the Eclipse platform and features full layered Open Source GIS. It is written in Java and released under GNU Lesser General Public License.
uDig can use GRASS for complex vector operations and also embeds JGRASS and specialized hydrology tools from the Horton Machine. It supports shapefiles, PostGIS, WMS, and many other data sources natively.
MapWindow
The MapWindow application is a free, extensible, geographic information system (GIS) that can be used as an alternative desktop GIS, to distribute data to others, or to develop and distribute custom spatial data analyses.
Based on the documentation here, it looks like it is only capable of handling shapefiles, but it looks like it has decent capabilities for editing vector geometry and attribute tables. There is no mention of more advanced capabilities like topology or networks, or linking to external data.
Conclusion: MapWindow might be worthwhile for simple editing of shapefiles on your local hard drive. Probably not capable enough for our needs.
MapServer
MapServer is a software package for map rendering. It lets you create your own web mapping service. Of limited use for the bike mapper project, as we are simply displaying limited amounts of route data on top of Google Maps, and don’t need to render our own basemaps.
Etc.
There is much more out there. I’ve tried to highlight the projects that are under active development, and likely to stay useful in the future, or powerful enough to handle real tasks (rather than just being prototypes or proofs-of-concept. Drop me a line or leave a comment if you know of other programs/resources that might be helpful in the Bike Mapper project.
Others worth looking in to?
December 14, 2009 at 7:05 am