Как я могу сделать пространственные выделения или фильтры в R? Я могу сделать это в PostGIS, используя (например):
SELECT * FROM mypoint, mypoly
WHERE ST_Within(mypoint.geom, mypoly.geom);
и это аналогично в большинстве других программ ГИС. Так что я ожидаю, что что-то в R будет выглядеть так:
mypoint[within(mypoint, mypoly),]
но я нигде не могу найти никаких указаний. Я ищу что-то, что использует общую терминологию пространственных предикатов, используемую в PostGIS / GEOS / JTS / Shapely (внутри, содержит, пересекает, перекрывает, касается и т. Д .; DWithin будет бонусом). Эта функциональность или библиотека существует для R? Если нет, есть ли что-то похожее?
Примечание. В R я использую sp
класс для своих объектов ( SpatialPointsDataFrame
и т. Д.).
источник
point.in.polygon
хорошее начало для базовых полигонов, хотя и немного грубое (например):point.in.polygon(pnt@coords[,1], pnt@coords[,2], lake@polygons[[1]]@Polygons[[1]]@coords[,1], lake@polygons[[1]]@Polygons[[1]]@coords[,2])
я очень жду того,rgeos
что вы упомянули, и имеет все двоичные предикаты и многое другое.rgeos
сейчас на CRAN и очень прост в установке / использовании / etc.