Bir dizi tek sınır çokgen kullanarak toprak poligonlarının R'sinde gerçek bir CBS Klipsi yapmak istiyorum, ancak düzgün bir şekilde yapmak için bir R işlevi bulamıyorum. clip
ESRI'nin ArcMap'indeki gibi çalışır . Ben over
yöntemi sp
paketinde denedim ama polys üzerinde polys için çalışmıyor gibi görünüyor.
Bir öneri, aşağıdaki paketi kullanarak gIntersection
in rgeos
paketini klip olarak kullanmaktı:
#------------------------------------
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)
#-----------------------------------
Bu işlemin çalışması 5 dakika (çok yavaş) ve bununla ilgili hatalar:
RGEOSBinTopoFunc'da hata (spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection"): TopologyException: -721459.77681285271 2009506.5980877089 adresinde giden dirEdge bulunamadı
Ayrıca örtüşmeyi kontrol etmek için bu kodu denedim:
gIntersects(Clipper_Tile_poly, Soils_poly)
ve sonuç DOĞRU idi. clip
ESRI ArcMap içindeki işlev bu veriler için iyi çalışır.
Herkes uzamsal çokgenler kullanarak uzamsal çokgenler üzerinde düzgün bir klip yapmak için bir R işlevi biliyor mu?