About GRASS: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
Line 79: Line 79:
GRASS offers the user the whole range of GIS functions and together with other (free) software tools it provides a complete and powerful GIS software infrastructure for low costs.
GRASS offers the user the whole range of GIS functions and together with other (free) software tools it provides a complete and powerful GIS software infrastructure for low costs.


The design of GRASS is  not meolithic as in other GIS software but modular and consists of several hundreds of stand alone modules which are loaded when they are called into a GRASS session.
The design of GRASS is  not meolithic as in other GIS software but modular and consists of several hundreds of stand alone modules which are loaded when they are called into a GRASS session. GRASS consists of more than 350 stand alone modules at the moment.


===== Programming and extending GRASS =====
===== Programming and extending GRASS =====

Revision as of 09:25, 26 December 2006

This wiki page is initially for organizing the writing of a GRASS entry for the "Springer Encyclopedia of GIS", in future this wiki page will contain the article itself.

The entry structure

The Structure of the entry is given by springer. I received a .tex file which I fill with the text when this text is reviewd by the community (and my wife because she's an english teacher :-)).

Inspiration


Issues

  • Who owns the copyright for the article? Springer? The author(s)?

The Contract says: The author hereby grants and assigns to Springer- Verlag the sole right to publish, distribute and sell... the contribution and parts thereof...

Springer verlag will take ... either in his own name or in that of the author any necessary steps to protect these rights against infringement by third parties. It will have the copyright notice inserted into all editions of the work according to the provisions of the Universal Copyright Convention and dutifully take care of all formalities in this connections, either in its own name or in that of the author.

  • Should the article be wholly original or can it be derived (cut and pasted) from existing GRASS texts (e.g. the GRASS logo; website content)?

I supose we should write something new and shouldn't cut & paste because of the following point.

  • If cut&pasted, does that put the existing GRASS website text etc at risk? (let's avoid a Eric Weisstein's MathWorld vs. CRC Press style nightmare [1])

see above

  • Can we reuse the text? (e.g. publish it here on the wiki or as an article in a future GRASSNews newsletter)

I will ask the people at springer

What needs to be done?

The original deadline is December 29, but we can submit it by Jan. 8. But I try to finish it until the end of december, because the next abstract deadline for me is in mid of January...

the entry should be 8-12 pages - here is an example: http://refworks.springer.com/mrw/fileadmin/pdf/GIS/VoronoiEncy

Here is some additional information: http://refworks.springer.com/geograph/

Here are the templates: http://refworks.springer.com/geograph/

And here is a list of other entries (as of 2006-11-21) http://www.carto.net/neumann/temp/gis_encyclopedia_toc.pdf

The Entry

  • screenshots needed? if so, how many?
  • no limit, but I think we shouldn't include more than 3
  • I would suggest some screenshots with 3d vector and 3d raster

Title:

GRASS

Author

Malte Halbey-Martin, Inst. of Geogr. Sciences, Free University Berlin, Germany

Please put your name here when you have written something

Synonyms

Geographic Resources Analysis Support Software, GRASS- GIS (Geographic Information System)

Definition

GRASS- GIS (Geographic Resources Analysis Support Software) is as software for geospatial analyses and modelling which has the capabilities to manage raster and vectordata.In addition it supports three dimensional modelling with 3D raster voxel or 3D vector data and contains several image processing modules to manipulate remote sensing data. It comes along with visualisation tools and interacts with other related software packages e. g. R- language, gstat and Quantum GIS. GRASS supports a variety of GIS formats due to the usage of the GDAL/OGR library. It also supports the OGC- conformal Simple Features. It can connect to databases via ODBC and supports spatial databases like PostGIS. GRASS datasets can be published on the internet with the UMN Mapserver.

The software is published under the conditions of the GNU General Public Licence (GPL) so anyone can see the source code, the internal structure of the software and the algorithms which are used.Therefore every user can improve, modify or extend the program for his own needs. A striking advantage of the program is that no licence fees have to be paid because of the terms of the GPL. Programmers all over the world contribute to the software.It is one of the biggest Open Source projects in the world (more than one million lines of source code). GRASS runs on a variety of platforms like GNU/Linux, MS- Windows, MacOS X and POSIX compliant systems. It is completely written in C although a Java version also exist (JGRASS).

Historical Background

The history of GRASS goes back to the early eighties. Initially GRASS has been developed by the U.S. Army Construction Engineering Research Laboratory (CERL), Champaign, Illinois since 1982 due to the need of new landmanagement and environmental planing tools for military installations. Emphasis was taken on raster analyses and image processing, because the aim of the analyses was the estimatation of the impact of actions on continuous surfaces like elevation or soils \cite{neteler2003opensourceGIS} and there was no adequate raster GIS software on the market at that time. Modules for vector processing were added later.

The first version of GRASS was released in 1984 \cite{VanWarren2004}. Because the development of GRASS was financed by taxes the program must have been published as public domain software following the US American law. The source code was completely published on the Internet during the late eighties which brought a significant input into the development of GRASS. The CERL withdrew from GRASS development in 1995. An international developer team overtook this task and in 1997 GRASS 4.2 was published by the Baylor University, Waco Texas, USA and GRASS 4.2.1 from the Institute of Physical Geography and Landscape Ecology, University of Hannover, Germany in 1999. Since then GRASS has been published under the terms of the GPL of the Free Software Foundation. In 1999 the work at version 5.0 was started and the headquarter of the "GRASS Developer Team" moved to the Instituto Trentino di Cultura (ITC-irst), Trento, Italy. GRASS 5.0 was released in 2002, followd by version 6.0 in March 2005, when a complete workaround of the GRASS vector engine had been done. The current stable version is 6.2 which was released at the end of October 2006 \cite{http://grass.itc.it/devel/grasshist.html}.

GRASS was a founding project of the Open Source Geospatial Foundation (OSGeo.org) which was established in February 2006 to support and build high-quality open source geospatial software.

Scientific fundamentals

Philosophy of GRASS

The most distinguishing feature of GRASS in comparison to other GIS- software is that the source code can be explored without any restrictions so everyone can study the algorithms which are used. This open structure allows everybody to contribute to the source code to improve GRASS or to extend it for his own needs. For this purpose GRASS provides a GIS- library and a free Programming Manual, which can be downloaded from the GRASS- project site (www.grass-irc.it). Therefore the user has full control of the analyses he does. Besides this point the GPL protects the contributing people of using their code in proprietary software where no free access to the source code is granted. Following the terms of the GPL all code which is based on GPL licensed code must be published again under the GPL.

GRASS offers the user the whole range of GIS functions and together with other (free) software tools it provides a complete and powerful GIS software infrastructure for low costs.

The design of GRASS is not meolithic as in other GIS software but modular and consists of several hundreds of stand alone modules which are loaded when they are called into a GRASS session. GRASS consists of more than 350 stand alone modules at the moment.

Programming and extending GRASS

GRASS is written in C and comes along with a sophisticated and well documented C / C++ API \cite{GRASS2006}. As a side effect of the open source philosophy the user has the ability to learn how to develope own applications from existing modules by exploring their source code.

Besides that options GRASS owns the possibility to call the functions already implememented in GRASS with high level programming languages like Python. For that purpose a GRASS-SWIG interface is available which translates ANSI C / C++ declarations into multiple languages (Python, Perl). It contains also an integrated parser for scripting languages.

For easy creation of GRASS extensions it comes along with a extension manager so no source code is needed to build additional GRASS modules. To automate repeating tasks in GRASS shell scripts can be written.

Interoperability: GIS and Analysis Toolchain

GRASS is designed the way that it offers a highly and robust interoperability with outside applications, giving the user tremendous flexibility and efficiency for accomplishing analyses.

Relational Database Systems

GRASS can directly connect to relational database management systems (RDBMS) like SQlite, MySQL and PostgreSQL. It even supports PostGIS, the spatial extension of PostgreSQL. To other external RDBMS GRASS offers the connection via the ODBC driver(GRASS Manual). A way to connect to an Oracle / Spatial database is described here \cite{http://www.oracle.com/technology/pub/articles/mitasova-grass.html}.

Statistical Analysis

For statistic analyses of geodatasets R (a statistic environment, further explanation see \cite{www.r-project.org}) can be called within a GRASS session. Another software to perform geostatic procedures is gstat. For both software packages GRASS interfaces exist. Therefore gstat and R can directly use GRASS raster- and vector datasets and will do their calculations in the spatial region definied in GRASS. This combination offers a high potential for geostatistic analysis as shown by \cite{Bivand2000} and \cite{bivand00open}. GRASS can import and export Matlab binary (.mat) files (version 4) for processing numeric calculations outside GRASS.

Interoperability with other GIS Software

GRASS supports nearly all common GIS file formats to allow the user to use other GIS applications or external datasources because of its binding to the GDAL/OGR library and the support of the OGC Simple Features. Therefore the data excange between various applications and between several user is easy. The internal file structure implemented in GRASS, coupled with UNIX-style permissions and file locks, allows concurrant access to any given project. In this way, several individuals can share the resources of a single machine and dataset. GRASS works closly together with Quantum GIS. GRASS modules are accessible through a GRASS plugin in Quantum GIS.

2D and 3D Visualization

While GRASS comes with fully functional 2D cartography and 3D visualization software (NVIZ), it interacts with other software tools to produce maps or to visualize geographic data sets. GRASS contains exportfilter for Generic Mapping Tool (GMT) files and various image formats so maps can be generated with external image manipulating programs.

For 3D visualization of 3D vector and raster datasets GRASS can export them in VTK (Visualization ToolKit) files which can be viewed in Paraview and script files for Povray, a raytracer to design 3D graphics. Aditional VRML (Virtual Reality Modeling Language) files can be created. Animations can be build with NVIZ or the external programs mentioned above.

Web Mapping

The UMN Mapserver can connect to GRASS and can read GRASS geodatasets directly. With the help of PyWPS (Python Web Processing Service, an implementation of the Web Processing Service standard from the Open Geospatial Consortium) GRASS modules are accessible via web interfaces easily. Thereby GRASS can serve as a backbone in WebGIS applications.

Key applications

GRASS is currently used around the world in academic and commercial settings as well as by many govermental agencies and environmental consulting companies. Due to the variety of spatial data and application fields this selection just gives an overview of applications where GRASS was adopted. A collection of papers describing a variety of applications where GRASS has been used can be found here \cite{grassconf2004}.

Archaeology

GIS is of growing importance in this domain. Therefore GRASS has been widely used in archaeology to support the survey of excavation areas or to simulate the behaviour of ancient agents. GRASS has been used to model the most suitable place to conduct a survey \cite{Brandt1992} in the netherlands. Following the assumption that the settlement actions of the ancient people shows regional patterns, locations most suitable for archaeologic sites can be derived. \cite{Ducke2002} used artificial neural networks as a tool to predict archaeological sites in East Germany. \cite{Lake1998} extented GRASS to automate cumulative viewshed analysis. They also shows how the potential of GIS increase when the software is modified for specific needs. For the modelling of pedestrian hunters and gantherers GRASS contains MAGICAL, which consists of three seperate GRASS modules \cite{Lake2001}. With that model one can simulate multiagent spatial behaviour. How much archaeological surveys can benefit from the incoorporation of GRASS is shown by \cite{Brandon1999}. \cite{Merlo2005} proposed how a GRASS based multidimensional GIS framework for archaeological excavations can be developed.

Biology

\cite{Tucker1997} used GRASS to model the bird distribution of three bird species in north-east England using a Bayesian rule-based approach. They linked data about habitat preferences and life-histry of the birds against physiogeographic and satellite data using GRASS.

For the Iberian Peninsula \cite{Garzon2006} have used GRASS to model the potential area of Pinus Sylvestris. They predict the habitat suitability with a machine learning software suite in GRASS GIS. They incorporated three machine learning technics (Tree-based Classification, Neural Networks and Random Forest). All three models show a larger potential area of P. sylvestris as the present one. In the Rocky Mountains National Park tree population parameters have been modeled by \cite{Baker1997} for the forest-tundra ecotone.

Environmental Modelling

GRASS offers a variety of technics to conduct environmental modelling tasks as described in \cite{Mitasova1995}. An overview of the potential of GRASS in environmental modelling is given from \cite{Mitchell2002}. Besides the ability to write own models GRASS has several kinds of models already implemented. It contains model for hydrologic modelling (Topmodel, SWAT, Storm Water Runoff, CASC2D), watershed calculations and floodplain analyis as well as erosion modelling (ANSWERS, AGNPS 5.0, KINEROS). Furthermore there are existing models for landscape ecological analysis and wildfire spreat simulations. GRASS has been widely used in environmental modelling because its strong raster and voxel processing capabilities.

Geography (Human / Physical)

GIS are used in a wide range of analysis in human and physical Geography because both directions makes extensivliy use of geodata or spatial geodatabases. Therefore GRASS as a GIS software is used in geographic surveys the world over.

Geology / Planetary Geology

\cite{Kajiyama2004} and \cite{Masumoto2006} used GRASS to derive 3D geological models in Japan. Kajiyama et al used a Digital elevation model (DEM) and a logical model of the geological structure to derive the surface boundaries of each geologic structure in the study area. From these data they built a 3D geological model.

GRASS has been also used in planetary geology. \cite{Frigeri2004} identified Wrinkle Ridges on Mars which can be an evidence of existing subsurface ice on the planet. They used Mars MGS and data from the Viking Mission. The mapping of geologic features from Mars data is done by \cite{Deuchler2004}. The ability to import the raw data from various Mars datasets and to reproject them in easy way is seen as a great benefit by the authors of this survey. The authors detected tectonic surface faults and assigned them to a geologic Mars region.

Geomorphology / Geomorphometry

Modules for surface analyses in GRASS offers the possibility to derive terrain parameters like slope, aspect, pcurve and tcurve in one step. \cite{Bivand1999} has shown how the geomorphology of a examplery study area in the Kosovo can be statistical analysed with GRASS and R. From a subset of GTOPO30 elevation date he performed various statistic computations on selected relief parameter leading to a classification of geomorpholic units. \cite{Grohmann2004} has used the combination of GRASS and R to perform morphometric analysis of a mountainous terrain in Brazil. With this package he derived morphometric parameters (hypsometry, slope, aspect, swat profiles, lineament and drainage density, surface roughness, isobase and hydraulig gradient) from DEMs and analysed these parameters statistically.

GRASS has also been used to define landslide succesiblity areas by \cite{Clerici2002}. They used a combination of GRASS with the gawk programming language to create landslide susceptibility maps of Parma River basin in Italy. They showed that even large datasets can be processed in GRASS fast and without problems.

The characterization of landscape units which are not only used in geomorpholgy but also in other scientific domains like soil science or environmental modelling, has benefited a lot from GRASS in the past.

Geostatistics

\cite{bivand00open} has used a combination of GRASS, R and postgreSQL to analyze various geodatasets. They have shown that these technics provide a powerful toolbox to analyse natural phenomena as well as socio-economic data.

Hydrologic Modelling

Hydrologic models can be easily parameterized with GRASS \cite{Savabi1995}. \cite{Cullmann2006} calculated a more appropriate flow time as an input for the flow analyisis of a river in East Germany based on WaSiM-ETH. Besides the available models implemented in GRASS, own models can be realised in GRASS as shown by \cite{Frankenberger1999}. They incorporated a Soil Moisture Routing model which combines elevation, soil and landuse data and predicts soil moisture, evapotranspiration, saturation-excess overland flow and interflow for a watershed.

Oceanography

For nautical hydrographic surveys GRASS offers some helpful modules to generate bathymetric surfaces by the interpolation of sounding data. \cite{Kaitala2002} built up an environmental GIS database for the White Sea based on GRASS GIS incoorporating seveveral hydrological and chemical parameters to validate numerical ecosystem modeling with the purpose to evaluate effects of climate change and human impact on the ecosystem.

Landscape epidemiology and public health

With the help of GIS the spread of epidemics can be analysed or predicted. With GRASS the outbreak of the avian influenza in northern Italy in the winter 1999-2000 was examined by \cite{Manelli2006}. GRASS and R were used to map the distribution of the outbreaks of highly pathogenic avian influenza which was caused by a H7N1 subtype virus.

To predict the risk of Lyme Disease for the Italian province of Trento GRASS has been used in several studies. The distribution of ticks infected with Borrelia burgdorferi s.l. was analysed by \cite{rizzoli2002geographical} with a bootstrap aggregation model of tree based classifiers in GRASS. The occurence of ticks were cross-correlated with environmental data in the GIS. \cite{furlanello2003gis} developed a spatial model of the propability of ticks presence using machine learning technics incorporated in GRASS and R.

A combination of GRASS GIS, Mapserver and R is used by the Public health Applications in Remote Sensing (PHAiRS) NASA REASoN project \cite{Benedict}. The objective of this project is to offer official authorities dynamic informations on illnesses and conditions. Environmental and atmospheric conditions which affect public health are derived from NASA data sets in a way that local public health officials can use them for their decisions.

Precision Farming

The potential of GRASS for Precision Farming is shown in \cite{Haverland1999}. \cite{Mccauley1999} testet a combination of cotton grow models and GRASS for the development of a spatial simulation methodology for precision farming.

Remote Sensing

GRASS with its sophisticated raster processing capability and the already implemented image processing modules offers the user a high potential for processing remote sensing data for low costs. The existing modules include functions for image preparation, image classification and image ratios. The software has also some functions for creating Orthofotos and image enhancement. \cite{neteler2005imgToolbox} give an overview of the tools for image processing in GRASS.

The potential to detect objects from airbone Laser Scanning data for urban mapping and natural hazard analysis is described in \cite{Hoefle2006,Rutzinger2006}.

\cite{neteler2005modis} used GRASS to produce time series of MODIS NDVI/EVI and LST data for epidimiologic applicications.

Soil Science

Grass is used in this domain for several tasks and includes some helpful tools for soil scientist.

Terrain parameter are important input parameter in soil modeling and have widely used to map soil properties. The aspect angle is commonly used by soil scientists as a proxy for the variation in surface moisture dynamics. Together with climatic date it is possible to derive a quantitative model of the surface soil moisture status of a landscape. For the needed components of the solar radiation budget for each cell GRASS has some modules where solar radition models are incorporated. \cite{Romano2002} improved the predictive potential of pedotransfer functions which are the basement of some hydrologic models with which the soil hydraulic behavior can be characterized in a large scale. They included topographic informations in the pedotransfer functions. These terrain parameters were processed with the help of GRASS.

\cite{Ameskamp1997} derived a three dimensional continous soil model with the help of GRASS. He used fuzzy sets to represent soil-landscape relations as fuzzy rules. With this rules he examined landscape information data which led into a three dimensional soil model.

Education

The GRASS community promote the teaching of GRASS and other FOSSGIS (Free and Open Source Software GIS) to train the next generation in this forward looking technics. For this purpose education material available on the GRASS wiki \cite{http://grass.gdf-hannover.de/wiki}.

Future directions

The development of GRASS as a native Windows application and the building of a new unified Graphical User Interface for Linux, Mac, Windows and Unix using WxWidgets and Python will certainly rise the distribution of the program. The prototype code is already working. Its advantages in modelling, price and extending makes GRASS a strong alternative to other GIS software. The increasing popularity will lead into an increasing development of the software. More people will contribute to the source code, bugtracking and documentation. GRASS has some innovative functions already implemented (e. g. functions for network analysis like shortest path, route planing), waiting for new applications to be developed on top. For 3D modelling the infrastructure and moduls are in place for raster, vector and site data leading to an increasing usage in spatial modelling.

Cross References

1. Quantum GIS

2. PostGIS

3. UMN Map Server

4. OSGeo

5. Open GIS Consortium

Recommended Reading (5 - 15 entries)

  • Neteler, M. & Mitasova, H. (2004): Open Source GIS: A Grass GIS Approach. 2nd Edition. Boston.
    (of course)
  • GRASS Newsletters [2]
  • Lo, C.P. & Yeung, A.K.W. Concepts and Techniques of Geographic Information Systems Prentice Hall, 2006
  • Robinson, A.H.; Morrison, J.L.; Muehrcke, P.C. & Guptil, S.C. Elements of Cartography John Wiley and Sons, 1995
  • Haverland, G. (1999): Precision Farming and Linux: An Expose. Linux Journal.

Aditional definitions

If there are some definition in our text which would be worse mentioned in the Encyclopaedia...

Contact & Coordination

Malte Halbey-Martin
Free University Berlin
Dept. of Geosciences
Inst. of Geogr. Sciences
Malteserstr. 74-100
D-12249 Berlin, Germany
===============
tel: +49.30.83870409
fax: +49.30.83870755
email: malte at geog.fu-berlin.de
online: www.geog.fu-berlin.de/~malte

Springer contact

Jennifer Carlson / Andrea Schmidt
Development Editors
Springer
233 Spring Street
New York, NY 10016
===============
tel: 212.460.1666
fax: 212.460.1594
email: jennifer.carlson at springer.com
online: www.springer.com
Andreas Neumann <neumann at karto.baug.ethz.ch>
Institute of Cartography
ETH Zurich
Wolfgang-Paulistrasse 15
CH-8093  Zurich, Switzerland

Phone: ++41-44-633 3031, Fax: ++41-44-633 1153
e-mail: neumann at karto.baug.ethz.ch
www: http://www.carto.net/neumann/
SVG.Open: http://www.svgopen.org/
Carto.net: http://www.carto.net/