[Rspatial-devel] SpatialMultiPoints

Robert J. Hijmans r.hijmans at gmail.com
Thu Aug 13 19:07:26 CEST 2015


Or use a third column for the coordinates, that, when present, serves
as the key to the attributes? Perhaps that is, in the long run, easier
than row names as row names cannot be directly operated on, and are
characters.

On Thu, Aug 13, 2015 at 9:57 AM, Edzer Pebesma
<edzer.pebesma at uni-muenster.de> wrote:
>
> On 08/13/2015 06:17 PM, Robert J. Hijmans wrote:
>> Edzer, That's great. But why not make it more consistent with the
>> other classes by modifying SpatialPoints* such that it can have
>> multiple points per record; just like for SpatialLines and
>> SpatialPolygons? Would that guarantee to break too much; or perhaps be
>> too much work to avoid that?  Robert
>
> That is a clever idea; the match to the data slot would then be done by
> the rownames of the coords slot, and allow for many-to-one, in which
> case the number of rows in the coords slot gets larger than the number
> of attribute records.
>
> Would users understand this?
>
> I was looking at support by rgeos, but it seems we (nearly) have this
> already when rownames of the coords slot are present, and indicate group
> (not sure if this is documented at all!):
>
>> m = matrix(1:8,4,2, dimnames = list(c(1,1,2,2)))
>> m
>   [,1] [,2]
> 1    1    5
> 1    2    6
> 2    3    7
> 2    4    8
>
>> library(rgeos)
> rgeos version: 0.3-11, (SVN revision 479)
>  GEOS runtime version: 3.4.2-CAPI-1.8.2 r3921
>  Linking to sp version: 1.1-1
>  Polygon checking: TRUE
>
>> gIntersects(SpatialPoints(m), byid=T) # NOT 4x4!!!
>       1     2
> 1  TRUE FALSE
> 2 FALSE  TRUE
>
>> m2 = matrix(1:8,4,2)
>> gIntersects(SpatialPoints(m2), byid=T)
>       1     2     3     4
> 1  TRUE FALSE FALSE FALSE
> 2 FALSE  TRUE FALSE FALSE
> 3 FALSE FALSE  TRUE FALSE
> 4 FALSE FALSE FALSE  TRUE
>> gIntersects(SpatialPoints(m), SpatialPoints(m2), byid=T)
>       1     2
> 1  TRUE FALSE
> 2  TRUE FALSE
> 3 FALSE  TRUE
> 4 FALSE  TRUE
>
>
>>
>> On Wed, Aug 12, 2015 at 8:43 AM, Edzer Pebesma
>> <edzer.pebesma at uni-muenster.de> wrote:
>>> The development version of sp, on r-forge, now provides objets with
>>> MultiPoint geometries, called SpatialMultiPoints and
>>> SpatialMultiPointsDataFrame.
>>>
>>> It can do things like:
>>>
>>> cl1 = cbind(rnorm(3, 10), rnorm(3, 10))
>>> cl2 = cbind(rnorm(5, 10), rnorm(5,  0))
>>> cl3 = cbind(rnorm(7,  0), rnorm(7, 10))
>>>
>>> library(sp)
>>> mp = SpatialMultiPoints(list(cl1, cl2, cl3))
>>> plot(mp, col = 2, cex = 1, pch = 1:3)
>>> mp
>>> mp[1:2]
>>>
>>> print(mp, asWKT=TRUE, digits=3)
>>>
>>> mpdf = SpatialMultiPointsDataFrame(list(cl1, cl2, cl3), data.frame(a = 1:3))
>>> mpdf
>>>
>>> plot(mpdf, col = mpdf$a, cex = 1:3)
>>> as(mpdf, "data.frame")
>>> mpdf[1:2,]
>>>
>>> Comments are welcome.
>>> --
>>> Edzer Pebesma
>>> Institute for Geoinformatics (ifgi),  University of Münster,
>>> Heisenbergstraße 2, 48149 Münster, Germany; +49 251 83 33081
>>> Journal of Statistical Software:   http://www.jstatsoft.org/
>>> Computers & Geosciences:   http://elsevier.com/locate/cageo/
>>> Spatial Statistics Society http://www.spatialstatistics.info
>
> --
> Edzer Pebesma
> Institute for Geoinformatics (ifgi),  University of Münster,
> Heisenbergstraße 2, 48149 Münster, Germany; +49 251 83 33081
> Journal of Statistical Software:   http://www.jstatsoft.org/
> Computers & Geosciences:   http://elsevier.com/locate/cageo/
> Spatial Statistics Society http://www.spatialstatistics.info
>


More information about the Rspatial-devel mailing list