मैं एकल पॉलीगनों की एक श्रृंखला का उपयोग करके मिट्टी के बहुभुजों के आर में एक सच्चा जीआईएस क्लिप करना चाहता हूं, लेकिन मैं इसे ठीक से करने के लिए एक आर फ़ंक्शन नहीं पा सकता हूं। यह clip
ईएसआरआई के आर्कप्स में फ़ंक्शन की तरह काम करना चाहिए । मैंने पैकेज 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") में त्रुटि: टोपोलॉजीException: कोई आउटगोइंग dEEdge at -721459.7761285271 2009506.598087708989
मैंने इस कोड को ओवरलैप के लिए जाँचने का भी प्रयास किया:
gIntersects(Clipper_Tile_poly, Soils_poly)
और परिणाम TRUE था। clip
ESRI ArcMap में फ़ंक्शन इस डेटा के लिए ठीक काम करता है।
किसी को भी एक आर फ़ंक्शन के बारे में पता है कि स्थानिक बहुभुज का उपयोग करके स्थानिक बहुभुजों पर एक क्लिप ठीक से करना है?