About GRASS
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
- The Wikipedia entry (GNU Free Documentation License; probably do not reuse any content)
http://en.wikipedia.org/wiki/GRASS_GIS
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 a powerful open source software program for geospatial analyses and modelling that can manage both raster and vector data. 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 includes visualisation tools and interacts with other related programs such as the statistical software package R, gstat and Quantum GIS. GRASS supports a wide variety of GIS formats through use of the GDAL/OGR library. It also supports Open Geospatial Consortium (OGC) - conformal Simple Features and can connect to spatial databases such as PostGIS via ODBC. GRASS datasets can be published on the internet with the UMN Mapserver software.
The software is published under the terms of the GNU General Public Licence (GPL). Anyone can see the source code, the internal structure of the software and the algorithms used. Therefore any user can improve, modify or extend the program for his own needs. No licence fees have to be paid under the terms of the GPL. Programmers all over the world contribute to GRASS, one of the largest Open Source projects in the world with more than a million lines of source code.
GRASS runs on a variety of platforms including GNU/Linux, MS- Windows, MacOS X and POSIX compliant systems. It is completely written in C although a Java version also exists (JGRASS).
Historical Background
The history of GRASS dates back to the early 1980s when it was developed by the U.S. Army Construction Engineering Research Laboratory (CERL), Champaign, Illinois, USA to meet their needs for land management and environmental planning tools at military installations. Emphasis was placed on raster analysis and image processing because a principal goal was estimation 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} and because its development was financed by federal funds, US law required that it be released into the public domain. The complete source code was published on the Internet during the late eighties, a period during which there was significant improvement in its capabilities. CERL withdrew from GRASS development in 1995 and an international team took over this task. In 1997, GRASS 4.2 was published by Baylor University, Waco, Texas, USA. In 1999, GRASS 4.2.1 was released by the Institute of Physical Geography and Landscape Ecology, University of Hannover, Germany. Since GRASS version 4.2.1, GRASS has been published under the terms of the GPL of the Free Software Foundation. In 1999 the work on version 5.0 was started and the headquarters 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 which included a complete rewrite of the GRASS vector engine. 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.
Technical 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 restriction so that anyone can study the algorithms used. This open structure encourages contributions by the user community to the source code in order to improve existing features or to extend it in new directions. For this purpose GRASS provides a GIS library and a free programming manual, which can be downloaded from the GRASS project site \cite{grass_page}. Under the terms of the GPL these contributions can not be included in proprietary software unless free access to the source code is granted. Any code which is based on GPL licensed code must be published again under the GPL.
GRASS offers the user a wide range of GIS functions. Together with other (free) software tools it provides a complete and powerful GIS software infrastructure at very low cost. GRASS is available on the project's homepage \cite{grass_page}. The design is modular, consisting of more than 350 stand alone modules which are loaded when they are called into a GRASS session.
Interoperability: GIS and Analysis Toolchain
GRASS is designed in a way that offers a highly and robust interoperability with outside applications, giving the user tremendous flexibility and efficiency for accomplishing his or her analyses.
Programming and extending GRASS
GRASS is written in C and comes along with a sophisticated and well documented C / C++ application programming interface (API) \cite{GRASS2006}. As a side benefit of the open source philosophy, the user has the opportunity to learn how to develope new applications by using existing modules as examples and exploring their source code.
In addition, GRASS functions can be called with high level programming languages like Python using, for example, the GRASS-SWIG which translates ANSI C / C++ declarations into multiple languages (Python, Perl). An integrated parser is provided for scripting languages.
Extensions can be created easily using the extension manager, so that no programming of source code is needed to build additional GRASS modules. Moreover, this modular design helps the user to add new contributions to GRASS without affecting the software suite as a whole.
To automate repeating tasks in GRASS shell scripts can be written.
Relational Database Management Systems
GRASS can connect directly to relational database management systems (RDBMS) such as SQlite, MySQL and PostgreSQL. It supports PostGIS, the spatial extension of PostgreSQL and can connect to other external RDBMS via ODBC interface. A way to connect to an Oracle database is described here \cite{http://www.oracle.com/technology/pub/articles/mitasova-grass.html}.
Statistical Analysis
R, a software environment for statistical computing and graphics, (see \cite{www.r-project.org}) can be called within a GRASS session for statistical analysis of geodatasets. Similarly, there is a GRASS interface to gstat, a multivariable geostatistical modelling, prediction and simulation software package. Therefore gstat and R can access both GRASS raster- and vector datasets for computations within the spatial region defined in GRASS. This capability creates the potential for both simple and complex geostatistical analysis as shown by \cite{Bivand2000} and \cite{bivand00open}. GRASS can import and export Matlab binary (.mat) files (version 4) for processing numerical calculations outside GRASS.
Interoperability with other GIS Software
GRASS supports nearly all common GIS file formats so allowing the use of other GIS applications or external datasources. Its binding to the GDAL/OGR library and the support of OGC Simple Features ensure that data exchange between various applications and between multiple users is straightforward. The internal file structure implemented in GRASS, coupled with UNIX-style permissions and file locks, allows concurrent access to any given project. In this way, several individuals can share the resources of a single machine and dataset.
GRASS works closely with Quantum GIS. GRASS modules are accessible through a GRASS plugin in Quantum GIS.
2D and 3D Visualization
GRASS comes with fully functional 2D cartography and 3D visualization software (NVIZ). It also interacts with other software tools to enable production of maps or visualization of geographic data sets. GRASS contains an export filter for Generic Mapping Tool (GMT) files and various image formats so that high quality maps for publication can be generated with external image manipulating programs.
3D vector and raster datasets can be exported from GRASS as VTK (Visualization ToolKit) files which can be viewed in Paraview, a large data set visualization software package. Script files for Povray, a raytracer to design 3D graphics can be produced, as can VRML (Virtual Reality Modeling Language) files . Animations can be built with NVIZ or the external programs mentioned above.
Web Mapping
The UMN MapServer is able to 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 interface and 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 governmental agencies and environmental consulting companies. Due to the wide variety of applications for spatial data analysis, the following selection gives only a brief overview of situations where GRASS has been adopted. A collection of papers highlighting GRASS implementation can be found here \cite{grassconf2004}.
Archaeology
GIS is of growing importance in this field. In fact GRASS has been widely used in archaeology to support the survey of excavation areas or to simulate ancient processes. GRASS has been used to model the most suitable place to conduct a survey in the Netherlands by \cite{Brandt1992}. Based on the assumption that settlement actions of ancient people show regional patterns, locations most suitable for archaeologic sites can be deduced. \cite{Ducke2002} used artificial neural networks as a tool to predict archaeological sites in East Germany and \cite{Lake1998} extented GRASS to automate cumulative viewshed analyses. These examples also shows how the potential power of GIS increases when the software is modified by its users for specific needs. Pedestrian hunters and gatherers can be modelled in GRASS using MAGICAL, which consists of three separate GRASS modules \cite{Lake2001} to simulate multiagent spatial behaviour. The degree to which archaeological surveys can benefit from the use of GRASS is shown by \cite{Brandon1999} and \cite{Merlo2005} proposed how a GRASS based multidimensional GIS framework for archaeological excavations can be developed.
Biology
\cite{Tucker1997} used GRASS to model the distribution of three bird species in north-east England using a Bayesian rule-based approach. They linked data about habitat preferences and life-history of the birds against physiogeographic and satellite data using GRASS.
On the Iberian Peninsula \cite{Benito2006_pred_habitat_pinus} used GRASS to model the potential area of \textsl{Pinus sylvestris}. They predicted the habitat suitability with a machine learning software suite in GRASS incorporating three learning techniques (Tree-based Classification, Neural Networks and Random Forest) in their gis-based analysis. All three techniques show a larger potential area of P. sylvestris than the present model. In the Rocky Mountains National Park tree population parameters have been modeled by \cite{Baker1997} for the forest-tundra ecotone.
Environmental Modelling
GRASS is widely used in environmental modeling because of its strong raster and voxel processing capabilities. It offers a variety of techniques to conduct environmental modeling as described in \cite{Mitasova1995} and an overview of the potential of GRASS in environmental modeling is given in \cite{Mitchell2002}. Besides the use of custom-written models, GRASS includes a large number of models already implemented that can be used for hydrological analysis (Topmodel, SWAT, Storm Water Runoff, CASC2D), watershed calculations and floodplain analysis as well as erosion modeling (ANSWERS, AGNPS 5.0, KINEROS). Models for landscape ecological analysis and wildfire spread simulation also exist within GRASS.
Geography (Human / Physical)
GIS is used in a wide range of analyses in human and physical geography because both subjects make extensive use of geodata or spatial geodatabases. GRASS is the GIS software of choice in many geographic surveys worldwide.
Geology / Planetary Geology
\cite{Kajiyama2004} and \cite{Masumoto2004} used GRASS to derive 3D geological models in Japan. \cite{Kajiyama2004} used a digital elevation model (DEM) and a logical model of the geological structure to derive the surface boundaries of each geologic structure in their study area located in the Izumi mountain range. From these data they built a 3D model of the local geology.
GRASS has also been 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 Viking Mission data to perform their study. The mapping of geologic features from Mars data was done by \cite{Deuchler2004}. The authors detected tectonic surface faults and assigned them to a geologic Mars region. The ability to import the raw data from various Mars datasets and to reproject them in an easy way is seen as a great benefit by the authors of this survey.
Geomorphology / Geomorphometry
Modules for surface analyses in GRASS offer 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 statistically 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 geomorphologic 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 successibility 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 modeling has benefited tremendously from GRASS in the past.
Geostatistics
\cite{bivand00open} used a combination of GRASS, R and postgreSQL to analyze various geodatasets. They showed that these techniques provide a powerful toolbox to analyse natural phenomena as well as socio-economic data.
Hydrologic Modeling
Hydrologic models like the USDA-Water Erosion Prediction Project (WEPP) model can be easily parameterized with GRASS as shown by \cite{Savabi1995}. \cite{Cullmann2006} calculated a more appropriate flow time as an input for the flow analysis 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 several hydrological and chemical parameters to validate numerical ecosystem modeling with the purpose to evaluate effects of climate change and human impact on this 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 winter 1999-2000 was examined by \cite{Mannelli2006}. 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 \textsl{Borrelia burgdorferi} s.\l.\ was analysed by \cite{rizzoli2002geographical} with a bootstrap aggregation model of tree based classifiers in GRASS. The occurrence of ticks were cross-correlated with environmental data in GIS. \cite{furlanello2003gis} developed a spatial model of the propability of tick presence using machine learning techniques 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 information on illnesses. 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} tested a combination of cotton growth 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 offer 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 orthophotos 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} and \cite{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 scientists.
Terrain parameters are important input parameters in soil modeling and were 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 radiation 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 information 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 promotes the teaching of GRASS and other FOSSGIS (Free and Open Source Software GIS) programs to train the next generation in this forward looking techniques. For this purpose educational materials are 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 already some innovative functions 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 a rising 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 GIS 6.0 Tutorial. GDF Hannover bR (2005). Version 1.2, 149 pages.
http://www.gdf-hannover.de/media.php?id=0&lg=en
- 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.
- GRASS Programmer Manual (http://grass.itc.it/devel/index.php#prog)
Aditional definitions
If there are some definition in our text which would be worse mentioned in the Encyclopaedia...
PDF Version
I put a .pdf version here: http://www.perlomat.de/springer.pdf
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/