Brad,
(cc grass5)
great - it seems to work! This was a long standing bug
(a couple of years?). A test:
r.stats -anC input='usa_income_employment2002_states,usa_income_employment2002_avg_wages' fs=space
WARNING: r.stats: cats for usa_income_employment2002_avg_wages are either
missing or have no explicit labels. Using nsteps=255
r.stats: 100%
2 19777.666667-19998.8 1861497713.571833
2 20662.2-20883.333333 1501426192.699261
2 21546.733333-21767.866667 1610707648.889104
2 21767.866667-21989 1595985234.376738
...
51 37026.066667-37247.2 12379878568.384022
r.average cover=usa_income_employment2002_avg_wages base=usa_income_employment2002_states out=usa_income_employment2002_states_avg_wages
WARNING: r.stats: cats for usa_income_employment2002_avg_wages are either
missing or have no explicit labels. Using nsteps=255
r.stats: 100%
percent complete: 100%
The calculations no longer segfault.
v.univar usa_income_employment2002 col=B34_2002
WARNING: Incompatible vector type(s), only number of features, minimum,
maximum and range can be calculated
number of features with non NULL attribute: 11954
number of missing attributes: 0
number of NULL attributes: 0
minimum: 15355
maximum: 71993
range: 56638
# note that I have zoomed before creating the raster map:
r.info -r usa_income_employment2002_avg_wages
min=15355.000000
max=71744.000000
r.info -r usa_income_employment2002_states_avg_wages
min=21639.958984
max=57480.898438
Upon first inspection the results look reasonable.
Fixes bug #2767.
Thanks, Brad!
Markus
On Mon, Nov 07, 2005 at 04:17:05PM -0800, Brad Douglas wrote:
I suspect that the variable 'i' has no real usage and was missed durning
an upgrade of the file. cvs up and let me know if you still get
segfaults.
On Mon, 2005-11-07 at 23:37 +0100, Markus Neteler wrote:
> Brad,
>
> I just updated at home on my Mandriva 2005 box, same problem:
>
> (gdb) r -anC input='usa_incemp2002_states,usa_incemp2002_avg_wages' fs=space
> Starting program: /home/neteler/soft/61grass_cvsexp/dist.i686-pc-linux-gnu/bin/r.stats -anC input='usa_incemp2002_states,usa_incemp2002_avg_wages' fs=space
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7f4dc84 in G_set_raster_cats_title (title=0xbfffea40 "usa_incemp2002_avg_wages",
> pcats=0xba1c36a8) at cats.c:1537
> 1537 pcats->title = G_store (title);
>
> Maybe it's the compiler flags I am using?
>
> export CFLAGS="-g -Wall -Werror-implicit-function-declaration -fno-common"
> ./configure --with-cxx \
> --with-postgres-includes=/usr/include/pgsql \
> --with-gdal=/usr/local/bin/gdal-config \
> --with-proj \
> --with-motif \
> --with-glw \
> --with-nls \
> --with-sqlite \
> --with-opendwg \
> --with-opendwg-includes=/home/neteler/soft/openDWGtoolkit \
> --with-opendwg-libs=/home/neteler/soft/openDWGtoolkit \
> --with-freetype --with-freetype-includes=/usr/include/freetype2 \
> --enable-largefile
>
> I am testing on 32bit, both INTEL Pentium4 (office and laptop).
>
> Markus
>
>
> On Mon, Nov 07, 2005 at 01:10:58PM -0800, Brad Douglas wrote:
> > Markus,
> >
> > I updated CVS and ran 'r.stats -anC fields,elevation.10m' in Spearfish
> > and it works without error (but warns that elevation.10m does not have
> > cats).
> >
> > ???
> >
> > On Mon, 2005-11-07 at 09:39 +0100, Markus Neteler wrote:
> > > Brad,
> > >
> > > I tested and r.stats still crashed...
> > > It looped over usa_income_employment2002_states, then
> > > usa_income_employment2002_county_avg_wages, then crash in the
> > > 'for' line. I have patched it again, taking code from
> > > r.patch. Now it works.
> > >
> > > But: The next bug appears when opening the
> > > 'usa_income_employment2002_county_avg_wages' map. May I bother
> > > you again? This bug can be easily reproduced in Spearfish
> > > running:
> > >
> > > r.stats -anC fields,elevation.10m
> > >
> > > gdb `which r.stats`
> > > (gdb) r -anC fields,elevation.10m
> > > Starting program: /nfsmnt/thuille0/ssi/software/cvsgrass61/dist.i686-pc-linux-gnu/bin/r.stats -anC fields,elevation.10m
> > >
> > > Program received signal SIGSEGV, Segmentation fault.
> > > 0x004a9bec in G_set_raster_cats_title (title=0xbfeb1f00 "", pcats=0x3fa13ae0) at cats.c:1537
> > > 1537 pcats->title = G_store (title);
> > >
> > > (gdb) bt full
> > > #0 0x004a9bec in G_set_raster_cats_title (title=0xbfeb1f00 "", pcats=0x3fa13ae0) at cats.c:1537
> > > No locals.
> > > #1 0x004a9afa in G_init_raster_cats (title=0xbfeb1f00 "", pcats=0x3fa13ae0) at cats.c:1488
> > > No locals.
> > > #2 0x004a8563 in G__read_cats (element=0x4e4c60 "cats", name=0x8fdae48 "elevation.10m", mapset=0x8fdaf78 "PERMANENT",
> > > pcats=0x3fa13ae0, full=1) at cats.c:488
> > > fd = (FILE *) 0x8fdc200
> > > buff = "\000\0001847 categories\000\000\000\037�0�\b�\000\024�\000H\037�aK\000DcN\000H\bx\bHaK\000/mpa\024�\000f\031?\000\fL\000p\037�000\000\000\000H\bx\bta/spearfish\001\000\000\000/mpa_gdata/ssi/BIO/GRASS_DATA/data/spearfish60/PERMANENT/fcell/elevation.10m\000\000\000\000\002\000\000\000\220N\000"...
> > > cat = 1682713778
> > > val1 = -0.84838902935116645
> > > val2 = 0
> > > old = 0
> > > fp_map = 1
> > > num = 1847
> > > #3 0x004a824d in G_read_raster_cats (name=0x8fdae48 "elevation.10m", mapset=0x8fdaf78 "PERMANENT", pcats=0x3fa13ae0)
> > > at cats.c:372
> > > type = 0x4a8220 "U\211�\203�024�
> > > #4 0x004a8218 in G_read_cats (name=0x8fdae48 "elevation.10m", mapset=0x8fdaf78 "PERMANENT", pcats=0x3fa13ae0) at cats.c:350
> > > No locals.
> > > #5 0x0804a546 in main (argc=3, argv=0xbfeb2674) at main.c:280
> > > msg = '\0' <repeats 44 times>, "4\a3\000\000\000\000\000�3\000\030$�\200\004\b%뿩�\0004\200\004\b\a\000\000\000\030$�003\000\000\000\t\006\002\000\236$�000\000\000"
> > > to_screen = 0x804bf18 " output to screen "
> > > fd = (int *) 0x8fdaf88
> > > i = 4583412
> > > names = (char **) 0x8fdae08
> > > ptr = (char **) 0x8fdae0c
> > > name = 0x8fdae48 "elevation.10m"
> > > mapset = 0x8fdaf78 "PERMANENT"
> > > verbose = 1
> > > raw_data = 0
> > > with_coordinates = 0
> > > with_xy = 0
> > > with_percents = 0
> > > with_counts = 0
> > > with_areas = 1
> > > with_labels = 0
> > > fmt = '\0' <repeats 19 times>
> > > dp = -1
> > > range = {min = 1, max = 63, first_time = 0}
> > > fp_range = {min = 4.9406564584124654e-324, max = 4.9406564584124654e-324, first_time = 0}
> > > q = {truncate_only = 758722102, round_only = 1160655410, defaultDRuleSet = 1886221132, defaultCRuleSet = 0,
> > > infiniteLeftSet = 0, infiniteRightSet = 0, cRangeSet = 0, maxNofRules = 3329843, nofRules = 134516531,
> > > defaultDMin = 1.0777334131618748e-307, defaultDMax = 1.525183134850258e-314, defaultCMin = -1075108572, defaultCMax = 3311161,
> > > infiniteDLeft = 4.8663130273591856e-270, infiniteDRight = 6.8826446699923356e-313, infiniteCLeft = 0, infiniteCRight = 0,
> > > dMin = 1.1461765041289974e-307, dMax = 1.0993296281278474e-307, cMin = 7, cMax = -1207960784, table = 0xb7fffb70, fp_lookup = {
> > > vals = 0x177ff8e, rules = 0x8048fa0, nalloc = 3366868, active = 3368612, inf_dmin = -0.84838487211208147,
> > > inf_dmax = 4.8586156784264609e-270, inf_min = -1075108428, inf_max = 3368528}}
> > > min = 1
> > > max = 63
> > > null_set = 1
> > > dmin = 0
> > > dmax = 0
> > > module = (struct GModule *) 0x53028c
> > > flag = {A = 0x8fdabe0, a = 0x8fdac08, c = 0x8fdac30, p = 0x8fdac58, l = 0x8fdac80, q = 0x8fdaca8, n = 0x8fdacd0,
> > > N = 0x8fdacf8, one = 0x530220, x = 0x8fdad48, g = 0x8fdad20, i = 0x8fdadc0, r = 0x8fdad98, C = 0x8fdad70}
> > > option = {cell = 0x530240, fs = 0x8fdaa70, nv = 0x8fdaac0, output = 0x8fdab10, nsteps = 0x8fdab70}
> > >
> > >
> > > I tried to fix it with help of others to no avail:
> > >
> > > http://grass.itc.it/pipermail/grass5/2004-December/016549.html
> > > http://grass.itc.it/pipermail/grass5/2004-December/016576.html
> > >
> > > http://www.intevation.de/rt/webrt?serial_num=2767&display=History
> > >
> > > Can you reproduce this bug?
> > >
> > > Thanks
> > >
> > > Markus
--
Brad Douglas <rez@touchofmadness.com>
--
Markus Neteler <neteler itc it> http://mpa.itc.it
ITC-irst - Centro per la Ricerca Scientifica e Tecnologica
MPBA - Predictive Models for Biol. & Environ. Data Analysis
Via Sommarive, 18 - 38050 Povo (Trento), Italy