es for security
or reliability reasons. As a matter of policy, nothing in Python's
standard library uses ctypes.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
passed to Popen() rather than to the program. The argument names
"flags", "overwrite", "quiet" and "verbose" are also treated
specially.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
ables are included in the output.
[print_options(), general/g.parser/main.c:292 and 295]
4. The Python grass.script.parser() function recognises these settings
and adds them to the environment.
[_parse_opts(), lib/python/core.py:408]
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
l exclude them from the
calculation.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
y hand".
But as Hamish suggests, r.series is probably the right tool in this
particular case.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
nv = grass.gisenv()
gisdbase = env['GISDBASE']
location = env['LOCATION_NAME']
mapset = env['MAPSET']
path = os.path.join(gisdbase, location, mapset, 'sqlite.db')
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
of fuzzy ones (see
> attached picture). Is that somehow possible to change that?
The blurring has nothing to do with ps.map. It's caused by the
rendering of the resulting PostScript file.
To avoid it, ensure that anti-aliasing is disabled in whichever
program you're using to render the
late to
change). 7.x won't recognise option names containing upper-case
letters.
> 2) How can I get the path to the script-file i am running at the
> moment in GRASS? like ./././GRASS/6.5/Modules/bin/script.py? This
> should work on every operating system.
import os.path
def main():
global tmpmap
tmp_map = 'river_raster.tmp.%d' % os.getpid()
...
if __name__ == "__main__":
options, flags = grass.parser()
atexit.register(cleanup)
main()
Using an exit handler ensures that t
d to apply a color table to my RGB
> produced from r.composite?
No; r.composite generates the colour table.
Any map generated by r.composite with a given number of levels should
have the same colour table, regardless of the data.
--
Glynn Clements
___
sting name should be used for a function which
honours any reclass table (done in 7.0 with r46323).
> r.out.gdal can easily be fixed by not using G_get_null_value_row().
In 7.0, it's also used by r.neighbors and the OGSF library.
--
Glynn Clements
__
ion
and masking will be re-done).
r.out.gdal was the latter case, so it shouldn't have been using that
function. OGSF is also the latter case, and should be fixed.
r.neighbors is the former case (it's used for the the selection=
parameter), so it should be using Rast_get_null_value_row(
s.
r.mapcalc 'xmap = x() ; ymap = y()'
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
() will be run when
the script terminates, whether due to reaching the end of the script,
calling sys.exit(), an uncaught exception, Ctrl-C/Ctrl-Z, etc.
The only situation where it won't be run is if the Python interpreter
crashes (or is terminated with SIGKILL on Unix, etc), which ca
us commands. Otherwise, each command will clear the
image, and you'll only see the result of the last one.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
subprocess.html#popen-objects
The most general function is start_command, upon which all of the
*_command functions (except for exec_command) are built. Again, this
function returns the Popen object.
Refer to the source code ($GISBASE/etc/python/grass/script/core.py)
for more details. Most of those
executables in /usr/local/bin as grass64
> and grass65. Is it safe to have both of them in this way
Yes.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
7;t used in the string is harmless, so you
can use Python's "**" syntax to pass a dictionary of parameters, e.g.
the "options" dictionary obtained from grass.parser():
grass.mapcalc('$output = @$input', **option
args, **kwargs):
kwargs['stdout'] = grass.PIPE
kwargs['stderr'] = grass.PIPE
ps = grass.start_command(*args, **kwargs)
return ps.communicate()
This behaves like read_command() except that it returns a tuple of
(stdout,stderr) rather tha
hing to resolve. The certificate was invalid for a couple
of days at the beginning of the month, but that is no longer relevant.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
Johannes Radinger wrote:
> I tried as you recommended:
>
> make MODULE_TOPDIR='Applications/GRASS-6.5.app'
If you set MODULE_TOPDIR on the command-line, it needs to be an
absolute path.
--
Glynn Clements
___
grass-user mail
's a Python module (grass.script)
which provides convenient interfaces to the most common commands.
See any of the scripts in 7.0 for reference.
> * Do I need to be inside GRASS shell to script in order to have all
> environment parameters set?
Either that, or you need to set up the env
António Rocha wrote:
> I would like to know if there is any limit on command line size?
Not in GRASS itself, but the OS and/or shell may impose its own
limits.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
h
e cases,
there isn't any clear limit; it depends upon how much RAM is
available, whether the system is 32-bit or 64-bit, and how long is
"too long".
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
FCELL. However:
1. Memory consumption is determined by whether the module reads the
data as CELL/FCELL/DCELL, not how it's stored on disk.
2. Such modules tend to be algorithmically complex, so execution time
becomes an issue long before memory availability does.
--
Gly
quires at least 1 value to produce an output value?
Without -n, the aggregate is computed over the non-null values; if all
values are null, the result will be null.
With -n, if any value is null, the result will be null.
--
Glynn Clements
___
grass-user m
ll grow exponentially with the distance between
contour lines.
Maybe there's a faster approach along the lines of r.grow.distance?
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
sion to a DEM float raster failed somehow -
> but why?
Note that r.surf.contour works in floating-point and generates DCELL
output, so the multiplication and subsequent division should be
unnecessary.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
t;ordinal ... could not be located" indicates that the version of the
DLL which was found at run time isn't the same one which the program
or library was linked against.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.o
Frank Broniewski wrote:
> thanks for your response. So it's only a matter of string/number
> formatting with r.info?
Yes.
> r.surf.contour uses floating point only in the latest version of GRASS,
> doesn't it?
Yes. 6.4.0 uses CELL, 6.4.1 uses DCEL
n expression of the form
"newmap = oldmap", in which case it will copy the colour table and
categories.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
Neil_Alex wrote:
> I have added the following lines to my .bashrc file and restarted my system
> but I still get the same error:
>
> export GISBASE=usr/lib/grass64
There should be a leading slash:
export GISBASE=/usr/lib/grass64
--
Gl
rt.
I should soon be getting a new Windows system with Windows 7 64-bit,
so I'll try building GRASS on it at some point (but getting everything
installed and configured is likely to take some time).
--
Glynn Clements
___
grass-user mailing
s for two commands
> in a single Makefile.
It can't be done, and that won't change.
r.terraflow.short was dropped from 7.0 for similar reasons (i.e. not
making a complete mess of the build system for the sake of a hack).
--
Glynn Clements
7;s position within the array, and having
the caller discard nulls beforehand would interfere with this.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
IC for FFTW will fix that, but building FFTW as a shared
library is better, and using the OS's offical FFTW packages (if they
exist) is better still.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
ng GRASS modules
(anything that uses the GRASS command-line parser).
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
er without
> modifying it in any way.
Copying the stuff "straight over" doesn't mean that it doesn't get
modified. Particularly if you're using a FAT/NTFS-based NAS with a
Unix system, as filename case and/or permissions may be lost in the
copy.
--
Glynn Clements
termine which is appropriate.
All of them (except for exec_command) are simple wrappers around
start_command, which itself just uses make_command to construct a
suitable argument list to pass to Popen().
--
Glynn Clements
___
grass-user mailing
the input map then use "r.resamp.stats method=sum ..." on that.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
katrin eggert wrote:
> Besides that general page you gave me, do you
> know any other page that explains, in a easier way, thje use and
> parameterizayion of subprocess.Popen()?
No.
--
Glynn Clements
___
grass-user mailing list
g
Helena Herrera wrote:
> I'm getting some strange results in r.mode for some small patches. Is there
> any other method for calculating mode for a base map and a cover map?
r.statistics method=mode ...
Or use r.stats to collate the values and calculate the mode yourself.
est-neighbour
resampling.
If you want optimal output, the display size needs to match the
current region, and the input map needs to be explicitly resampled to
the current region using e.g. r.resamp.interp or r.resamp.filter.
Either that, or render the map at its native resolution, then resample
usin
gt; > using an image-processing program.
>
> This is not an option, because I need the 'prettier' image inside
> GRASS to vectorize some features.
In which case, you probably need to resample the map itself.
--
Glynn Clements
__
||| true == true
and:
true ||| x == true
even when x is null. The || operator propagates nulls like other
operators. Similarly for &&& and &&.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
look in the max_raster output which raster was used and use the
> corresponding quality file then, if the time series would be regular, but of
> course it's not. Sometimes days are missing, so max_raster does not point to
> the correct im
uot;, "copyright", "credits" or "license" for more information.
> import grass.script as grass
> grass.fatal('hello\nworld')
ERROR: hello
world
$
--
Glynn Clements
_
e.g.:
Index: aclocal.m4
===
--- aclocal.m4 (revision 47135)
+++ aclocal.m4 (working copy)
@@ -19,6 +19,7 @@
esac
AC_MSG_RESULT($with_$1_includes)
+$3=
if test -n "$with_$1_includes" ; then
for dir in $with_$1_includes; do
if test -
and alignment, how
would you perform resampling? If you would use nearest-neighbour, then
you don't need to manually resample, otherwise you do.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
n
Longitude Easting
State/Zone/Code Projection and Scale Factor
LatitudeNorthing
Nevada NV
East E 2701T.M. 115 35 115 35
20,000.
mapcalc 'result = map1 * 100 + map2'
> I also noted that in 99+ % of the cases, both maps are NULL or have an
> identical CLC category, so I wouldn't need the if/else chain at all. I
> guess I can use this fact to shortcut the comparison?
r.mapcalc doesn't do shor
ld use either (or both), so be
careful to check.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
including PATH. In fact, it resets PATH
even if the -E (preserve environment) option is used.
> I'm at a loss what to do. Any suggestions?
Modify the g.extension script to use sudo rather than "su -c ...".
--
Glynn Clements
EF files for imagery groups and subgroups.
There are also fully qualified names in history, titles, comments,
etc, but those are purely cosmetic.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
fortunately, I have no idea. It might help to provide more
information: the map's region (r.info), the current region, which
commands you are using (d.mon or wxGUI?), etc
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
e to use non-ascii characters. Is
> it true? Is there any way to add labels to the classes and use characters
> (such as á;à;ó; â)
I don't know; what error (or other unexpected behaviour) are you
getting?
--
Glynn Clements
___
grass-user mailing li
generally assume that one "char" equates to one column, which isn't
the case for a multi-byte encoding such as UTF-8. It shouldn't happen
with e.g. ISO-8859-*.
This isn't something which can easily be fixed.
--
Glynn Clements
_
er unexpected behaviour) are you
> > getting?
>
> Those characters are not displayed (they are replaced by blank spaces)
Displayed where? In a terminal? wxGUI?
Are they present in the "cats" file when viewed in a text editor?
--
Glynn Clements
GRASS.
I believe that the DBF driver limits column names to 10 characters. I
don't know whether that also applies to table names.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
any ideas as to how to track this down.
How is the command being entered? In QGIS? the wxGUI? bash? cmd.exe?
If it's QGIS, I can only suggest taking it up with the QGIS
developers. If you can reproduce the error within GRASS itself, please
provide details.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
859-1 or UTF-8).
AFAICT, this has to be done globally, in the preferences. There
doesn't appear to be a way to set the font or encoding for an
individual layer.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
nd
the owner process is still running) and 0 if it created one
successfully (an exit code of 1 indicates some other error).
Also, if the PID stored in the lock file doesn't refer to an existing
process, the lock file is considered stale (the behaviour is as if no
lock file exists).
Lo
s only really necessary if concurrent access may occur
automatically (without human intervention). Otherwise, you just need
to remember not run multiple concurrent commands in a single mapset.
--
Glynn Clements
___
grass-user mailing list
grass
the resulting checkmap is 43, then I know that the
> maps are non-overlapping.
>
> Is there a smarter way of doing the test ?
r.series method=count
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
_ENCODING in the
environment used for the d.* command.
The context menu in the layer list should have a "Set Font" option to
allow the font and encoding to be set on a per-command basis.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
y not able to find it
> > myself :-(
>
> Hermann, if you have any ideas to better communicate things, please
> let us know!
It might be worth adding something to the r.mapcalc manpage.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
nal feature.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
l raster name? I have used this syntax with
> success before so have not be able to troubleshoot this.
You need to use double quotes around the r.mapcalc expression.
Single-quoted strings take everything up to the next single quote
literally, while double-quoted strings expa
s.
It is never *necessary* to run "make distclean"; "make clean" is
enough, provided that you re-run configure whenever any related files
have changed. However, running "make distclean" after "svn update"
will
python", it will use the first python.exe
in the path. You can check which version of Python is used by adding
e.g. "print sys.version" to the script.
> 2) Is there anything else I've to set?
Ensure that PYTHONHOME is /not/ set.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
the
> GRASS-Python in the path C:\Programm Files(x64)\GRASS
> 6.4.1\extrabin\python.exe
>
> So what causes this? How can I proceed? What should I check?
How did you set GRASS_PYTHON?
AFAIK, it's set in %GISBASE%\etc\env.bat; this will override any
global
(vdigit and nviz), which would only work
with the specific version of Python against which they were built.
Those components have since been removed, but currently we don't have
anyone who is able and willing to fix the Window installer.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
an 8.3
filename may work, e.g.:
export PATH=$PATH:/c/PROGRA~2/Python27/pythonw.exe
Running Python scripts from cmd.exe should use the file association
for the .py extension.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
Markus Neteler wrote:
> - the Python code need way more testing and fixing.
Which Python code? The GUI or the scripts?
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
program
specified in the #! line (for "#!/usr/bin/env python", this will be
the first version found in the path). On Windows, they use the file
association.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
ethod=sum" with the result of "r.series method=count"; the
latter counts the number of non-null input cells.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
ly to
mapcalc() without parsing them to an int/float first. It would also
preclude cases such as:
grass.mapcalc("$outmap = $func($inmap)", func = 'sqrt', ...)
unless we add yet more complexity (e.g. names ending in "_raw" aren't
quoted, or similar).
--
Hamish wrote:
> suggest to use 'unsigned long' and "%lu" as is done by r.in.xyz,
> and 'off_t' for 'n_alloc'.
There is no point in using anything larger than size_t for n_alloc.
--
Glynn Clements
separate add-on; it has a single add-on named r.fuzzy which provides
the modules r.fuzzy.set, r.fuzzy.logic and r.fuzzy.system.
You can have 6.x and 7.0 installed on the same system, but they're
distinct packages. Add-ons written for one won't work
Carlos Grohmann wrote:
> Well, I managed to get it working, but only compiling as 32bit. As 64bit I
> got errors in wximgview
That's only a problem if you need wximgview. The same functionality is
available via wxpyimgview. Or maybe d.mon has made this redundant?
--
Gly
n may be faster; it may also be useful if using wxPython
is problematic for whatever reason. It can be disabled by building
--without-wxwidgets (which is the default).
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.o
e, nor are the files containing raster data (which are updated
atomically), but the various support files may be.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
e] [--verbose]
[--quiet]
The expression= option is the first (i.e. default) option, so the
"expression=" can be omitted, but the expression itself must be a
single argument (i.e. quoted), and must not resemble the "option=..."
form used for non-default options (hence the requi
Rainer M Krug wrote:
> I want to need to create a temporary raster layer - is there a
> function to create a unique name for this raster?
Most scripts create a name based upon the name of the script, the PID
(obtained from the shell variable $$), and ".tmp".
--
ed to check the
exit status which run_command returns.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
;s no
straightforward way to determine when files are in a consistent state.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
,
making it hard to decide what should be done, let alone doing it.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
DED;
to:
MM_mode MM_register::register_new = MM_IGNORE_MEMORY_EXCEEDED;
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
ack-ports the fix. Filing a bug report on
the tracker may help.
> 2) Will the same change work in 6.x? Or would the change potentially
> introduce other problems or be more complicated?
The fix should work in 6.x. At the very least, it won't break
anything.
--
Glynn Clements
___
_EXCEEDED, set in
> unchanged line 47.
Right. MM_register::register_new is statically initialised at line 443
then modified at line 47 the first (and only) time that the
constructor is invoked (for the instance created at line 440).
The problem is that it's undefined as to when the cons
x than 7.x right
now, so you might be find the 6.5 development branch (develbranch_6)
to be more useful than the trunk.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
e module fit better and is there any difference in working
> with it as AddOn or Script?
If it's written in Bourne shell or Python, it's a script. If it isn't
part of the main source tree, it's an add-on.
--
Glynn Clements
___
env('GRASS_ADDON_PATH'), 'man', 'man1', entry
+ '.1')
IOW, GRASS_ADDON_PATH is supposed to be the root of the add-on
hierarchy, analogous to GISBASE for the main installation.
BTW, this (in lib/init/grass.py) is wrong:
path_prepend(addon_path, 'PATH'
atively, you might try a big pile of symlinks.
> > (probably much easier for vector maps)
> >
>
> I think I'll go that way - I just thought there would be a solution
> available.
>
> So which files would I need to symlink? Asked otherw
dlessly
> complicated.
There should only need to be a single environment variable, from which
all components of add-ons (executables, libraries, data files,
documentation) should be able to be found.
If GRASS_ADDON_PATH is just for executables, how are libraries, manual
pages, etc, supposed to
ause PATH isn't set correctly.
> As an aside I don't think the os.environ is working correctly, if I comment
> out the 'import grass.script as grass' and below and then run the script I
> get no error (then get the error above if I include it again), but if I run
> the above script in a new shell I get the error...
>
> No module named grass.script
This is because PYTHONPATH isn't set correctly.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
os.environ['PYTHONPATH'] won't have any effect upon the
current Python process, only upon processes descended from it.
However, you can modify sys.path directly, and that should affect
subsequent imports within the same script.
--
Glynn Clements
_
Kirk Wythers wrote:
> the tie goes to the
> smallest value in sorted list of values? In this case... 4 4 5 5 =
> mode of 4, where as a sorted list such as 1 2 3 4 would yield a mode of
> 1?
>
> Is that right?
Yes.
--
Glynn Clements
___
ariables - GRASS_ADDON_BASE and GRASS_ADDON_PATH (path only as in G6)
#1. Although the name doesn't matter.
If the user wants to add extra executable directories, they can modify
PATH directly.
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
mponents of
an add-on. The original idea seems to have been based upon the
assumption that an add-on would consist of a single script, with no
additional files. That assumption should be false for anything from
the add-ons repository (there should at least be a manual page).
--
Glynn Clements
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
301 - 400 of 1223 matches
Mail list logo