Opérateurs spatiaux dans R?

12

Comment puis-je faire des sélections spatiales ou des filtres dans R? Je peux le faire dans PostGIS en utilisant (par exemple):

SELECT * FROM mypoint, mypoly
WHERE ST_Within(mypoint.geom, mypoly.geom);

et c'est également un jeu d'enfant dans la plupart des autres logiciels SIG. Je m'attends donc à ce que quelque chose dans R ressemble à:

mypoint[within(mypoint, mypoly),]

mais je ne trouve aucune piste nulle part. Je cherche quelque chose qui utilise la terminologie commune de prédicat spatial utilisée dans PostGIS / GEOS / JTS / Shapely (à l'intérieur, contient, intersecte, se chevauche, se touche, etc.; DWithin serait un bonus). Cette fonctionnalité ou bibliothèque existe-t-elle pour R? Sinon, y a-t-il quelque chose de similaire?

Remarque: Dans R, j'utilise la spclasse pour mes objets ( SpatialPointsDataFrame, etc.).

Mike T
la source

Réponses:

11

Pour votre question spécifique, vous devriez pouvoir utiliser point.in.polygon( docs ) ou overlay( vignette ) pour effectuer l'analyse.

Un langage de prédicat spatial n'est pas trivial à implémenter, et tous les exemples que vous avez mentionnés se résument à des ports ou des wrappers de JTS à un moment donné. Il existe une version pré-alpha de rgeos , une entrée récente de Google SOC qui donne accès à GEOS directement à partir de R.

En général, il semble que les développeurs de R cherchent à maintenir une implémentation SIG complète dans R lui-même, ou plutôt de s'appuyer sur des packages facilitant l'interaction avec PostGIS, GRASS ( spgrass), SAGA ( rsaga) et similaires pour fournir des informations plus approfondies. savoir-faire spatial.

scw
la source
point.in.polygonest un bon début pour les polygones de base, bien qu'un peu grossier (par exemple): point.in.polygon(pnt@coords[,1], pnt@coords[,2], lake@polygons[[1]]@Polygons[[1]]@coords[,1], lake@polygons[[1]]@Polygons[[1]]@coords[,2]) je suis vraiment impatient de ce rgeosque vous avez mentionné, et a tous les prédicats binaires et plus encore.
Mike T
Pour des exemples de spgrass6 avec GRASS, voir grass.osgeo.org/wiki/R_statistics
markusN
1
rgeosest maintenant sur CRAN , et est très simple à installer / utiliser / etc.
Mike T