Alternatives to ArcGIS Desktop
If you've ever worked with
geographic data on the desktop, chances are that you used Esri's ArcGIS
application in at least part of your work. ArcGIS is an incredibly powerful
tool, but unfortunately, it's a proprietary product that is designed for
Windows. Linux and Mac users are out of luck unless they want to run ArcGIS in
a virtualized environment, and even then, they're still using a closed source
product that can be very expensive to license. While their flagship product is
closed source, I would be remiss not to note that Esri has made numerous contributions to the open source
community.
Fortunately,
GIS users have a few choices for using open source tools to design maps and
work with spatial data that can be obtained under free and open source licenses
and which run on a variety of different non-Windows operating systems. Let's
take a look at some of the options.
GRASS
GRASS
stands for Geographic Resources Analysis
Support System). It has a very long history, dating back to original
development which began in 1982 under the US government. In the time since,
GRASS has been adopted by the academic community, where its development
continues today.
I
mention this history because it will help you to understand the interface,
which launches with a terminal window and asks you a few questions about
setting up your project before launching a separate control and display window
for working with your data. If the GUI feels like it was later tacked on to a
powerful program working under the hood, well, that's probably what actually
happened. While the interface may not feel as intuitive to newcomers as some
other GIS applications, I like it for two reasons. One, since it really is just
a GUI abstraction to the underlying Python commands, advanced users can easily
manipulate data and display directly from the Python console, for speed,
preciseness, and importantly for academic applications, easy replicability. The
second reason I like the interface is that it exposes the wide and powerful
array of data manipulation tools directly.
GRASS is definitely the
winner when it comes to data analysis and geo-processing, and its tools can be
used from external applications, making it an extremely extensible tool which
is worth learning even if you don't take it on as your primary desktop GIS
system. GRASS is written primarily in C/C++, although many of its modules are
written in Python or other languages.
QGIS
For
many people, discovering QGIS is the end of
their search for an ArcGIS alternative. It has a clean interface, it's easy to
use, and it just works. QGIS supports a wide variety of raster and vector
formats, and if you're a Linux user, there's a good chance that it's already
packaged for your distribution's default repositories. In addition to Linux, downloads and instructions for macOS,
Windows, BSD, and Android can be found on the project's website.
QGIS
has great documentation which can be found in its user manual, as well as an active user
community which has produced numerous tutorials, guides, and even books to help
you succeed. There are also a huge number of plugins that add a ton of
functionality not found in the base package, and its Python interface makes it
relatively easy for newcomers to create new ones.
You
can find the source code to QGIS, which is written
primarily in C++, on GitHub under a GPLv2 license.
uDig
While
I've been a user of both GRASS and QGIS for several years now, recently I've
been trying to expand my horizon a bit and have been trying out uDig,
which stands for User-friendly Desktop Internet GIS.
uDig
different than the other two tools in that built more as an application
framework than a complete solution. It is, in fact, a stand-alone program, and
if you download it and fire it up you can begin adding and exploring your data
like a more traditional desktop GIS tool.
But
its strength comes in its framework design, being built around the same Eclipse
IDE that many developers are familiar with already. In this way, uDig makes it
easy to develop your own GIS application which meets the specific needs of your
users. The project's gallery hosts many
examples, from smart grid to forestry to logistics. uDig is jointly licensed
under the Eclipse Public License and a BSD license, and you can find its
Java-based source code on GitHub.
In addition to these desktop
tools, there are numerous tools beyond the desktop that
GIS users can take advantage of. There are libraries for developing web-based mapping tools like
Leaflet and OpenLayers. On the database site, most major database systems will
support basic X/Y coordinates, but PostGIS leads the
pack with spatially-enabled open source databases by providing extensions on
top of PostgreSQL. Libraries like GDAL/OGR provide base
functionality to many other spatially enabled programs and have bindings for
many popular programming languages. Projects like GeoServer and MapServer offer
server-side spatial data hosting.
Many
of these open source projects find commercial support from companies like Boundless.
The open source geospatial ecosystem is rich, and perhaps richer, than its
closed-source counterpart. Several of the projects above fall under the
umbrella of OSGeo, the Open Source Geospatial Foundation,
which houses a number of different geographic tools and projects which are
worth checking out.