[Rspatial-devel] SpatialMultiPoints

Edzer Pebesma edzer.pebesma at uni-muenster.de
Thu Aug 13 18:57:17 CEST 2015


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: OpenPGP digital signature
URL: <http://lists.r-forge.r-project.org/pipermail/rspatial-devel/attachments/20150813/474bb59a/attachment.sig>


More information about the Rspatial-devel mailing list