On Thursday, October 20, 2011, Kirk Wythers wrote: > On Oct 20, 2011, at 9:22 AM, Dylan Beaudette wrote: > > > The neat thing about GRASS and other OSS, you can always take a peak at the > > source code. From my basic understanding of C, I don't think that there is > > anything here that would accommodate ties-- so the result of > > mode(4,4,4,4,5,5,5,5) would probably be 4 -- as it comes first. This is the > > behavior in R when using something like which.max(table(x)). > > Thanks for the reply Dylan. As I read through the code you pasted, it looks to me that as the variable 'values' gets counted, then in the case of a tie, such as this 2 x 2 matrix > > _____ > | 4 | 5 | > _____ > | 4 | 5 | > _____ > > would yield a mode result of 4 with the logic that the tie goes to the smallest value in sorted list of values? In this case... 4 4 5 5 = mode of 4, where as a sorted list such as 1 2 3 4 would yield a mode of 1? > > Is that right? >
That is my interpretation of the code. Perhaps Glynn or someone else more familiar with the raster library can comment further. Also- why not try a simple experiment. You can create fake raster data with a text editor and read it in via r.in.ascii. put the following in a text file called 'fake.rast' : ---------------------------------- north: 4 south: 0 east: 4 west: 0 rows: 4 cols: 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 ------------------------------------ # import r.in.ascii in=fake.raster out=f g.region rast=f -p # check d.mon wx0 d.rast.num f # aggregate g.region res=4 -p r.resamp.stats --o in=f out=f.mode method=mode # check d.erase d.rast.num f.mode ... which shows that our interpretation is correct. An interesting side-note: # region is still set to a resolution of 4x4 units = 1 cell # NN-resampling of the original data gives us 5... r.out.ascii --q -h f 5 # aggregated (mode) gives us 4... r.out.ascii --q -h f.mode 4 Fun! -- Dylan E. Beaudette USDA-NRCS Soil Scientist California Soil Resource Lab http://casoilresource.lawr.ucdavis.edu/ _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user