Toán tử không gian trong R?


12

Làm cách nào tôi có thể thực hiện các lựa chọn không gian hoặc bộ lọc trong R? Tôi có thể làm điều này trong PostGIS bằng cách sử dụng (ví dụ):

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

và nó tương tự như một miếng bánh trong hầu hết các phần mềm GIS khác. Vì vậy, tôi mong đợi một cái gì đó trong R trông giống như:

mypoint[within(mypoint, mypoly),]

nhưng tôi không thể tìm thấy bất kỳ khách hàng tiềm năng ở bất cứ đâu. Tôi đang tìm kiếm thứ gì đó sử dụng thuật ngữ vị ngữ không gian chung được sử dụng trong PostGIS / GEOS / JTS / Shapely (bên trong, chứa, giao nhau, chồng chéo, chạm, v.v.; DWithin sẽ là phần thưởng). Có chức năng hoặc thư viện này tồn tại cho R? Nếu không, có cái gì đó tương tự?

Lưu ý: Trong R, tôi sử dụng splớp cho các đối tượng của mình ( SpatialPointsDataFrame, v.v.).

Câu trả lời:


11

Đối với câu hỏi cụ thể của bạn, bạn sẽ có thể sử dụng point.in.polygon( tài liệu ) hoặc overlay( họa tiết ) để thực hiện phân tích.

Một ngôn ngữ vị ngữ không gian không tầm thường để thực hiện và tất cả các ví dụ bạn đã đề cập sẽ chuyển sang các cổng hoặc trình bao bọc của JTS tại một số điểm. Có một bản phát hành tiền alpha của rgeos , một mục Google SOC gần đây cung cấp quyền truy cập trực tiếp vào GEOS từ R.

Nhìn chung, có vẻ như các nhà phát triển R đang vật lộn với việc họ muốn duy trì triển khai GIS đầy đủ trong chính R hay thay vào đó dựa vào các gói hỗ trợ cho phép tương tác với PostGIS, GRASS ( spgrass), SAGA ( rsaga) và muốn cung cấp sâu hơn hiểu biết không gian.


point.in.polygonlà một khởi đầu tốt cho các đa giác cơ bản, mặc dù hơi thô (ví dụ): point.in.polygon(pnt@coords[,1], pnt@coords[,2], lake@polygons[[1]]@Polygons[[1]]@coords[,1], lake@polygons[[1]]@Polygons[[1]]@coords[,2]) Tôi thực sự mong đợi rgeosrằng bạn đã đề cập và có tất cả các vị từ nhị phân và hơn thế nữa.
Mike T

Đối với các ví dụ spgrass6 với GRASS, xem grass.osgeo.org/wiki/R_statistic
markusN

1
rgeoshiện đã có trên CRAN và rất đơn giản để cài đặt / sử dụng / vv.
Mike T
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.