Enjoying GRASS
Geographic Resources Analysis Support System
Bernhard Reiter
Geography 525 GIS
Final Project -- Written Documentation 19.5.1999
Forword
This final project for the GIS course is different from most other
final projects, because it is not an exercise to show my ArcView skills.
In agreement with the lecturer I focussed on a different technological
question, the presentation of a Free Software GIS software called GRASS.
My final map therefore is a screenshot. Some information I refer to is
directly available on the internet and I just link to it instead of
putting in the work to rephrase it. The answers to the required
questions are given in the "Results" section, though the last two
are answered throughout the text.
Why?
Goals:
Get GRASS running; demystify it
A lot of people have talked about GRASS but I could not find anybody who
actually used it. Therefore GRASS was more like a legend and I had no
idea whether it really run and would be useful or not.
When I saw the new version (5.0beta) announcement and talked to my
lecturer the time was right to set out and see it with my own eyes.
Learn a another tool to do the same task
Computer tools are about solving a special task. Therefore you need to
know something about it. If you learn only one computer program, you
easily limit yourself with the available capabilities. Learning another
software for the same task will help to keep the knowledge
implementation and vendor independent.
Show to capabilties to the class
The geography 525 class is my audience. This includes Patti Day the
instructor and Tosca Hoffman the TA. My questions were simply how GRASS
would look like in comparision with ArcView and what it advantages might
be. Being a person, who is convinced about the importance of Free
Software this is also a good possibility for me to plug in some
advocac for this along the way.
Focussing on technology not on the GIS applications
Most of the class dealed with rather concrete problems on how to use one
software product. Most students will sooner or later have to make
decisions about different GIS Software packages. The history of GRASS
and my focus on software technology will add another aspect to the
general learning goals.
What is GRASS
The
GRASS Mini-HOWTO by David A. Hastings,
which also talks about how to get the old version(4.1.x) compiled
and running on GNU/Linux Systems, explains the history of GRASS quite
nicely.
History
- 1982:
US Army Corps of Engineers,
Constriction Engineering Research Laboratory (USA/CERL),
Champaign, Illinois
- The GRASS Interagency Steering Committee (GIASC); The GRASS Military Steering Committee
- 1988
Award from Urban and Regional Information Systems Association (URISA) for quality software
- ~90:
Open GRASS Foundation -> Open GIS Consortium
- 1992:
4.1 last CERL Version
- 1996:
USA/CERL dropps support; Commercialisation
Wants to use GRASS internally and COTS(commercial of the shelf software);
contracts with
- ESRI
- Intergraph
- Logiciels et Applications Scientifiques (L.A.S.) Inc.
-> Grassland
- 1997:
Baylor University ; Webpage
- 1997:
The GRASS Development Team
Baylor University, Waco, Texas, U.S.A.
University of Hannover, Germany
Promised Capabilties
The
GRASS Fact Sheet
and other sources promise a great number of capabilities.
GRASS consists of a bunch of small programs, which work together.
In version 4.2 the following numbers of programs were present for the
different tasks.
- render images, 30
- Raster, 60
- Vector, 30
- Remote Sensing, 30
- Analysis, (a lot)
Because GRASS was Public Domain for a long time and collaboration with
with different communities was pushed a lot of analysis capabilties were
contributed.
Getting it to run?
Okay, I know that GRASS 5.0beta is a Unix program, were to I find more
information?
Internet
Of course on the World Wide Web:
It turns out, that both servers do not have a very good informational
structure and you need quite a bit time to find what you want to know.
Source Code
But they do have the source code! This is the construction plan of the
software, some people call it the software itself.
- I could get it at: http://www.baylor.edu/~grass/
- Of course I need to use the "C" compiler to build the
executables for the UWM alpha systems. This turns out not to be that
easy. The DEC alpha machines used at UWM are fundamentally different
from the most common unix machines in that they do run a true 64 bit
operating system. Because the GRASS sourcecode was a conglomerate of
different contributions and hacks after the USA/CERL dropped support,
it was not portable directly. I had to roll up my sleaves and get my
hands dirty in fixing obvious bugs in the source code to make it compile
and run.
- The run the new graphical Interface I had to install Tcl/TK
on the alpha. The tiff library was necessary to let GRASS deal with tiff
images.
-
Now I had to learn the program and peeked into the huge pool of
documentation which had accumulated for the time:
GDP - GRASS Documentation Project.
Because GRASS 5.0beta was relatively new, I could not directly find a
tutorial on how to use the new vector capabilities.
Anyway a lot of documentation exists and some university claim that
GRASS is easier to learn and teach than most GIS software packages.
community
The power of Free Software lays in its extraordinary community.
Without it, there would be no free GIS package as GRASS and no
tutorial or help on how to install, build, program or use it.
- On of the first actions was to get on the GRASS Users
Mailinglist. This is a place were you usally get a competent answer
about GRASS questions within 48 hours, because you reach a lot of
GRASS users.
- To my luck there was another person with a similar problem:
Bill
Hughes.
He also wanted to run GRASS5.0beta on a 64bit Unix, but it was
GNU/Linux for alpha machines in his case. Nevertheless, we connected and
building on his patches we both could eliminate a lot of errors in the
GRASS5.0beta source code and I finally could compile and run it here.
- My changes to the sourcecode of course went back to him and
were published on the website, so that the community can benefit from
the time I had put in to solve some problems. This is the only way I
want to solve problems with software, solve it once and forever.
Growing some samples
GRASS is a terminal, text command based program, but can
output to an X11 server. We some X11 server programs for Win32
installed in the Bolton Computer Labs and I had one in my office.
When you first run it, it looks pretty bare bones bt the
list of manpages!
is shocking.
But there was help in form of a new frontend to this command interface,
which made learning and playing around a bit easier. Here are some
screenshot results:
A typical session
Raster
Example data from the
GRASS Seeds Beginners Tutorial
12km x 12km North west Leicestershire, England.
Basic geographical data: from the Bartholomew 1:250000 digital map data
image: standard Landsat Thematic Mapper (TM) Band 4, captured 8th July 1984
DEM/Contour data: digitised manually from a 1:50000 scale paper map source
You can see two GRASS graphics windows (x0 and x1). The first
displays a raster image from a satellite shot. A few raster informations
have been overlayed such as roads, rivers and urban areas.
The main window with the name "TCLTKGRASS" let you select commands from
the menu which then pop up there own subwindow for the input of
parameters. You can see some submenues in the upper right corner.
Three subwindows for GRASS programs are shown: d.erase,
d.legend and d.rast.
If the run button on one of this subwindows is pressed its program
runs with the given parameters just as it would run on if you typed it
onto the command line.
Vector
TIGER Census Data. Extracted by Bill Hughes. (Jefferson County?)
Again you see two graphics windows both showing the vector maps
resulting from plotting various TIGER file tracks.
The d.what.vect output shows the results of a query operation.
Vector/Sites
Two graphics windows, as before, but this time the second one is zoomed
in and site markers are plotted to the x1 window.
Fancy
Other people of course used GRASS for more impressing applications and
research. Here are some examples to give a visual impression.
d.3d
The d.3d command can use z-values to drap an image over a
surface giving it a 3D look. I used the DEM information from my first
example to create the following output.
Note that you see the command shell in the lower right corner. This is
were you still can type commands manually which is very handy, if you
want to use a command more as once.
This time I left the Windows command bar in at the bottom to show that
this runs via the X11 server (called X-Win32) on the Bolton Lab.
Moving Fun
Even more impressing are little movies generated out of several GRASS
output images:
(Having had so many business marketing like guest talks about
different ESRI products, I could not resits to just show some visually
impressing results without much scientific explanations.)
Free Software is Important for Science & Education
So many people have talked or written much about Free Software, but it
still seems to be quite unknown to some people. The concept of Free
Software is very important for Science and Education in general.
Here are some reasons, you probalby find a lot of literature about
this on the WWW if you are interested in the defails.
- The software comes with full source code and is therefore
comprehensible and transparent on each level.
- The turnback about new features and bug fixes is faster in
free software communities. There is no bottle neck of a central
organisation.
- You can have the support how you like it.i
If you have time, support it yourself. If your time is
worth to much, just buy support.
- Everybody can recreate the results this is very important
for the scientific discussion. A lot of people should be able to try and
comprehend the processes to ciritise them and lead to possible
falsification of the results.
- Give it to students, because there is no limit on whom to make the
software accessable to.
- Use it as long as you want. No company can directly impose limits
on the version of a Free Software package you use.
Conclusion
- A real test of GRASS' capabilities is still missing.
To really compare two software packages, both have to be used
intensively for more as one project.
- GRASS will get better, but will remain a dragon!
Which means it is very powerful, but a bit arcane.
GRASS will never reach the "slickness" of some desktop mapping products
unless it undergoes a major redesign. Nevertheless it is not hard use,
if you are really interested in the analysis capabilities and not the
the quick presentation.
- GRASS' Advantages are its power and the possibility to use the
unix tools as components. Shell scripting can be very powerful and
because GRASS uses the normal unix shell, it is quite easy to learn for
someone who uses command line shells at all and very powerful.
(An
entertaining piece about the power of command line interfaces
was written by Science Fiction Writer Neil Stephenson. Note that
I don't think all his conclusions are correct.)
- Disadvantages are, that it takes longer to make "nice" maps.
People who never used command line applications will find it harder to
learn.
- GRASS is an Alternative! It really works and it is
powerful, though I only tried a few commands yet. Therefore You
should try it, too. ;->
Results
My presenation about GRASS was well received at the last lecture of the
spring term and therefore my final project is a success. I still could
learn more about GRASS itself, but that is easier to do, now because
I took the inital effort to make it run. My software enhancements will
help the GRASS community and my presentation will hopefully inspire
the students of the course to try other GIS packages. It therefore might
help various research topics of these two groups.
Outlook
Discovering more about GRASS
There is still a lot to learn about GRASS and I will peel into that
program as time allows to do most of my GIS work. I am still not
at the level that I can produce fancy maps fast. Once I aquire some
familiarity with the input programs this will probably change.
GRASS on the UWM alphas?
In principle GRASS5.0beta could be installed on the alpha machines
for all people. But there are a few problems with this. The 64 bit
version cannot read the portable vector format files other GRASS
versions produce yet and the codebase is not stable enough to really
ensure that all parts run. Anybody who has time to play with it on his
own computer(running GNU/Linux) or here on the alphas should check back
with me so we want arrange it.
archived: December 2003
- page revision:
Tue May 25 13:35:29 CDT 1999
Part of Bernhard Reiter's archive.
[ Archived: Bernhard's UWM Homepage ]