Open Source GIS and Mapping Tools to Help You Get Started

I’ve been an ESRI ArcGIS user since the days of Arc/INFO Ver. 5.0. Having used “command line GIS” since 1991 the rise of open source GIS solutions intrigues me. Trying new products and new software and learning new terminology and getting familiar with many different data formats are valuable jobs skills for me. However, being an educator I’m obligated to expose my students to as many different new technologies, data formats, and methods for addressing projects as I’m able, given time and circumstances.

Today, I had an opportunity to witness a professor from the University of Kentucky demonstrate some open source GIS and mapping tools. Before I relay some of the details I took-away from the presentation nI want to address some criticisms applied to both off-the-shelf (OTS) software and free and open source software (FOSS). There are two camps, one camp fervent supporters of FOSS, the other camp who placidly supports OTS. Both sides offer good reasons why their respective sides should exist and are better, yet many of the arguments for and against the respective software realms can be applied to each side.

Perhaps the biggest complaint is bugginess, software bugs, glitches, and unworkable code. People on both sides of the aisle agree on one thing: the other side of the aisle has more problems than their side. Every large software company has glitchy software, Microsoft, Apple, ESRI, Oracle. No matter where one looks, software companies always release buggy and unstable software. Until computers are smart enough to write their own bug-free, we will always have software with buggy code.

Now, does OTS have a development advantage over FOSS? My opinion is, Yes, OTS software has a few development advantages over FOSS. OTS software is developed by companies who want to make a profit. Companies developing terrible software won’t last. Thus, companies are motivated by at least profit to ensure their products are more-or-less reliable and answer to their customers. OTS software rides on reputations of corporate branding, programmers, and reputations. OTS software also tends to have development teams who track code changes and follow standard coding policies and protocols. I don’t mean to say OTS is superior or immune to having issues and problems, however, OTS does tend to have a more consistent development environment over FOSS.

FOSS has the advantage of being free. Free is a pretty decent advantage over OTS software. Development can be spotty, though. Support and getting questions answered can be spotty. The Internet is a great help with sites like GitHub providing some ad hoc support to users of all types. FOSS can be just as buggy as OTS; sometimes more so. FOSS may not be user-friendly, not as much so as OTS. FOSS may be more in-step with current technology. FOSS development teams can be more nimble to changes in technology; OTS tends to lag technology advances as software releases follow the quarterly business cycle, or perhaps twice-per-year updates. FOSS can be more nimble, able to embed new functionality and technology months in advance of OTS software but sometimes support wanes, and sometimes support disappears.

Corporations and businesses don’t like to support the unknown. They want comfort, tried-and-tested software, sometimes even in spite of known performance problems. They know what they are going to get. With FOSS, what they get can be sort of unknown. With OTS, a company has a point of contact to which they can complain, seek help, or perhaps even bring someone on-site to help solve problems. FOSS tends not to offer any of those options. Some companies pick up FOSS, train employees, and provide support to others but this is different from being able to call a support line to the same company that both developed and sold the product.

An anecdote. The wife of a former student of mine is working on her Ph.D in Environment Science from a prestigious school in the South. Part of her work involves using image processing software in the analysis of the Pantanal region in Brazil, the world’s largest wetland. She was using OTS image processing software and due to the nature of her research she had to become intimately aware of algorithms used by this specialized software package. However, even though the software developer kept detailed records they were not able to come up with documentation for specific functions. Poorly documented software code forced the Ph.D student into developing her own software tools so she knew absolutely how her data was being processed.

Another anecdote. Today, the presentation covering the FOSS GIS implementation was delayed about fifteen minutes. Why? The FOSS GIS kept crashing every time the presenter attempted to read a simple database attribute table, a very mundane task.

I don’t have any easy answers or solutions. My recommendation would be to first, evaluate your project. If the project can handle being developed using FOSS, then perhaps implementing the project using FOSS is a good idea. If the project needs to comply with certain state or federal policies, or the corporation business model dictates the use of OTS, or the work environment necessitate having a back-office software support system, then OTS might be the best bet.

OK – now that my rambling is out-of-the-way, what FOSS tools for GIS and mapping can I pass along?

QGIS is a free and open source GIS package available for PC, Mac, and Linux. I’ve used QGIS a little bit. The GIS implementation is different somewhat from ArcGIS. Getting used to changes in terminology and nomenclature can be a little off-putting. I have not used many of the cartography tools. QGIS has numerous developers, integrates many new technologies, and offers many plug-ins to help expand functionality.

Once QGIS has been installed, a user may want to enhance functionality by pushing content to the Internet. Leafletis a Javascript library built to help users push interactive geospatial content onto the Internet.

MapBox is one of the fastest growing map companies proudly basing their efforts on open source tools and code. MapBox is free to learn, with some API’s exposedMapShaper.org and an environment to immediately building apps.

CartoDB provides a platform for extracting information from location data. CartoDB provides visualization and analysis tools for data located both “in the cloud” and in a local environment.

The next tool mentioned was Data-Driven Documents (D3). Like Leaflet, D3 is a Javascript library created to assist in the analysis of documents, documents containing data, numbers. The Javascript libraries can build charts and graphs while providing slick animations and “slippy” graphics to help bring data alive on a web page.

Since learning about Leaflet.js, I’m going to pass along some derivative web sites offering some of the same functionality. Dropchop.org and Turf.js are both sites deriving from mapbox.com. Dropchop is still an a project in its infancy, but good source material can be found on GitHub. Turf.js a collection of Javascript libraries ready-to-use, much like Leaflet.js.

Having a Code Editor handy can help improve writing code, make code-writing easier. Maybe not easier but at least easier to read and make code easier to manipulate. I know, right? You’re sitting there thinking, Code? Yuck… Well, the GIS world for as far as we have evolved from the days of command line has yet to abandon command line entirely, and at least for the foreseeable future writing code for mapping will persist. A few code editors were mentioned during today’s presentation. In no particular order: Sublime Text, Atom, and Bracket were all mentioned. I tend to use notepad++ for coding but I’m always open to try something new.

Finally, a couple of other GIS-related web sites mentioned were MapShaper.org and SimpleStatistics.org. MapShaper allows users to drag-and-drop an ESRI shapefile, a TOPOJSON, or GEOJSON file onto a webpage and have that spatial data rendered on a map. SimpleStatistics, like Leaflet.js, is a collection of Javascript libraries for providing a means of statistically analyzing data on a webpage.