Great. Things get better and faster! I've tried on a not so big region. But it was enough:
989861 cells (172286 null cells under MASK, where I have the see) It has taken about 55 seconds (I don't have time to set up a profiling), where I asked for drain and visual outputs creation. The stats are (calculated in OO): DIFF-VALUES N.PIXELS PERCENTAGE -7 56 0,0068 -6 30 0,0037 -5 32 0,0039 -4 49 0,0060 -3 38 0,0046 -2 180 0,0220 -1 914 0,1118 0 814650 99,6422 1 910 0,1113 2 229 0,0280 3 79 0,0097 4 42 0,0051 5 21 0,0026 6 70 0,0086 7 152 0,0186 8 22 0,0027 9 21 0,0026 10 5 0,0006 11 15 0,0018 12 30 0,0037 13 18 0,0022 14 3 0,0004 15 5 0,0006 16 4 0,0005 Things has run better then with the previous version, as >99.6% of values are equal to r.watershed. Thanks, a lot, for r.watershed.fast! :-) Giovanni 2008/8/1 Markus Metz <[EMAIL PROTECTED]>: > Hello list, > > there is now a new version of r.watershed.fast where results are even more > similar to r.watershed. They are still not 100% identical to r.watershed, > but I can't get it more similar. But it comes with a further speed increase. > I repeated the test of Moritz with the same commands on GRASS 6.4.svn, > results are below. > > Moritz Lennert wrote: >> >> First test in North Carolina demo data set: >> >> g.region rast=elevation >> >> time r.watershed [EMAIL PROTECTED] accumulation=old_accum >> drainage=old_dir basin=old_sheds stream=old_streams thresh=500 >> >> real 19m2.744s >> user 18m41.318s >> sys 0m1.884s >> >> time r.watershed.fast [EMAIL PROTECTED] >> accumulation=fast_accum drainage=fast_dir basin=fast_sheds >> stream=fast_streams thresh=500 >> >> real 0m18.034s >> user 0m17.833s >> sys 0m0.196s > > Absolute times are not really comparable between systems, but relative > differences in time should be similar. The following numbers are calculated > with real time. In the test Moritz did, r.watershed took 63x as long as > r.watershed.fast, i.e. r.watershed.fast needed only 1.6% of the time of > r.watershed. > New version: r.watershed took 127x as long as r.watershed.fast, i.e. > r.watershed.fast needed only 0.8% of the time of r.watershed. >> >> Of the 2025000 cells in the map, 1991218 show the same direction, i.e. >> 98%. Those which have different directions are overwhelmingly low slope >> cells. > > New version: 2004480 cells, i.e. 99% of all cells show the same flow > direction. >> >> 1833907 cells have the same accumulation value, i.e. 90%, but I guess this >> is to be expected. > > New version: 1921510 cells, i.e. 95% of all cells show the same accumulation > value. > > The idea is that a faster r.watershed can also be used for massive grids, > where GRASS users frequently gave up using r.watershed because it would have > taken hours or even days. I resampled "elevation" in the North Carolina demo > data set from 10m to 3m with r.resamp.rst using default values (after the > GRASS book Section 5.3.3, paragraph "Regularized spline with tension (RST) > interpolation") to generate a fairly large map and ran the same test on the > resampled map. > > cells in region : 22,500,000 > > The results: > > Speed: > r.watershed took 5459x as long as r.watershed.fast, i.e. r.watershed.fast > needed only 0.02% of the time of r.watershed (here 10h2m55s vs. 1m7s, 10 > hours versus 1 minute...). > > Flow direction differences: > 22288539 cells, i.e. 99% of all cells show the same flow direction. > > Flow accumulation differences: > 20963653 cells, i.e. 93% of all cells show the same accumulation value. > > Memory usage of r.watershed and r.watershed.fast: maximum of about 940MB > I don't understand why memory usage increases after <SECTION 1a: Initiating > Memory> is completed. > Assuming that there is no longer a time constraint but only a memory > constraint (although <SECTION 4: Watershed Determination> can take some time > on large maps with a large threshold value), the upper region sizes that > r.watershed.fast can process in RAM would be *roughly* for > 1GB RAM: 14,000,000 cells > 2GB RAM: 38,000,000 cells > 4GB RAM: 86,000,000 cells > 8GB RAM: 181,000,000 cells > after putting 400MB aside for the system and other open applications. > Estimate based on Linux 64bit. > > If you want to repeat and analyse the tests with the North Carolina demo > data set, the new r.watershed.fast is here > http://markus.metz.giswork.googlepages.com/r.watershed_fast_version.tar.gz > and the test script is below. > > Regards, > > Markus > > > test script: > g.region rast=elevation > time r.watershed [EMAIL PROTECTED] accumulation=nc_accum_old > drainage=nc_dir_old basin=nc_sheds_old stream=nc_streams_old thresh=500 > time r.watershed.fast [EMAIL PROTECTED] > accumulation=nc_accum_fast drainage=nc_dir_fast basin=nc_sheds_fast > stream=nc_streams_fast thresh=500 > r.mapcalc nc_dir_dif='if(("nc_dir_old" - "nc_dir_fast" != 0),1,0)' > r.mapcalc nc_accum_dif='if(("nc_accum_old" - "nc_accum_fast" != 0),1,0)' > r.stats -c [EMAIL PROTECTED] > r.stats -c [EMAIL PROTECTED] > > r.resamp.rst [EMAIL PROTECTED] ew_res=3 ns_res=3 elev=elevation_rst > overlap=3 zmult=1.0 tension=40. > g.region rast=elevation_rst > time r.watershed [EMAIL PROTECTED] > accumulation=nc_rst_accum_old drainage=nc_rst_dir_old basin=nc_rst_sheds_old > stream=nc_rst_streams_old thresh=500 > time r.watershed.fast [EMAIL PROTECTED] > accumulation=nc_rst_accum_fast drainage=nc_rst_dir_fast > basin=nc_rst_sheds_fast stream=nc_rst_streams_fast thresh=500 > r.mapcalc nc_rst_dir_dif='if(("nc_rst_dir_old" - "nc_rst_dir_fast" != > 0),1,0)' > r.mapcalc nc_rst_accum_dif='if(("nc_rst_accum_old" - "nc_rst_accum_fast" != > 0),1,0)' > r.stats -c [EMAIL PROTECTED] > r.stats -c [EMAIL PROTECTED] > > _______________________________________________ > grass-user mailing list > grass-user@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/grass-user > _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user