ผู้ประกอบการเชิงพื้นที่ใน R?


12

ฉันจะเลือกเชิงพื้นที่หรือตัวกรองใน R ได้อย่างไร? ฉันสามารถทำได้ใน PostGIS โดยใช้ (เช่น):

SELECT * FROM mypoint, mypoly
WHERE ST_Within(mypoint.geom, mypoly.geom);

และมันก็คล้าย ๆ กับเค้กในซอฟต์แวร์ GIS อื่น ๆ ส่วนใหญ่ ดังนั้นฉันคาดหวังบางสิ่งใน R ให้มีลักษณะดังนี้:

mypoint[within(mypoint, mypoly),]

แต่ฉันไม่พบโอกาสในการขายใด ๆ ฉันกำลังมองหาบางสิ่งที่ใช้คำศัพท์เชิงปริภูมิทั่วไปที่ใช้ใน PostGIS / GEOS / JTS / Shapely (ภายในมีจุดตัดซ้อนทับซ้อนสัมผัส ฯลฯ ; DWithin จะเป็นโบนัส) ฟังก์ชันหรือไลบรารีนี้มีอยู่สำหรับ R หรือไม่ ถ้าไม่มีสิ่งที่คล้ายกันหรือไม่

หมายเหตุ: ใน R ฉันใช้spคลาสสำหรับวัตถุ ( SpatialPointsDataFrameฯลฯ )

คำตอบ:


11

สำหรับคำถามเฉพาะของคุณคุณควรใช้point.in.polygon( เอกสาร ) หรือoverlay( บทความ ) เพื่อทำการวิเคราะห์

ภาษาเพรดิเคตเชิงพื้นที่นั้นไม่ใช่เรื่องง่ายที่จะนำมาใช้และตัวอย่างทั้งหมดที่คุณกล่าวถึงไปถึงพอร์ตหรือ wrapper ของ JTS ในบางจุด มีการเปิดตัวrgeos ล่วงหน้าซึ่งเป็นรายการ Google SOC ล่าสุดซึ่งให้การเข้าถึง GEOS โดยตรงจาก R

โดยทั่วไปดูเหมือนว่านักพัฒนา R กำลังต่อสู้กับว่าพวกเขาต้องการรักษาการใช้งาน GIS อย่างเต็มรูปแบบภายใน R เองหรืออาศัยแพ็คเกจอำนวยความสะดวกที่อนุญาตให้มีการโต้ตอบกับ PostGIS, GRASS ( spgrass), SAGA ( rsaga) และอื่น ๆ ความเข้าใจเชิงพื้นที่


point.in.polygonเป็นการเริ่มต้นที่ดีสำหรับรูปหลายเหลี่ยมพื้นฐานแม้ว่าจะมีความหยาบเล็กน้อย (เช่น): point.in.polygon(pnt@coords[,1], pnt@coords[,2], lake@polygons[[1]]@Polygons[[1]]@coords[,1], lake@polygons[[1]]@Polygons[[1]]@coords[,2]) ฉันตั้งตารอคอยrgeosสิ่งที่คุณพูดถึงและมีเพรดิเคตไบนารีและอื่น ๆ อีกมาก
Mike T

สำหรับตัวอย่าง spgrass6 กับ GRASS โปรดดูgrass.osgeo.org/wiki/R_statistics
markusN

1
rgeosขณะนี้อยู่ในCRANและง่ายมากในการติดตั้ง / ใช้ / ฯลฯ
Mike T
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.