GRASS 7 ideas collection

From GRASS-Wiki
Revision as of 12:23, 8 October 2007 by Msieczka (talk | contribs) (merge)

Jump to: navigation, search

Maintenance of grass7/ repository

Issue: only new code should go into grass7/. How to link into the existing GRASS 6 code?


  1. link script as used for grass6/ (make mix) -> nuisance
  2. start new repository from scratch in SVN using migrated CVS repos to maintain history; bulk-reformat the code with "indent"





  • rename to r.import
  • rename r.out.gdal to r.export


  • remove r.resample and r.bilinear in favor of r.resamp.interp
  • remove; newly implemented r.univar features cover it
  • remove r.out.tiff. New C r.out.gdal should cover all it's option now (doublecheck!). See RT #3680 (starting with date Sun, Nov 26 2006 14:54:23).
It might be worth keeping r.out.tiff! It makes a nice delta when things don't go well (eg QGIS bug#348) --HB
  • Remove remaining -v and -q flags for verbosity levels of modules.


  • merge and
  • r.sum, r.mode, r.median, r.average, r.statistics, r.univar, r.univar2 - maybe they can be reduced to just r.statistics and r.univar? See RT #1848 and a thread on the GRASS dev list
  • r.resamp.rst: merge into r.resamp.interp to make resolution management identical to the other modules


  • fix lseek() usage for Large File Support: see list of affected modules
  • fix the raster map history management (truncating long history, odd storage). It should work like for vector maps in GRASS 6.


Radim's TODO list

Vector TODO list

  • Particularly important: "Keep topology and spatial index in file instead of in memory" --ML


  • 2d 'vertical' vector data (e.g. Geologic Cross Sections)
  • implement transactions for geometry handling (esp. v.edit, v.digit and to avoid leftover files when a vector command fails)



  • rename to v.import
  • rename v.out.ogr to v.export
  • rename v.mkgrid to v.grid
  • rename to v.db.univar (comment)



  • merge and v.overlay
needs discussion, they are doing fundamentally different things --HB
  • merge v.sample and v.what.rast
See a feature request #506 in GForge.


  • Fix the Column 'cat_' already exists (duplicate name) in Maybe by creating columns cat_1, cat_2 etc. each time a Grass vector is exported to shapefile and imported back to Grass?
  • write Vect_map_exists() and implement in g.remove and v.digit -n (why wait for GRASS 7 ??)
  • add '-d' dissolve to v.reclass
  • add 'where=' to (why wait for GRASS 7 ??)
  • implement Douglas-Peucker generalization (C code file)to substitute prune tool of v.clean (done?, see also GSoC)
  • Rewrite vector labeling. Needs more placement control options (may be db field value based), label overlaping prevention would be also good. May be we could borrow some ideas from MapServer? (ongoing:
  • v.what.vect - rename parameters "vector" to "map", "qvector" to "qmap"
  • v.type - change type= option to from= and to=.(code's already in there)



  • Add support for planetary bodies reference systems
  • Add new partial differential equation (PDE) library with OpenMP support (GRASS 6.3)


  • g.remove, g.mremove, g.rename, g.copy: don't allow for default datatype (which is currently raster) [1].
controversial, needs more discussion --HB
  • g.region



  • establish SQLite as default DBMI driver (DBF is too limited)




Do merge of image libraries:

  • A)
    • lib/imagery/: standard lib, in use (i.* except for i.points3, i.rectify3)
    • imagery/ standard lib, in use (, photo.*)
  • B)
    • lib/image3/: never finished improvement which integrated the standard lib and the ortho lib. Seems to provide also ortho rectification for satellite data (i.points3, i.rectify3)


  • merge of i.points, i.vpoints, i.points3
drop these altogether? (loss of interactive XDRIVER)
  • merge of i.rectify and i.rectify3
maybe depend on gdalwarp C API for this?
  • addition of new resampling algorithms such as bilinear, cubic convolution (take from r.proj?)
  • add other warping methods (maybe thin splines from GDAL?)
  • implement/finish linewise ortho-rectification of satellite data
  • Depreciate tape functions in next major revision of GRASS and create a tape module that accomplishes tape access.



  • renaming of all G3D library functions to fulfil the grass coding standard
  • extent/rewrite documentation
  • localisation support (why wait for GRASS 7 ??)


  • report and support modules like r3.stats,
  • voxel -> vector (isosurfaces ...) and vector -> voxel (lines, faces, volumes) conversion modules
  • module for 3d Kriging interpolation based on vector points
  • a GRASS-Python/VTK visualisation/manipulation tool



  • Drop support for interactive xmon modules


  • d.font etc.
    • Huidae Cho merged d.text.freetype and d.text into; drop them and rename into d.text
    • merge d.font and d.font.freetype too
now done in 6.3?
  • d.vect
    • consolidate parameter names (attrcol, wcolumn, rgb_column)
  • remove d.ask,, d.linegraph(?), d.mapgraph, d.text.freetype, d.paint.labels (symlink), d.font.*
  • remove d.m
  • d.legend, d.barscale, d.text, etc: make at=0,0 origin identical!
FWIW, I copied the d.legend at= syntax from d.frame --HB



    • remove scale parameter
from the command line, not the map instruction
    • rename sizecol to sizecolumn (remove the given warning)


  • Making GRASS modules be less verbose. Use --verbose flag and GRASS_VERBOSE environment variable. All output (G_message, G_percetn, G_warning) should go to GRASS_LOG file which could be grassdata/location/mapset/.grass.log by default.
less verbose: this is well underway in 6.3
Note warning and errors are already logged to GIS_ERROR_LOG (see variables.html)

Init shell and startup

Problem: .grassrc6 is not what you expect. It holds the g.gisenv GIS variables, it's not a shell script containing commands like .bashrc is.

Suggestion: We should change the name for 7.x. It isn't an "rc" file in the conventional sense.

  • it is asked to run GRASS in its own shell to avoid portability issues 1

Data management

  • store vertical units on per-map base, using code from units software
Support for free form unit meta-data added in 6.3. I don't mind it as a guide, but we shouldn't be limited to units found in units. --HB
  • store vertical map datum on per-location base (GDAL/OGR needs the same enhancement)
This requires more discussion. I'm not sure it's a good idea to do this location-wide. --HB
On a per raster map basis done in 6.3 cvs.
  • add versioning for maps (to recover previous map versions)
see " -h" ?

Time series

for example?


  • better support for faces and kernels in libgis
not really Visualization, but....


  • Get rid of 'quiet/verbose' flags, preparation in GRASS 6, e.g.:
    /* please, remove before GRASS 7 released */
    if(q->answer) {
        G_warning(_("The '-q' flag is superseded and will be removed "
            "in future. Please use '--quiet' instead"));


  • Multiplatform
  • Fast
  • Small on monitor
  • Number of window reduction
  • Managable from command line via d.* modules (which will have to be rewritten too)
  • Facilitating easy development of custom GUI application based on GRASS

Conceptual changes

  • File organization in binaries:
    • the grass etc dir is a mess... module should maintain arch-deps and arch-indep things in different paths -- frankie at #grass irc
    • it's basically a FHS violation, i dunno if it is reported by lintian, anyway /usr/lib/grass should be used for arch-deps data, not for mixed stuff -- frankie at #grass irc
  • Creating $HOME/.grass7 directory for
    • Custom fonts
    • and other modules temp. files
    • GEM addons installation
    • Default path for custom scripts
    • Custom symbols and EPS fill patterns
    • Custom color maps
    • Add here new item