อ่านเพียงบางส่วนของไฟล์รูปร่าง ESRI ลงใน R


10

ฉันมีไฟล์รูปร่าง ESRI ที่มีขนาดใหญ่มาก (> 8000 polygons, .shp ไฟล์> 32MB) ซึ่งฉันต้องการอ่านเป็น R บน Windows 7

ฉันคุ้นเคยกับ rgdal และ readOGR () อย่างไรก็ตามด้วยขนาดของ shapefile การอ่าน shapefile ทั้งหมดในหน่วยความจำจึงเป็นกระบวนการที่ช้ามาก นอกจากนี้ฉันสนใจเพียงไม่กี่โพลิกอนคลัสเตอร์ (<100) จาก 8,000 ที่มีอยู่ในรูปร่างไฟล์ กระบวนการที่ฉันต้องทำคือทำซ้ำอย่างมากนั่นคือต้องโหลดรูปร่างไฟล์หลายครั้งดังนั้นจึงช้ามาก

ดังนั้นฉันสงสัยว่ามันเป็นไปได้ที่จะอ่านเฉพาะในส่วนของ shapefile เพื่อเร่งกระบวนการ ดูเหมือนว่าไม่น่าจะโหลดข้อมูลจำนวนมหาศาลเช่นนั้นทิ้งส่วนใหญ่


คุณใช้แพลตฟอร์มอะไร หากคุณมีสิทธิ์เข้าถึง ArcGIS ฉันคิดว่าคุณสามารถเขียนสคริปต์บางอย่างใน ArcPy ที่ทำให้การเลือกชุดย่อยแล้วดำเนินการกระบวนการ R จากสคริปต์หลาม เป็นไปได้อย่างแน่นอน ... เรียกใช้การค้นหาโดย Google เพื่อเรียกใช้รหัส R จากหลาม
GeoJohn

3
อาจลองส่งออกไปยังรูปร่างไฟล์ใหม่ที่เป็นส่วนหนึ่งของข้อมูลของคุณซึ่งมีความสำคัญต่อคุณและทำงานกับมันใน R.
ami

มันอาจจะทำงานกับเอสเอฟ แต่บันทึกเป็นรูปแบบเวิร์กสเปซ R ด้วย saveRDS มีวิธีการในการจัดเก็บโดยทั่วไปใน SQLite หรือคล้ายกัน แต่ฉันสงสัยว่าจะต้อง
mdsumner

คำตอบ:


8

สิ่งเดียวที่อยู่ในใจคือการใช้ประโยชน์จากไลบรารี่ "sfr" ใหม่และคลาสฟีเจอร์พื้นฐานที่เกี่ยวข้องสำหรับการย่อย ปัจจุบันห้องสมุด sfrนั้นมีอยู่ใน GitHub และนี่คือบทช่วยสอนเพื่อให้คุณเริ่มต้นได้

ผมไม่เชื่อว่าคุณสามารถสตรีมข้อมูลที่อยู่บนพื้นฐานของแบบสอบถามเซต แต่นี้จะอยู่ที่ความเร็วเช่าขึ้นครั้งอ่านมากและเป็นที่คาดคะเนอนาคตของ R เรียนเชิงพื้นที่

ตัวเลือกอื่นคือการจัดเก็บข้อมูลเชิงพื้นที่ของคุณในฐานข้อมูล (เช่น PostGIS) และแบบสอบถามจากฐานข้อมูล นี่เป็นวิธีที่มีประสิทธิภาพอย่างมากในการจัดการกับข้อมูลขนาดใหญ่


2
sfแพคเกจที่มีอยู่ใน CRAN ตั้งแต่รุ่น 0.2 (2016/10/26): cran.r-project.org/web/packages/sf/index.html
RCS

1

ฉันคิดว่าการใช้ GIS เช่น QGIS และการเลือกคุณสมบัติที่คุณต้องการจะเป็นวิธีที่ดี
หากคุณต้องการผสานผลลัพธ์ที่คุณสามารถสร้างไฟล์หนึ่งไฟล์ด้วย 7900 รูปหลายเหลี่ยมที่คุณไม่ต้องการประมวลผลจากนั้นประมวลผลรูปหลายเหลี่ยม 100 รูปและเข้าร่วมอีกครั้งหลังจากประมวลผล


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