Piazza Garibaldi 5 – Pontedera (PI), Italy
Co-author: Leonardo Lami
GRASS is certainly the reference for GIS analyses in the open source world, as it allows advanced vector and raster analyses. As with most analytical programs, its approach is sometimes hard for the novice (although its graphical interface has improved a lot, and still continues to grow).
A number of projects have therefore been born to make life easier for the user. Among these, besides a number of minor projects, several are ready for production use, eg uDIG, gvSIG, OpenJUMP, and especially QuantumGIS. The good thing is that interoperability among different pieces of free software is very high, as it normally happens with open source programs. The user can therefore leverage on the strong points for each program, switching back and forth among several programs, concentrating on data structures and selecting the best tool for each work.
QuantumGIS (in short QGIS) is now probably the most attractive free and open source desktop mapping application. Its design is particularly easy to understand from the first approach, thanks to the work of its developers and to the base development libraries used (Qt: , basis of the popular KDE Linux desktop environment, and used by important companies like Adobe, ARM, Boeing, Bosch, ChevronTexaco, Daimler Chrysler, Deutsche Telekom, Earth Decision Sciences, HP, IBM, Lockheed Martin, Michelin, NASA, NEC, Pioneer, Scania, Sharp, Shell, Siemens, Skype, Sony, STN-Atlas.
A short story
Quantum GIS was created in June 2002 by Gary Sherman. After 1.5 years, in which the basis of the structure have been laid out, the development pace has increased considerably, starting from early 2004 (Fig 1 [file figura_01.png]). Developers are numerous, and widespread throughout the world (Fig 2 [file figura_02.png]). The project has been incubated in the popular SourceForge framework for open source projects (https://sourceforge.net), but has now its own structure, with a web site (https://www.qgis.org), where anybody can know more, get the program and the documentation, news, tips&tricks, interviews, etc. QGIS is now an incubating project in the larger Open Source Geospatial Foundation (OSGEO: https://www.osgeo.org)
There is a good support for users, both free, from the community (via mailing lists and an ad hoc chat channel), and paying, from firms and professionals, at conditions similar to those of any other software.
QGIS strongest point is the good integration with other powerful free GIS software, in particular GRASS, PostGIS, and UMN MapServer. Thanks to this, standard functions go well beyond those that could be expected from a desktop mapping program.
QGIS has been translated in several different languages, and more can be added with a minimal effort, thanks to code openness. It is available for Linux (where it is mainly developed), but also for all other popular platforms, including Windows and MacOSX.
The interface looks rather familiar to most GIS users; it is easy to find the desired functions, and to activate the many visualization options (Fig 3 [file figura_03.png]). QGIS can read rasters (including TIFF, JPG, ArcInfo grids, DEM, etc., for a total of more than 50 different formats) and vectors (including ESRI shapefiles, ArcInfo binary coverage, MapInfo, SDTS, etc., for a total of more than 20 different formats). One important feature is the capability of reading and writing geodatabase (PostGIS) data, both local and remote. It can also read Web Services (WMS and WFS, standard OGC). This allows the user to bring on common ground a variety of different data, thus acting as a powerful integrator.
It is possible to manipulate RGB colour bands of rasters, visualizing them in greyscale or pseudocolor and set a transparency level (Fig. 4 [file figura_04.png]); loading data can be made faster by pyramidizing the original rasters (this can be done within QGIS). It is also possible to plot the color histogram (Fig. 5 [file figura_05.png]).
Symbology management for vectors is extensive: colours and patterns for filling and outlining can be selected, also in relation to table values; labels can be shown, and attributes can be shown and queried from the tabular data (with a graphical front-end to SQL queries) and from the map; selected records are highlighted both in the table and in the map (Fig 6 [file figura_06.png]).
Another useful function allows to start an external program with a click of the mouse on a feature, based on the content of of a field of the table associated to the vector; if, for instance, we link a series of pictures to a list of points, it is possible to recall a visualization program that will show automagically the associated image (Fig 7 [file figura_07.png]).
Vector editing is possible, in various ways: shapefiles can be modified (with some limitation), as well as PostGIS geodatabase layers (PostGIS advanced digitizing is under heavy development in this period). For heavy duty digitizing, however, the best available option is the GRASS plugin; this allows to display the layers includes in the various Location and Mapset (the GRASS directory structure) and to edit vectors with an interface similar to that of GRASS, though more intuitive (Fig 8 [file figura_08.png]). With the GRASS plugin, digitalization is fully and natively topological, which prevents errors (self-intersections, dangles, etc.) to creep in your precious maps.
In QGIS it is obviously possible to save projects (essentially, a list of vector and raster data, with associated visualization options such as colours etc.) for later work; I find it very handy also the “spatial bookmarks”, a simple system of tagging specific portions of the working area, to zoom quickly to one of a series of sub-areas. The layout (colours, fills etc. for each layer) can be saved as a configuration file (.map) for the powerful free web mapping engine, UMN MapServer. The same data can thus be published on the web, keeping the desired layout, with minimal effort.
Printing is done through a dedicated window (started with the usual click on an appropriate icon), where you can easily choose paper characteristics and scale, and inserting texts, legends and scale bars (Fig 9 [file figura_09.png]). Maps can be printed, or saved in various formats: encapsulated postscript (eps) and pdf, in raster format (bitmap, jpeg, png etc.) and in scalable vector graphics (svg). Further editing of the map can thus be carried out in different image or vector editors (among the free ones: the GIMP for rasters, Inkscape for vectors).
Projections can be handled gracefully; layers in different reference systems can be reprojected in the system of choice (over 2,700 are available) on the fly, thus avoiding to duplicate data, converting them in different systems.
A modular structure: the plugins
QGIS has a modular structure,, which allows to add new functionality for specific tasks. Each plugin can be activated (as usual, just a click on the menu is necessary) at the user’s choice.
The simplest plugins allow the user to add to the map user-defined grids (Fig 10 [file figura_10.png]), scale bar, north arrow,copyright labels and more. Others allow the import and export of geographic data from various sources:
a text file can be loaded as geographical data (points), provided it has an X and Y column (plus eventual associated data; Fig 11 [file figura_11.png])
GPS data (waypoints, routes, and tracks) can also be loaded and shown, either directly or through a text file (Fig. 12 [file figura_12.png]); QGIS uses (transparently or the user) a specialized program for this: GPSBabel (https://gpsbabel.sf.net), also free and open source software; similarly, geographical data can be uploaded on the GPS
geodatabase layers from PostGIS can also be shown, and shapefiles can be imported into the database (an icon is available for this).
The GRASS plugin allows not only to display and edit GRASS layers, but also to use QGIS as a graphical interface for many GRASS commands. Activating the plugin, a window shows the commands, grouped on the basis of the function, with a graphical descrition (Fig 13 [file figura_13.png]). Clicking on one of the commands, all the relevant informations for the chosen command are shown: one window for the management of the options, one for the output messages, and one for the manual page. If for instance we need the intersection between two polygonal vectors, we just have to select the command “Vector intersection” from the group “Vector overlay”, choose the name of the two vectors to be overlayed, plus the name of the resulting vector. Then clicking on “Run” we obtain the result, which can thus be displayed on the map (Fig 14 [file figura_14.png]).
Another plugin allows the georeferencing raster images (both with linear methods, without image stretching, and with Helmert method, based on polynomials.
More specialized plugins are available, generally as separate packages since they are of very specialized use.
One of the most exciting features of version 0.9, now under development, is the possibility of writing plugins in python, a very simple yet powerful interpreted language. New plugins can therefore be written and tested with minimal effort.
QGIS is, right now, a modern piece of software, easy to use, and comparable to well-known Closed Source alternatives; being a young project, bugs are still present (a complete list on the QGIS web site; you can check yourself if any of these is critical for your work, and in case they are, fixing them is usually cheap and fast, if you wish to invest in the project). Features are constantly increasing, thanks to the open source development model. As an example, in the development version is now possible to save as shapefile any kind of vector layer that has been loaded into QGIS (including PostGIS, GPS, and GRASS), as a whole or a subselection of it, with a left-click on the layer name. Ultimately, as an open source project, it will be the response from developers and users (therefore, also yours) to determine the priorities and the outcomes of the next steps.