[Rspatial-devel] new("SpatialGridDataFrame") time issue

Edzer Pebesma edzer.pebesma at uni-muenster.de
Mon Jan 23 16:57:49 CET 2012


Agreed.

I'm working on a fix where SpatialGrid no longer subclasses
SpatialPixels (no longer "is" a SpatialPixels or SpatialPoints).

I believe this is the only way, as the issue keeps coming back at
inconvenient moments.

Will try to check against all packages depending on sp. I committed to
svn, can you run a check against ASDAR?

On 01/22/2012 11:32 PM, Roger Bivand wrote:
> With revision 1200, the same test is:
> 
>    user  system elapsed
>   7.763   0.346   8.119
> 
> but no validity checks are done. As may be sensible, something may be
> done about validity checking, but an order of magnitude speedup is worth
> having, I think.
> 
> Roger
> 
> On Sun, 22 Jan 2012, Roger Bivand wrote:
> 
>> Hi,
>>
>> Working with Rainer Krug on making readRAST6() in spgrass6 faster,
>> we've identified an issue with time wasting in creating SGDF. For
>> 2.14.1, sp 0.9-93, rgdal 0.7-8:
>>
>>> Rprof("readGDAL.out")
>>> system.time(for (i in 1:50) SP27GTIF <- 
>> readGDAL(system.file("pictures/SP27GTIF.TIF", package = "rgdal")[1]))
>>   user  system elapsed
>> 122.961   4.678 131.383
>>> Rprof("")
>>> summaryRprof("readGDAL.out")
>> $by.self
>>                        self.time self.pct total.time total.pct
>> "getGridIndex"              32.32    25.31      45.44     35.59
>> "asMethod"                  10.60     8.30     119.04     93.23
>> "slot<-"                     8.50     6.66       8.64      6.77
>> "apply"                      7.52     5.89      15.12     11.84
>> "validityMethod"             7.24     5.67     120.30     94.22
>> ".local"                     6.40     5.01      22.92     17.95
>> "structure"                  5.56     4.35       5.58      4.37
>> "expand.grid"                5.14     4.03      12.72      9.96
>> "FUN"                        4.86     3.81       4.86      3.81
>> "initialize"                 4.34     3.40     123.08     96.40
>> "SpatialPixels"              3.06     2.40      96.18     75.33
>> "aperm.default"              2.70     2.11       2.70      2.11
>> "SpatialPoints"              2.54     1.99      49.16     38.50
>> "gc"                         2.52     1.97       2.52      1.97
>> ....
>> $by.total
>>                        total.time total.pct self.time self.pct
>> "system.time"               127.68    100.00      0.00     0.00
>> "readGDAL"                  127.64     99.97      0.00     0.00
>> "new"                       123.10     96.41      0.02     0.02
>> "initialize"                123.08     96.40      4.34     3.40
>> "SpatialGridDataFrame"      123.04     96.37      0.00     0.00
>> "validObject"               120.42     94.31      0.00     0.00
>> "validityMethod"            120.30     94.22      7.24     5.67
>> "anyStrings"                120.30     94.22      0.00     0.00
>> "as"                        119.08     93.26      0.00     0.00
>> "asMethod"                  119.04     93.23     10.60     8.30
>> "SpatialPixels"              96.18     75.33      3.06     2.40
>> "nrow"                       96.18     75.33      0.00     0.00
>> "SpatialGrid"                59.22     46.38      0.00     0.00
>> "SpatialPoints"              49.16     38.50      2.54     1.99
>> "getGridIndex"               45.44     35.59     32.32    25.31
>> "standardGeneric"            27.94     21.88      0.00     0.00
>> "is"                         26.28     20.58      0.02     0.02
>> ".local"                     22.92     17.95      6.40     5.01
>> "coordinates"                22.92     17.95      0.00     0.00
>> "do.call"                    16.48     12.91      0.00     0.00
>> ".bboxCoords"                15.16     11.87      0.02     0.02
>> "t"                          15.14     11.86      0.02     0.02
>> "apply"                      15.12     11.84      7.52     5.89
>> "expand.grid"                12.72      9.96      5.14     4.03
>> "slot<-"                      8.64      6.77      8.50     6.66
>> "structure"                   5.58      4.37      5.56     4.35
>>
>>
>> The getGridIndex() call is particularly odd, taking 25% of execution
>> time. I've put the Rprof file on rspatial/misc. This looks like an S4
>> oddity to me. I can't see where the validity checks might recurse to
>> trip calls to other classes. The validity check ought to be a
>> no-brainer, really. I don't know when this happened, it may be caused
>> by recent methods.
>>
>> Any ideas?
>>
>> Roger
>>
>>
> 

-- 
Edzer Pebesma
Institute for Geoinformatics (ifgi), University of Münster
Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251
8333081, Fax: +49 251 8339763  http://ifgi.uni-muenster.de
http://www.52north.org/geostatistics      e.pebesma at wwu.de


More information about the Rspatial-devel mailing list