Tuesday, September 17, 2019

Open Source GIS

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.

No comments:

Post a Comment