[GRASS5] The status of 5.0
rgrmill at rt66.com
rgrmill at rt66.com
Sun Mar 24 17:12:03 EST 2002
I'm using an unusual mail client, so I hope this letter format isn't a
mess...
Regarding customizations I've made:
Markus, most of my changes are things that I've talked about on the list
before and some of them are modules that I've actually submitted. One
of them is a change I've been maintaining locally since beta 7.
1) I made a number of changes to allow multiple users to run the same
GRASS installation at the same time and to access files in the database
without being the owner of the file. Locking is done by mapset and
permissions are granted on the basis of group membership. This requires
changes in Init.sh, mapset_msc.c and gisinit.c
2) As I wrote a couple months ago, I have a "resource manager" that
associates each monitor with a different geographic window and different
gis environment, including mapset and location. There is associated
with that capability a module that allows the user to change the current
mapset and location without leaving grass and (hopefully) without
bothering anyone else working at the same time. This allows one user to
work in multiple locations/mapsets at the same time. The manager also
specifies certain types of system behavior; monitors are automatically
erased when their region is changed and removed when the user exits
grass. The manager offers the kind of persistence and event-driven
behavior that we sometimes talk about needing for future development.
The manager, in one form or another, provides a lot of opportunities for
future development.
I still have one bug left to work out. When it's done I'll submit a
description of the program and the working source code as a proposal.
It requires changes to put_window.c, get_window.c, env.c and d.mon.
Switching between different locations or mapsets also means that the
socket files have to be kept somewhere other than the mapset/.tmp
directory. Fortunately Eric Miller's socket functions allow that, but
they have to be compiled in a non-default way.
3) I've written or modified a number of modules:
r.out.ascii I added an -s flag to print surfer ascii grids. I gave you
that change some time ago and it hasn't been included in the release. I
also have been getting a read error from r.in.ascii when using the -s
option, and have to use a separate program to import some Surfer ascii
files.
r.in.mf This reads MODFLOW 2-D binary data into GRASS raster files
r.in.list This reads MODFLOW list-formatted files into GRASS raster
files
r.basin (Probably needs a new name) This creates masks of contiguous
areas that meet one of several different logical criteria. I used this
to map a geomorphic surface as a continuous area with a slope below a
given threshold. It contains several tests other than the "less than or
equal to" test that I used for that application.
r.proj, v.proj, s.proj I've modified all of these to perform the
NAD83<-->NAD27 conversions. This also requires a version of the proj
library later than 4, a new library function (pj_do_projA.c) and a place
to store the conversion tables. These need to be updated to a more
recent version of the proj library.
I have a few other utilities that I keep that aren't built as GRASS
modules, but probably should be. One imports dxf files that can't be
handled with v.in.dxf. I promised several months ago that I would
upgrade v.in.dxf and haven't had time to get to it yet. One reads text
from dxf files and writes GRASS paint label files and one reads text
labels from site files and writes GRASS paint label files. I use the
paint label files in ps.map to label data points and surface features.
I even have a utility that resamples output from MT3DMS output (3-D
chemical transport and reaction in ground water) and produces vertically
refined 3D grid files. They let G3D produce some pretty stunning
results.
I'm not trying to make a point that I've done a lot of work that should
be included in GRASS but I do have to admit that it would reduce my
workload if they were included in GRASS.
My point is that probably anyone who has kept a GRASS installation for
production has modified their installation in one or more different
ways. As a result I find it really unlikely that a lot of old GRASS
users (like Blacklands in Texas, for instance) are going to switch to
GRASS 5. I also doubt that future GRASS 5 users are going to want to
make frequent updates of their production installations.
Incidentally, have the old GRASS 4.x users been contacted to see if they
intend to upgrade to 5? Has anyone worked with them to include their
modifications, or to see what capabilities they need? It appears to me
that if we could get even one big GRASS 4 installation to switch to
GRASS 5 then their people could make big contributions to the ongoing
development of GRASS 5.
Roger Miller
More information about the grass-dev
mailing list