User: Password:
Subscribe / Log in / New account


The GRASS Geographical Information System

February 9, 2005

This article was contributed by Frank Pohlmann

GRASS GIS is one of the most under-hyped open-source applications currently in existence. GRASS stands for "Geographic Resources Analysis Support System"; it represents the most complete Geographical Information System available under the GPL.

The history of GRASS

GRASS has been in existence since 1982, according to the history document. It started life as a so-called environmental planning and land management system, its function was to enable the US Army Corps of Engineers' Construction Engineering Research Laboratory (USA-CERL) to manage the Pentagon's considerable landholdings.

GRASS originated on a VAX Unix environment and was ported to various Unix flavors during the 1980s. The project leader Bill Goran and the software architect L. Van Warren initially assumed that other commercial GIS systems would be easily accessible, and that they would be able to adapt such systems to the Pentagon's needs. After some analysis, they realized that no existing GIS system would meet the Pentagon's standards; they decided to create GRASS mostly from scratch, although existing Unix libraries were used wherever possible. GRASS was released as public domain software in 1985. The project received feedback from other development groups working at federal and institutions and universities.

In 1996, version 5 was in the making, but USA-CERL decided to withdraw support from the public domain version of GRASS, and collaborated with several commercial entities to create the non-free GRASSLANDS and other derivatives. In 1999 GRASS was released under the GPL while under the leadership of the University of Baylor and Markus Neteler, then at the University of Hanover. Various ports to a number of Linux flavors and non-Intel architectures have come into existence since.

These days the stable 5.4 version is available for Linux, Mac OS X, and Windows NT/2000/XP under Cygwin. It is possible to run GRASS on a number of Unix systems, but one would be well advised to compile from source, since, despite assurances to the contrary, binaries are not always available. The same advice applies to version 6.0.0, so far there are only beta and development versions available.

The GRASS Architecture

GRASS is currently undergoing a major version change, from 5.4 to 6.0.0. GRASS consists of more than 350 programs and scripts and most can be accessed from the command line. The project is almost completely GUI-accessible now. It has been running with a Tcl/Tk interface since version 5.4, that was initially coded by Jacques Bouchard. The Tcl/Tk version of GRASS is known as tcltkgrass, although from version 6.0.0 and forward, the interface has been changed considerably. The reliance on Tcl/Tk is set to grow less and less pronounced. All modules included in the GRASS tool chain that require user interaction use a new display manager to create GUIs every time they are instantiated.

The internationalization framework for GRASS is has been fully implemented, and character sets which are part of the Unicode standard can be used to implement new localization projects. The display routines now support the multi-byte character sets used in East Asian languages.

GRASS is huge, there are currently more than 1 million lines of C code. Binary versions weigh in between 30 and 150 MB, depending on the options enabled at compile time and the operating system target. C++ support is being added, although it is not clear to what extent future modules should be written in C++.

All GIS tool chains rely on databases to handle their spatial data. Internally, GRASS relies on dBase, although interfaces to external databases engines like MySQL, PostgreSQL and ODBC-based database engines exist, and are well supported. Anyone writing new modules for GRASS database access will not have to pay attention to the specifics of the database engine. For users and programmers, a basic Unix-type sub-directory structure with pre-configured directory names has to be created first, since it is hard coded into the GRASS installation and configuration files.

Multiple GRASS sessions can now be started from the same installation. This is particularly useful for instances where users might want to work on different versions of the same dataset. It is even possible to start 5.4 sessions and 6.0 sessions concurrently without having to worry about version conflicts.

GRASS supports both raster-based and vector-based data management; but unlike many other GIS systems, it supports a large variety of image processing modules, the creation of maps using the PROJ.4 cartographic projections library, and data visualization. Grass can process 2D and 3D raster data in 40 different formats including the bmp and jpeg formats as well as the less common JDEM format. The GDAL library supports many formats, although many of the more obscure formats can only be read, not created. 3D raster (voxel) volumes have been folded into GRASS quite recently with the 5.7 development version. Routines from the scriptable NVIZ package make it easy to visualize the same 3D raster data, since it includes new 3D display routines.

Vector data handling has been the subject of a complete rewrite. GRASS 6.0.0 is now able to handle topological vector data fully, and the vector geometry engine uses a data format that can live on 32 and 64-bit processors. Internal data structures have been rewritten in such a way that vector data can be accessed much more quickly. Vector data include non-spatial attributes that are best processed by traditional SQL-driven database management systems, a factor in the decision to include external database support.

GRASS can also handle PostGIS geographical objects stored on PostgreSQL. PostGIS objects are accessed as a vector file format. They are made available through the OGR Simple Features Library, which is a part of the GDAL package.

GRASS Applications

GRASS has been used in many contexts, from academic environments to soil erosion modeling and social science simulations. Vector network analysis is a well-established technique that adds another data modeling layer to the range of information evaluation tools already available. Statistical routines are accessible via the R interface, this makes it possible to produce geostatistics.

The number of interfaces, scripting routines, visualization packages as well as its stability and scalability make GRASS a truly unique addition to the stable of Linux applications. GRASS has also become the focus around which several Linux distributions have been built, including GIS Knoppix and Quantian. Enjoy!

Comments (5 posted)

System Applications

Audio Projects

Planet CCRMA Changes

The latest changes from the Planet CCRMA audio utility packaging project include the addition of Qjackctl 0.2.15-1, the 2.6.10 kernel for Fedora Core 2 and 3, ZynAddSubFX 2.1.1-2, and Pd externals for Fedora Core 3.

Comments (none posted)

Database Software

PostgreSQL Security Release for versions 8.0, 7.4, 7.3, and 7.2

A security release of the PostgreSQL database has been announced. "In order to address a potential security hole recently identified with the "LOAD" option, the PostgreSQL Global Development Group is announcing the release of new versions of PostgreSQL going back to the 7.2.x version."

Comments (none posted)

PostgreSQL Weekly News

The February 4 2005 edition of the PostgreSQL Weekly News is online with the week's summary of PostgreSQL database information.

Full Story (comments: none)

Object-Relational Mapping with SQLMaps (O'ReillyNet)

Sunil Patil looks at SQLMaps on O'Reilly. "Hibernate is great--if your DBA will let you run generated database queries on his or her system. Sometimes you need to keep the option of hand-optimized queries open. Sunil Patil introduces SQLMaps, a framework that allows you to do just that."

Comments (1 posted)

MySQL-python 1.1.10

Version 1.1.10 of MySQL-python, the Python interface to the MySQL database, is out. "MySQL-3.22 through 4.1 and Python-2.3 through 2.4 are currently supported."

Comments (none posted)

MySQL Triggers Tryout (O'Reilly)

Peter Gulutzan explores MySQL triggers on O'Reilly. "MySQL 5.0, the alpha version of MySQL that's available for testing new features, has trigger support. This is no surprise, as triggers were promised in the MySQL Development Roadmap, but it's a novel experience to work with one of the big "MySQL can't do that" features and watch MySQL doing it."

Comments (none posted)


Samba 3.0.11 Available for Download

Stable version 3.0.11 of Samba is available for download. "This is the latest stable release of Samba. This is the version that production Samba servers should run for all current bug-fixes."

Full Story (comments: none)

Networking Tools

Nagios Plugins 1.4 released (SourceForge)

Version 1.4 of Nagios Plugins, an open source monitoring system, is available. "This release includes major enhancements. With the growth of internet enabled devices, the IPv4 addressing range will be used up soon. Jeremy T Bouse has integrated IPv6 support into our networking utilities, so you can now monitor your next generation network."

Comments (none posted)

Peer to Peer

WASTE v1.5 beta 3 Now Available (SourceForge)

WASTE "is an anonymous, secure, and encrypted collaboration tool which allows users to both share ideas through the chat interface and share data through the download system." Version 1.5 beta 3 of WASTE has been announced. "This new release features a brand new installer, a mini version for those with a low bandwidth connection (excludes documentation), and the first release of WASTE in other languages."

Comments (1 posted)

Web Site Development

ATutor 1.4.3 Released (SourceForge)

Version 1.4.3 of ATutor, a Web-based Learning Content Management System (LCMS), is available. "Current ATutor users are encouraged to upgrade their systems to take advantage of the many new features that have been added to this release."

Comments (none posted)

UnCommon Web 0.3.5 released

Version 0.3.5 of UnCommon Web, a Common Lisp-based web application development framework, is out. "This version features several changes related to components and component rendering, the TAL/YACLML template and formatting languages, backends, documentation, and more."

Full Story (comments: none)

Desktop Applications


The Silent Soundtrack (O'Reilly)

John E. Simpson applies XML to captioning on O'Reilly. "It's taken a while for movie producers and distributors to catch up to the closed-captioning capabilities of the hardware, but they're almost there. Yet in one important area, content is still all too often obscured from my earnest attention: computerized multimedia. From games to Flash and Shockwave animations to Quicktime and Windows Media clips, what's going on on my PC is frequently just flat-out lost on me. Computers... text... hmmm. You'd think XML might come to the rescue here. And so it does."

Comments (none posted)

Business Applications

Compiere R2.5.2 with Database Independence (SourceForge)

Version 2.5.2 of Compiere, an ERP + CRM business application, has been announced. "Compiere to date, has been available on Oracle. We are pleased to announce that it is now also available on Sybase. Several independent open source projects have ported Compiere to different databases."

Comments (none posted)

Data Visualization

Gmsh 1.59 is available

Version 1.59 of Gmsh, a three-dimensional finite element mesh generator, has been announced. "In addition to the usual bug fixes, Gmsh 1.59 adds support for discrete surfaces, introduces several new default plugins, and improves the solver interface."

Comments (none posted)

Desktop Environments

The Equinox Desktop Environment

Equinox Desktop Environment is a new lightweight desktop system that is based on FLTK, the Fast, Light ToolKit.

Equinox Desktop Environment (shortly EDE) is small desktop environment, builted to be simple and fast. It is based on modified FLTK library (called extended FLTK or just eFLTK). Comparing to other desktop environments, EDE is much faster and smaller in memory space (EDE's window manager use less memory than xterm). By the way, it is for now, little bit buggy :(

EDE Version 1.0.2 was announced this week, it promises stability improvements and new features.

Comments (none posted)

GNOME 2.10 Beta 1 Public Testing Release (GnomeDesktop)

GnomeDesktop has an announcement for the new GNOME 2.10 Beta 1 Public Testing Release. "Also known as 2.9.90, GNOME 2.10 Beta 1 is the first pre-release intended for wide public scrutiny before the final release in March. It is packed full of tasty GNOME goodness, so if you're itching to find out what we've been doing, and can't wait to finish building it, take a look at Davyd's Sneak Peek this release".

Comments (none posted)

GNOME Software Announcements

The following new GNOME software has been announced in the last week:

Comments (none posted)

KDE Software Announcements

The following new KDE software has been announced in the last week:

Comments (none posted)

KDE CVS-Digest (KDE.News)

The February 4, 2005 edition of the KDE CVS-Digest is online with the following content summary: "Digikam does black and white tonal conversion. KPDF implements history and KTTSD (screen reader) support. KMail adds graphical emoticons. KNotes implements read-only support. Konqueror shows document title and favicon in location bar autocomplete. amaroK supports the Akode engine"

Comments (none posted)

The Big Kolab Kontact Interview - Part II (KDE.News)

KDE.News continues its interview with the Kontact and Kolab developers. "KMail is the best Open Source e-mail program existing today and with KOrganizer and KAddressBook we already had two other important parts of a PIM solution. So why should we start from scratch? With KParts, XML-GUI and DCOP, KDE offers an incredibly cool framework which made it quite easy to integrate these applications without throwing away existing and well tested code, so it was clearly the way to go."

Comments (none posted)


Open Collector Releases

The latest new electronics applications on Open Collector include QOscC 0.1.6 (software oscilloscope), SC2V 0.3 (SystemC to Verilog synthesizable subset translator), and Confluence 0.10.2 (declarative functional programming language for the design and verification of synchronous reactive systems).

Comments (none posted)

XCircuit 3.3.8 released

Version 3.3.8 of XCircuit, an electronic schematic drawing package, is available. This version features fixes for several bugs.

Comments (none posted)

Financial Applications

Eclipse Trader 0.12 Released (SourceForge)

Version 0.12 of Eclipse Trader is out. "Eclipse Trader is a set of plugins for the Eclipse RCP (Rich Client Platform) dedicated to the building of an online stock trading system. This release adds a simple alerts system that may be used to receive notifications when a stock item reaches a predefined price level, and a new plugin for the Directa Trading (Italy) service. This plugin provides realtime data and trading feature for Directa customers."

Comments (none posted)


Ember 0.2.0 Released

The WorldForge game project has announced version 0.2.0 of Ember. "Ember is a 3d client for the WorldForge project. It uses the Ogre 3d graphics library for presentation and CEGUI for it's GUI system. This is the first release of Ember since it's fork from the Dime codebase. The focus has been on getting a working client out of the door. Games such as Mason are fully playable."

Comments (none posted)

Reviving Pygame

The PyGame site has been mysteriously quiet for a few months, now there's an explanation: "As you might have noticed, Pete has been MIA recently. A group of Pygame users (Bob Ippolito, Rene "illume" Dudfield, Joe "piman" Wreschnig, and others in #pygame) are trying to organize the 1.7 release in his absence. If you know of any bugs in Pygame 1.6.2 that haven't been fixed in CVS (if you don't know and don't know how to check, assume they aren't), please stop by #pygame on".

Comments (none posted)


G3D 6.05 Beta 2 Released (SourceForge)

Version 6.05 beta 2 of G3D, a cross-platform 3D engine for games and other applications, has been announced. "The 6.05 beta 2 release includes new support for the 3DS file format, 2D and video rendering, optional wxWidgets integration, workarounds for bugs in old graphics cards, and major performance improvements in the networking API. It is also the first release to support the new g++ 3.4 on Linux and has a Win32 installer for easy setup."

Comments (none posted)

Instant Messaging

IRC Text to Speech with Java (O'Reilly)

Paul Mutton applies a speech synthesizer to IRC on O'Reilly. "This article will show you how to create a multi-platform IRC bot (an automated client) that uses the FreeTTS Java speech synthesizer library to convert IRC messages into audible speech."

Comments (none posted)


Wine Traffic

The February 4, 2005 edition of Wine Traffic is online, take a look for the latest developments in the Wine project.

Comments (none posted)

Music Applications

blepvco 0.1.0 - LADSPA minBLEP hard-syncable VCOs

Version 0.1.0 of blepvco is out. "blepvco is a LADSPA plugin library containing three anti-aliased, minBLEP-based, hard-sync-capable oscillator plugins. The oscillators are intended to be used with modular synthesis systems, such as Alsa Modular Synth (a couple example AMS patches are included)."

Full Story (comments: none)


Mathomatic 12.0 released

Stable version 12.0 of Mathomatic is out. "Mathomatic is a highly portable, general purpose CAS (Computer Algebra System) written entirely in C. It is totally free software (GNU LGPL license). This is a console mode application that compiles and runs under any operating system with a C compiler. It has been under development since 1986 and now stands at 15,000 lines of code."

Comments (none posted)

Web Browsers

Mozilla 1.8 Roadmap Updates (MozillaZine)

MozillaZine covers the latest Mozilla Development Roadmap announcement. "Following on from the recent Mozilla Firefox Roadmap update, the main Mozilla Development Roadmap has also been revised. The big news is that there will be a second Mozilla 1.8 Beta release in March."

Comments (none posted)

Minutes of the Staff Meeting (MozillaZine)

The minutes from the January 24, 2005 staff meeting are online. The MozillaZine summary says: "Issues discussed include Mozilla 1.8 Alpha 6, Mozilla Firefox 1.0.1, Mozilla Firefox 1.1, deploying Hendrix and the broken website tool."

Comments (none posted)

Independent Status Reports (MozillaZine)

MozillaZine has announced the February 7, 2005 edition of the Mozilla independent status reports. "The latest set of independent status reports includes updates from Journal, Link Visitor, Spurlbar, biobar, cuneAform, Figaro, Research Buddy, Abacus MathML Editor, IE View, ConQuery, Launchy, viewbgplus, Searchsidebar and Flashblock."

Comments (none posted)

XForms 1.0 Beta Plugin Available for Gecko (MozillaZine)

MozillaZine reports on the availability of version 1.0 of the XForms plugin for Mozilla and Firefox. "The Mozilla Foundation today released a beta version of its XForms plugin for Gecko-based browsers. XForms 1.0 is a W3C recommendation that allows web page authors to take advantage of structured data and client-side validation when designing forms. XForms is designed to be embedded in XML documents, such as XHTML 1.0. Mozilla XForms support has been developed over the last several months by IBM, Novell, and independent contributors."

Comments (none posted)


Sunbird 0.2 Released (MozillaZine)

MozillaZine carries the announcement of the first official release of the Sunbird calendaring program from the Mozilla Project. For the curious, screenshots can be found on the Sunbird page.

Comments (9 posted)

Languages and Tools


Caml Weekly News

The February 8, 2005 edition of the Caml Weekly News is online with the week's Caml language news.

Full Story (comments: none)


Bitwise Optimization in Java: Bitfields, Bitboards, and Beyond (O'ReillyNet)

Glen Pepicelli manipulates bits with Java in an O'Reilly article. "Flipping bits on and off is the lowest level of computing, and most Java developers are totally isolated from it. But maybe they shouldn't be. In this article, Glen Pepicelli introduces the idea of bitsets--ints and longs whose bitwise representation are the data you're interested in--and how they can be used with mathematical and logical operators to write faster code."

Comments (none posted)

An Introduction to TMAPI (O'Reilly)

Robert Barta and Oliver Leimig introduceTMAPI on O'Reilly. "There are several software packages for Java developers when they need to develop applications using XML Topic Maps. There are some proprietary software vendors and also open source packages like TM4j, tinyTIM, and a few others. In the Java tradition to standardize interfaces, the TMAPI project has proposed a set of Java interfaces which particular Topic Map implementations may choose to adhere to. The obvious advantage for the application developer is to use only that single set of interfaces and to choose a particular implementation on other merits."

Comments (none posted)

AOP tools comparison, Part 1 (IBM developerWorks)

Mik Kersten discusses tools for Aspect-oriented programming on IBM developerWorks. "AOP is a technology whose time has come, but how do you choose the right tool for your projects? In this first article in the new AOP@Work series, aspect-oriented programming expert Mik Kersten compares the four leading AOP tools (AspectJ, AspectWerkz, JBoss AOP, and Spring AOP) to help you decide which one is for you. In Part 1 of this two-part discussion, the author focuses on the tools' language mechanisms and the trade-offs imposed by the different approaches."

Part two of the series is also available.

Comments (none posted)

Cover your code with Hansel and Gretel (IBM developerWorks)

Dennis M. Sosnoski writes about the Hansel and Gretel code coverage tools on IBM developerWorks. "Unit tests provide a great technique for making sure that code performs to specifications. But the quality of unit tests is up to the test writer, and the results from unit tests are only as good as the quality of the tests. How can you make sure your unit tests deliver the quality you need? In the first article of this new series dedicated to classworking tools, regular developerWorks contributor Dennis Sosnoski discusses how code coverage tools provide one important quality check for your tests."

Comments (none posted)


Parallel Computing in Lisp

A series of web log entries about parallel computing in Lisp are available. "Bill Clementson has written a new weblog entry in a series about parallel computing in Lisp. The latest entry, posted on 25 January 2005, deals with the feedback he got on the previous ones. Bill started posting weblog entries in this series in April 2004. They discuss the various approaches, dialects and tools for parallel computing in Lisp."

Full Story (comments: none)


This Fortnight in Perl 6

The January 19-31, 2005 edition of This Fortnight in Perl 6 is online with another collection of Perl 6 topics.

Comments (none posted)

Throwing Shapes (O'Reilly)

Vladi Belperchinov-Shabanski discusses the Remote Procedure Call under Perl. "In the Perl world there are several modules that offer different kinds of RPC, including RPC::Simple, RPC::XML, DCE::RPC, and more. In this article I'll explain how to use Perl-specific features to develop a compact RPC implementation that I will name Perl-centric Remote Call (PerlRC). As the name suggests, it will run only with Perl clients and servers."

Comments (none posted)


Python 2.3.5 released

Python 2.3.5 - a bugfix release - is now available. Included therein is the fix for the SimpleXMLRPCServer vulnerability. This is the last planned update for Python 2.3.

Full Story (comments: none)

python-dev Summary

The python-dev Summary for December 16-31, 2004 is out with another summary of traffic from the python-dev mailing list.

Full Story (comments: none)

python-dev Summary

The python-dev Summary for January 1-15, 2005 is out with another summary of activity on the python-dev mailing list.

Full Story (comments: none)

Dr. Dobb's Python-URL!

The February 9, 2005 edition of Dr. Dobb's Python-URL! is online with the latest Python language articles and resources.

Full Story (comments: none)

More Test-Driven Development in Python (O'ReillyNet)

Jason Diamond continues his O'Reilly series on Test-Driven Development in Python with part two. "The goal of test-driven development is not to produce tests; they're merely a helpful by-product. The real goal is to produce elegant, working code. Jason Diamond demonstrates how test-driven development can improve the design of code."

Comments (none posted)


Ruby Weekly News

The February 6, 2005 edition of the Ruby Weekly News is available with the latest news and discussion from the ruby-talk mailing list.

Comments (none posted)


Dr. Dobb's Tcl-URL!

The February 8, 2005 edition of Dr. Dobb's Tcl-URL! has been published. Take a look for the latest Tcl/Tk news.

Full Story (comments: none)


The XPath 2.0 Data Model (O'Reilly)

Bob DuCharme discusses the XPath 2.0 data model on O'Reilly. "As XSLT 2.0 and its companion specification XQuery 1.0 approach Recommendation status, it's time to step back and look at a more fundamental difference between 2.0 and 1.0: the underlying data models. A better understanding of the differences gives you a better understanding of what you can get out of XSLT 2.0 besides a wider selection of function calls."

Comments (none posted)

Generate SQL with XSLT 2.0 (IBM developerWorks)

Jack Herrington shows how to Generate SQL with XSLT on IBM developerWorks. "Learn to use the cutting-edge features of XSLT 2.0 and generate PHP code from an abstract data model. In Part 1 of this two-part series, Jack Herrington uses a robust multilevel transform technique to show you how to take a simple model of a target database and generate the SQL for the database server."

Comments (none posted)

Version Control

Aegis 4.20 released

Version 4.20 of the Aegis version control system is available. See the change log file for details.

Full Story (comments: none)

Page editor: Forrest Cook
Next page: Linux in the news>>

Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds