मैं एकल पॉलीगनों की एक श्रृंखला का उपयोग करके मिट्टी के बहुभुजों के आर में एक सच्चा जीआईएस क्लिप करना चाहता हूं, लेकिन मैं इसे ठीक से करने के लिए एक आर फ़ंक्शन नहीं पा सकता हूं। यह 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 था। clipESRI ArcMap में फ़ंक्शन इस डेटा के लिए ठीक काम करता है।
किसी को भी एक आर फ़ंक्शन के बारे में पता है कि स्थानिक बहुभुज का उपयोग करके स्थानिक बहुभुजों पर एक क्लिप ठीक से करना है?





