[Rspatial-devel] SpatialMultiPoints
Roger Bivand
Roger.Bivand at nhh.no
Thu Aug 13 20:36:17 CEST 2015
On Thu, 13 Aug 2015, Robert J. Hijmans wrote:
> 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.
All unique strings are hashed internally in base R, so string lookup in
R is cheap - this applies to the strings used for row.names:
https://cran.r-project.org/doc/manuals/r-devel/R-ints.html#The-CHARSXP-cache
Bets would be off in C/C++, unless going through SEXP (which we could
check that we do?).
Roger
>
> 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
>>
> _______________________________________________
> Rspatial-devel mailing list
> Rspatial-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rspatial-devel
--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 91 00
e-mail: Roger.Bivand at nhh.no
More information about the Rspatial-devel
mailing list