Tôi muốn thực hiện một Clip GIS thực sự trong R của đa giác đất bằng cách sử dụng một loạt các đa giác ranh giới đơn, nhưng tôi không thể tìm thấy hàm R để thực hiện đúng. Nó sẽ hoạt động giống như clip
chức năng trong ArcMap của ESRI. Tôi đã thử over
phương pháp trong sp
gói nhưng có vẻ như nó không hoạt động đối với polys trên polys.
Một đề xuất là sử dụng gói gIntersection
trong rgeos
như một clip sử dụng mã sau:
#------------------------------------
library(rgeos)
library(maptools)
#Read layers as SpatialPolygonsDataFrame (both the same Albers projection)
Soils_poly = readShapePoly("Soils_polygons") #Note - Has 400 polygons
clipper_poly = readShapePoly("clipper_polygon") #Note - Has 1 polygon
#Try gintersection as clip
Clipped_polys = gIntersection(Clipper_Tile_poly, Soils_poly)
#-----------------------------------
Điều này mất 5 phút để chạy (cách quá chậm) và lỗi với điều này:
Lỗi trong RGEOSBinTopoFunc (spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection"): TopologyException: không tìm thấy dirEdge tại -721459.77681285271 2009506.5980
Tôi cũng đã thử mã này để kiểm tra sự chồng chéo:
gIntersects(Clipper_Tile_poly, Soils_poly)
và kết quả là ĐÚNG. clip
Hàm trong ESRI ArcMap hoạt động tốt cho dữ liệu này.
Bất cứ ai cũng biết về một chức năng R để thực hiện một clip trên đa giác không gian bằng cách sử dụng đa giác không gian?