New feature in GRASS 5.x

What's new in GRASS 5 beta5 against former beta4? (8. Dec. 1999)
added modules
- i.tape.slc (Olaf Hellwich)
- i.in.gtc (Olaf Hellwich)
- i.in.pri (Olaf Hellwich)
- r.out.arc (Markus Neteler)
- r.meta, g.meta, v.meta (Sue Huse?)
- r.sun (Jaro Hofierka)
- r.surf.fractal (Jo Wood)
- r.surf.gauss (Jo Wood)
- r.univar (Markus Neteler)
- s.reclass (Sue Huse) 
- v.plant (S. Cox)

source code:
- 64bit platform detection routine which changes (Luca Palmeri)
   LNG_SIZ from 4 to 8 in case of 64bit architecture
   (file src/mapdev/diglib/portable.h)
- improved prototyping etc. (Bill Hughes)

bugfixes:
- g.region (Luca Palmeri)
- d.colors (cursor movement) (Markus Neteler)
- d.sites (Markus Neteler)
- i.in.erdas (Angus Carr)
- i.oif (Markus Neteler)
- i.rectify (Luca Palmeri)
- i.rectify2 (Luca Palmeri)
- i.maxlik (Angus Carr)
- r.cats (Luca Palmeri)
- r.in.tiff (color table, warning on NULL) (Markus Neteler)
- r.in.gif (color table, warning on NULL)(Markus Neteler)
- r.in.hdf (3.x lib only)
- r.out.hdf (3.x lib only)
- r.answers (Markus Neteler)
- r.mapcalc (Luca Palmeri)
- r.mask (Luca Palmeri)
- r.statistics (Markus Neteler)
- s.surf.rst (Helena Mitasova)
- s.in.ascii (Markus Neteler)
- s.surf.idw (Job Spijker)
- r.resamp.rst (Helena Mitasova)
- v.surf.rst (Helena Mitasova)
- v.digit (Luca Palmeri)
- NVIZ2.2 (Pierre de Mouveaux)
- several code patches from Berhard Reiter for DUAlpha

- shade.clr.sh (Markus Neteler)
- shade.rel.sh (Markus Neteler)

- src/libes/gis/sites.c (Bill Brown): fixes memory problem
- src/libes/imagery/c_point.c (Angus Carr)
- src/libes/geom/optri (Markus Neteler)
- src/libes/g3d/*  (Jaro Hofierka)
- updated around 20 Gmakefiles for SUN/Solaris $(XDRLIB)
- all rst-libs under src/libes/rst/ now
- libimage (NVIZ) under src/libes/libimage/ now

updated man-pages for: (HTML-pages as well) Lisa Zygo 
d.3d                   r.le.dist              r.proj
d.histogram            r.le.null              r.rational.regression
d.leg.thin             r.le.patch             r.report
d.rast                 r.le.pixel             r.spreadpath
g.setproj              r.le.rename            r.stage3
m.in.stf1.db3          r.le.setup             r.stats
p.vrml                 r.le.trace             r.surf.fractal
r.cats                 r.null                 r.surf.gauss
r.circle               r.out.agnps            r.surf.random
r.cost                 r.out.arc              r.surf.xy
r.describe             r.out.ascii            r.tribs
r.in.ascii             r.out.mpeg             r.what
r.in.hdf               r.out.tiff
r.in.pbm               r.plane

Many thanks to all contributors!

From now onwards a bug report formula is provided. If you find a bug in this GRASS 5 release (beta5), please let us know. We try to fix the bugs quickly. Go here for bug report:

http://www.geog.uni-hannover.de/grass/bugtracking/bugreport.html


What's new in GRASS 5.0 beta4 against beta3? (Oct. 1999)

(Comparing to GRASS 4.x, further implementations up to GRASS 5 beta4)

GRASS 5.x represents the first major change in GRASS GIS functionality in several years.

Please read HISTORY.txt and CREDITS for authorship.

1. New formats:

  • new sites API with multiple attributes and time attribute
  • floating point support in raster format
  • distinguish between Null and Zero in raster format
  • new 3D raster format "grid3" (g3d, voxel representation)
  • datetime library for temporal analysis
  • 2. new applications

  • latest TclTkGRASS graphical user interface
  • nviz2.2 (ported to tcl/tk 8.x)
  • ogl3d (predecessor of NVIZ, ported to Linux)
  • d.siter, d.siter.qual,
  • i.points3, i.rectify3, i.tape.tm3
  • r.null, r.recode, r.quant, r.in.arc, r.sum, r.timestamp, r.proj, r.resamp.rst, r.surf.area,
  • s.resamp.rst (modules mainly contribution from GMSLabs/University of Illinois
  • 3. Improved functionality:

  • updated standard GRASS modules to raster floating point support
  • d.mon (24bit)
  • g.setproj, m.proj (121 (yes!) projection added)
  • r.in.ppm (24bit), r.slope.aspect (calc. of curvature)
  • s.in.ascii (import elevation data properly)
  • 4. New projections:

  • projection software updated to PROJ4.3.3 (latest code available from USGS/1995)
  • 121 projections supported now: (m.proj and g.setproj support them as well)
    Lat/Lon, Universe Transverse Mercator, State Plane, Albers Equal Area, Lambert Conformal Conic, Mercator, Transverse Mercator, Lambert Equal Area Conic,, Lambert Azimuthal Equal Area, Azimuthal Equidistant, Airy, Aitoff, Mod. Stererographics of Alaska, Apian Globular I, August Epicycloidal, Bacon Globular, Bipolar conic of western hemisphere, Boggs Eumorphic, Bonne (Werner lat_1=90), Cassini, Central Cylindrical,, Equal Area Cylindrical, Chamberlin Trimetric, Collignon, Craster Parabolic (Putnins P4), Denoyer Semi-Elliptical, Eckert I, Eckert II, Eckert III, Eckert IV, Eckert V, Eckert VI, Equidistant Cylindrical (Plate Caree), Equidistant Conic, Euler, Fahey, Foucaut, Foucaut Sinusoidal, Gall (Gall Stereographic), Ginsburg VIII (TsNIIGAiK), General Sinusoidal Series, Gnomonic, Goode Homolosine, Mod. Stererographics of 48 U.S., Mod. Stererographics of 50 U.S., Hammer & Eckert-Greifendorff, Hatano Asymmetrical Equal Area, International Map of the World Polyconic, Kavraisky V, Kavraisky VII, Laborde, Lagrange, Larrivee, Laskowski, Lee Oblated Stereographic, Loximuthal, Space oblique for LANDSAT, McBryde-Thomas Flat-Polar Sine (No. 1), McBryde-Thomas Flat-Pole Sine (No. 2), McBride-Thomas Flat-Polar Parabolic, McBryde-Thomas Flat-Polar Quartic, McBryde-Thomas Flat-Polar Sinusoidal, Miller Oblated Stereographic, Miller Cylindrical, Modified Polyconic, Mollweide, Murdoch I, Murdoch II, Murdoch III, Nell, Nell-Hammer, Nicolosi Globular, Near-sided perspective, New Zealand Map Grid, General Oblique Transformation, Oblique Cylindrical Equal Area, Oblated Equal Area, Oblique Mercator, Ortelius Oval, Orthographic, Perspective Conic, Polyconic (American), Putnins P1, Putnins P2, Putnins P3, Putnins P3', Putnins P4', Putnins P5, Putnins P5', Putnins P6, Putnins P6', Quartic Authalic, Robinson, Rectangular Polyconic, Sinusoidal (Sanson-Flamsteed), Swiss. Obl. Mercator, Stereographic, Transverse Central Cylindrical, Transverse Cylindrical Equal Area, Tissot, Two Point Equidistant, Tilted perspective, Universal Polar Stereographic, Urmaev V, Urmaev Flat-Polar Sinusoidal, van der Grinten (I), van der Grinten II, van der Grinten III, van der Grinten IV, Vitkovsky I, Wagner I (Kavraisky VI), Wagner II, Wagner III, Wagner IV, Wagner V, Wagner VI, Wagner VII, Werenskiold I, Winkel I, Winkel II, Winkel Tripel
  • 5. Misc:

  • support for cursor key movement in coordinate windows (these screens will be left with now
  • lots of bugfixes
  • new XDRIVER with true 8..24bit support (choose color depth with d.mon)
  • "configure" tool to create "head" files (compiler instructions) automatically
  • general source code improvement:
  • Better Code:
          - gets() is an Achilles' heel for GRASS when used on the Web, or where
            through ignorance or malice someone can overrun an input buffer. I 
            have replaced gets() calls with the slightly safer fgets(). 
          - G_warning() and G_fatal_error() are called throughout the GRASS code
            tree as though they accepted variable arguments, i.e. 
    
               G_warning("Oops: error in %s, i = %d\n",string,integer);
    
            which is not how they were written. They were written to accept one
            char*, which they write to the screen and/or log. I have re-written 
            these functions so that they accept varargs. This change has not
            been approved by anyone, nor passed any peer review. It just seems 
            right. 
          - G_free() as as companion to G_malloc() and friends. It is annoying
            to have to replace all of the #include  with 
            #include  so instead I just created a function to be 
            included in the gis.h header. This is portable, which is an 
            improvement. 
        
  • Prototyping:
          - It's much easier to track down the mismatched arguments and implicit
            casts with prototypes. These patches provide prototypes for all of
            the src/libes, and as many other libes and modules as I have gotten
            into. 
          - In the module code, the 4.2.1v21 patch has automatically-created
            header files to provide function prototypes within each module. Some 
            of this is overkill. As I work through each module, these headers
            are fixed to be a little less intrusive. Right now, though, there 
            are still compile warnings that are the fault of this prototyping.
          - The 5.0 code has not had as much work as the 4.2-series, so there
            are still a number of bad calls lurking in the modules. With the 
            proper prototypes, maybe somebody can fix them. 
        
  • Bugfixes:
         -  Functions with the wrong number of arguments. 
         -  Functions with the wrong type of arguments. 
         -  Functions with the wrong return type. Usually, this is because a
            function is allowed to default to an 'int' return, even though it 
            returns a char*, or struct*. This may work on 32-bit machines, but 
            whenever sizeof(char*) != sizeof(int) (64-bit machines, for example) 
            these functions overwrite memory, dump cores, and generally fail 
            to work. 
         -  Built-in functions without the proper headers. This leads to bad
            return types. 
      

  • GRASS Development Team

    CAGSR at Baylor University, GMSlabs at University of Illinois, PhyGeo at University of Hannover, Germany

    (c) 1999