Я хотів би зробити справжній GIS-кліп у R полігонів ґрунтів, використовуючи ряд одномежних багатокутників, але я не можу знайти функцію R, щоб правильно це зробити. Він повинен працювати так само, як clip
функція в ArcMap ESRI. Я спробував over
метод у sp
пакеті, але він, схоже, не працює для полісів над полісами.
Одне з пропозицій було використовувати gIntersection
в rgeos
пакеті як кліп , використовуючи наступний код:
#------------------------------------
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)
#-----------------------------------
На це потрібно 5 хвилин (занадто повільно) та помилки з цим:
Помилка RGEOSBinTopoFunc (spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection"): TopologyException: відсутні вихідні dirEdge знайдені в -721459.77681285271 2009506.5980877089
Я також спробував цей код, щоб перевірити наявність дублювання:
gIntersects(Clipper_Tile_poly, Soils_poly)
і результат був ІСТИНИЙ. clip
Функція в ESRI ArcMap прекрасно працює для цих даних.
Хтось знає про функцію R, щоб правильно робити кліп на просторових багатокутниках, використовуючи просторові багатокутники?