[R-sig-Geo] map algebra with ascii grid
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Sun Jul 15 20:22:49 CEST 2007
Agustin Lobo wrote:
> Roger,
>
> I think that having Arithmetic operations defined for
> SpatialGridDataFrame objects would be very useful.
The problem is that SpatialSomethingDataFrame objects don't inherit
data.frame's behaviour (with respect to mathematical operators). Perhaps
if R's OO implementation was a bit more conventional you'd get this for
free by subclassing data.frame.
But data.frame isn't subclassable properly. A SpatialPointsDataFrame
is an S4 object with a data frame in the @data member. In order to
implement data.frame-like behaviour, it is necessary to implement
methods for SpatialPointsDataFrame that work on the @data object - for
example, dim:
dim.SpatialPointsDataFrame = function(x) dim(x at data)
It should be almost as equally trivial to implement the arithmetic
operators - they would work on the @data member and leave the
coordinates untouched. Although what happens to the coordinates if you
add two spatial data frames with different coordinates (but the same
shape of data frame)? I would be tempted to either make sdf1 + sdf2
return a plain data frame - and if the user wants to slap coordinates on
it they can take it from sdf1 or sdf2 - or always use the coords from
the first argument.
Barry
More information about the R-sig-Geo
mailing list