GRASS 6.3 Feature Plan

From GRASS-Wiki
Revision as of 08:23, 4 January 2008 by Msieczka (talk | contribs) (Must do)

Jump to: navigation, search

GRASS 6.3.x feature plan

About feature plan

To make GRASS releases more often and more predictable, here is GRASS next releases feature plan. This feature plan has to be filled by developers working on GRASS 6.3.


There is the release branch for 6.3.x, see details at CVS: tags and branches. A release branch is considered as "frozen", only bugfixes can be done.


released 24 Oct 2007


Released 20 Nov 2007


released 30 Nov 2007


not yet released

  • Set NVIZ max PPM output render mode switches to be more robust by default (as is done 6.2) (H Bowman)
  • ... (list is yet incomplete)
Must do
  • gis.m->Help->About system doesn't work (launches another gis.m instance) trac
  • change default 'd.vect render=' mode from l to (?)
--HB 28 Nov 2007: I hope to provide more test results soon
--HB 1 Dec 2007: "L" is still problematic, new tests posted to grass-dev
  • complete and further stabilize the native winGRASS port (seems to be in a good shape now)
  • r.out.gdal sets NoData wrong #405
-- HB 24 Oct 2007: Is this really release critical? - need to find Frank's email on the subject and post it to the bug report. At least for a Byte map the no data value must live somewhere in 0-255, there is no IEEE nan for Ints.
-- MS 26 Oct 2007: It is critical. It's a data corruption issue.
-- HB 29 Oct 2007: IMO we just document that GDAL works like that. I don't see another good solution. I still need to look up Frank's answer..
-- MS 19 Nov 2007: This is not acceptable. It's a data corruption and a regression compared to script version of r.out.gdal. Suggestion: if we have to choose between 2 bad things: a valid value replaced by null by force, thus corrupting the output (like in C r.out.gdal), and setting null to eg. 256 for a a 0-255 raster to avoid that (like in shell-script r.out.gdal), I prefer the latter. This is less harmfull.
-- HB 28 Nov 2007: At least for a Byte map, there is no 256! 1byte=8bits, giving you 2^8 data value possibilities and no more. Byte maps do not support NaN either. As you suggest I will compare script & C version output before commenting further.
-- MS 17 Dec 2007: Hamish, regarding "for a Byte map, there is no 256!" - I know. But that's what gdal_translate does (see the link you once mentioned to me) to avoid data corruption which takes place in C r.out.gdal. This is not "good", but at least data corruption is avoided, which would be "horrible".
-- MS 04 Jan 2008: Martin's patch fixed the bug for me.
Mostly done?
-- HB 24 Oct 2007: waiting for a real world example of when this would be useful.
  • use GEM for GRASS Addons SVN - status unclear
    • gis.m menu part of this done (Michael)
  • g.region vect=map -a issues #489
-- HB 24 Oct 2007: Is this really release critical?
-- MS 26 Oct 2007: It was, until there was a "one row-off" bug in "g.region vect= res= -a". Fixed by Glynn in last days. A remaining issue, less important, is that "g.region vect= res= -a" needs to be run twice if the initial and target region resolution differ. This is not normal nor desired, but Glynn says it's been this way for years now. I confirm it applies to 6.2 at least too. A must-fix for GRASS 7, propably not to be fixed for legacy reasons in 6.2, and to be decided in regard to 6.3. As to me, I'm for fixing it in 6.3.
-- HB 14 Nov 2007: patch committed to HEAD; requires testing so not for 6.3.0
-- HB 24 Oct 2007: not ready. needs fixing for NULLs.
  • modify Makefile system to support translated HTML pages. Store translated HTML files in centralized directory with locale specific subdirs, file name is module name.
  • Implement vector improvements as suggested by Radim
  • Integrate (merge into i.vpoints) - see also Image processing - note that A Scianna/Palermo has modernized version
  • Make sqlite the default DB? <- needs more testing, for 6.5?
  • drop d.m display manager (as now almost unmaintained; there is gis.m and/or a python based GUI)
Some people still prefer it (see posts to grass-dev) and I will fix bugs in it, but not enhance/add new modules to it without good reason. So I don't see the need to drop it before the WxPython version is ready. It's not hurting us any keeping it. --Hamish
We should keep plain d.mon interface but why keep d.m, if gis.m has become really good? Probably we should clearly state, that d.m is UNMAINTAINED and OBSOLETE? MarisN 08:24, 16 February 2007 (CET)
  • raster maps: implement SQL based time series support (Markus has working code from Soeren; done some improvements)
  • Clean up Makefile system to support extension compilation and installation outside the GRASS installation and without the full GRASS source. Much like what GEM does, but without needing the module source setup and not limited to installing within the GRASS installation dir. This could also simplify GEM on the compilation side. See also general Extension development.
  • Updates to vector querying
  • (query using a vector map):
    • add flags -p and -g for text output instead of creating a new map. It would report which map(s) and feature(s)/cat(s) meet the query criteria.
    • allow multiple maps to be selected. This would directly address Eric's question. If the output is a map, it would be the equivalent of v.patch on all queried vector elements.
    • add operators "contains" and "adjacent". Contains=all vector features whose nodes are completely inside a polygon (or inside or touching the boundary). Adjacent=all vector features who share a node/point or line/boundary with the selecting feature. Because GRASS is topologically correct, adjacency information is readily available.
    • maybe change option names from ainput and binput to selector and selected or queried. This would have to wait until GRASS 7, of course. I find ainput and binput not very clear where used in other vector operations either (maybe I'm just dense).
  • v.what (query using coordinates):
    • add flags -p and -g for current behavior (-pg could be the default if we wanted to do this before GRASS 7)
    • add "output=" option to allow v.what to create a new map from the results of its query, like does
    • allow multiple maps for input, as with the suggestion for
    • allow coordinates to be read optionally as a line or area boundary (-l or -a?) instead of only as individual points.
    • add operators overlap, contains, adjacent.(This also would make possible interactive vector selection with a mouse drawn box or polygon from the GUI)
  • In other words, have and v.what work the same except that uses a vector map for querying and v.what uses a set of coordinate points.
  • v.overlay (boolean combination of maps):
    • drop the ainput and binput. Replace with just input.
    • allow multiple maps to be entered into input, not just 2
    • deprecate v.patch because v.overlay with the OR operator replaces it. (If we wanted to do this before GRASS 7, we'd have to create a new module, maybe named v.combine or something like that because this changes the default behavior of v.overlay).

In progress

  • native MS Windows port
  • Database connection for v.out.vtk: --huhabla 20:47, 14 August 2006 (CEST)
    • single column support for numerical data (int, float, double)
    • GRASSRGB column support (done for
    • multiple column support for vector data
  • rewrite most of the g3d modules to fulfill the grass function naming convention --huhabla 20:47, 14 August 2006 (CEST)
  • adding further (organized) keywords to every grass command and script [1] and [2]:
    • display commands
    • database commands
    • general commands
    • imagery commands
    • misc commands
    • paint commands
    • photo commands
    • postscript commands
    • raster commands
    • raster3D commands
    • vector commands
  • continue with WxPython-based GUI for GRASS
  • write (Python based?) GUI wizard to create new locations (done by Jachym and Michael, see WxPython-based GUI for GRASS)
    • This is done. AFAICT it works really well (IIDSSM). It will create locations using EPSG, georeferenced files, custom selection of projection parameters, and xy locations. You can also set default extents (DEFAULT_WIND).
  • improve Python-SWIG interface
  • less verbose commands (work in progress)
  • BLAS/LAPACK updates (Brad)
  • Provide interactive environment on GRASS startup #521