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)
- Lots of bugfixes over 5.0beta3: e.g. fixed "empty text screen" problem,
futher improved source code structure, new debug routine G_dump, added
missing return statements...
- 121 projections supported now!
- Use m.proj as your "projection calculator" for all 121 projections
- DISPLAY: fixed: d.area, d.sites.qual, d.vect.cats
- updated/fixed: g.setproj, m.proj, both support the 121 projections
- RASTER: fixed: r.colors, r.digit, r.flow, r.resamp.rst, r.to.sites,
r.slope.aspect, r.contour r.in.poly, r.statistics
- IMAGERY: fixed: i.rectify
- SITES: fixed instable sites format (concerns all site modules)
- fixed: s.surf.rst
- added several sites modules: s.normal, s.perturb, s.qcount, s.probplt,
s.rand, s.sample, s.sv, s.univar, s.kcv
- VECTOR: fixed: general bug for all vector modules
- fixed: v.to.rast
- updated: v.in.shape: category text labels support now
- v.digspline renamed to v.digit, removed old v.digit stuff
- added several vector modules from GRASS 4.2.1: v.random,
v.extract, v.merge, v.autocorr, v.info, v.export, v.geom
- NVIZ2.2: fixed map selection problem
- "image dump" writes "xv" readable files now
- Still to do: update r.in.hdf to 4.1.3HDFlib, correct r.surf.contour
- detect further bugs (please report them! or fix them...)
- get vector format 64bit compliant (needs further input)
(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:
2. new applications
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