R? De uzamsal operatörler?


12

R'de uzamsal seçimleri veya filtreleri nasıl yapabilirim? PostGIS bunu kullanarak (örneğin):

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

ve benzer şekilde diğer birçok CBS yazılımında çocuk oyuncağı. Bu yüzden R'de bir şeyin şöyle görünmesini beklerdim:

mypoint[within(mypoint, mypoly),]

ama hiçbir yerde hiçbir ipucu bulamıyorum. PostGIS / GEOS / JTS / Shapely'de kullanılan ortak mekansal yüklem terminolojisini kullanan bir şey arıyorum (içinde, kesişen, kesişen, örtüşmeler, dokunuşlar, vb; DWithin bonus olurdu). Bu işlevsellik veya kütüphane R için var mı? Değilse, benzer bir şey var mı?

Not: R'de spsınıfı nesnelerim ( SpatialPointsDataFramevb.) İçin kullanıyorum.

Yanıtlar:


11

Özel sorunuz için, analizi gerçekleştirmek için point.in.polygon( dokümanlar ) veya overlay( skeç ) kullanabilmeniz gerekir.

Bir uzamsal yüklem dilinin uygulanması önemsiz değildir ve bahsettiğiniz tüm örnekler bir noktada JTS portlarına veya paketleyicilerine kaynar. GEOS'a doğrudan R üzerinden erişim sağlayan yeni bir Google SOC girişi olan rgeos'un alfa öncesi bir sürümü var.

Genel olarak, R geliştiricileri, R'nin içinde tam bir CBS uygulamasını sürdürmek isteyip istemediklerine veya PostGIS, GRASS ( spgrass), SAGA ( rsaga) ve benzerleriyle etkileşime izin veren paketleri daha kolay hale getirmeye bağlı olup olmadıklarını düşünüyorlar. mekansal anlayışlı.


point.in.polygonbiraz çok kaba olmasına rağmen temel çokgenler için iyi bir başlangıçtır (örneğin): Bahsettiğinizi point.in.polygon(pnt@coords[,1], pnt@coords[,2], lake@polygons[[1]]@Polygons[[1]]@coords[,1], lake@polygons[[1]]@Polygons[[1]]@coords[,2]) gerçekten dört gözle bekliyorum rgeosve tüm ikili tahminlere ve daha fazlasına sahip.
Mike T

GRASS ile spgrass6 örnekleri için, bkz. Grass.osgeo.org/wiki/R_statistics
markusN

1
rgeosşimdi CRAN üzerinde ve kurulumu / kullanımı / etc çok basit.
Mike T
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.