Chỉ đọc một phần của shapefile ESRI vào R


10

Tôi có một shapefile ESRI rất lớn (> 8000 đa giác, tệp .shp> 32MB), mà tôi muốn đọc vào R trên Windows 7.

Tôi quen thuộc với rgdal và readOGR (). Tuy nhiên, với kích thước của shapefile này, đọc toàn bộ shapefile vào bộ nhớ là một quá trình rất chậm. Hơn nữa, tôi chỉ quan tâm đến một vài đa giác cụm (<100) trong số 8.000 được chứa trong shapefile. Quá trình mà tôi cần phải làm điều này rất lặp đi lặp lại, tức là shapefile cần được tải nhiều lần, vì vậy hiện tại nó rất chậm.

Do đó, tôi tự hỏi liệu có thể chỉ đọc trong một phần của shapefile để đẩy nhanh quá trình. Có vẻ không thực tế khi tải một lượng dữ liệu khổng lồ như vậy và sau đó loại bỏ hầu hết dữ liệu.


Bạn đang sử dụng nền tảng nào? Nếu bạn có quyền truy cập vào ArcGIS, tôi cho rằng bạn có thể tạo kịch bản gì đó trong ArcPy để thực hiện lựa chọn tập hợp con và sau đó thực hiện quy trình R từ tập lệnh python. Điều này là hoàn toàn có thể ... Chạy một tìm kiếm Google để thực thi mã R từ python.
GeoJohn

3
Có thể thử xuất vào shapefile mới một phần dữ liệu quan trọng đối với bạn và sau đó làm việc với nó trong R.
ami

nó có thể sẽ làm việc với sf. Nhưng lưu nó vào định dạng không gian làm việc R với saveRDS. Có nhiều cách để lưu trữ chung trong SQLite hoặc tương tự, nhưng tôi nghi ngờ điều đó là bắt buộc
mdsumner

Câu trả lời:


8

Điều duy nhất nảy ra trong đầu là tận dụng thư viện "sfr" mới và lớp tính năng đơn giản được liên kết của nó để đặt lại. Các thư viện sfr hiện đang có sẵn trên GitHub và đây là một hướng dẫn để giúp bạn bắt đầu.

Tôi không tin rằng bạn có thể truyền dữ liệu dựa trên một truy vấn tập hợp con tuy nhiên, điều này sẽ ở tốc độ thuê lên lần đọc đáng kể và được cho là những tương lai của lớp học không gian R .

Một tùy chọn khác là lưu trữ dữ liệu không gian của bạn trong cơ sở dữ liệu (ví dụ: PostGIS) và truy vấn từ cơ sở dữ liệu. Đây có thể là một cách cực kỳ hiệu quả để đối phó với dữ liệu lớn.


2
Các sfgói có sẵn trên cran kể từ phiên bản 0.2 (2016/10/26): cran.r-project.org/web/packages/sf/index.html
RCS

1

Tôi nghĩ rằng việc sử dụng một hệ thống GIS như QGIS và chọn ra các tính năng bạn cần sẽ là một cách tiếp cận tốt.
Nếu bạn cần hợp nhất lại kết quả, bạn có thể tạo một tệp với 7900 đa giác mà bạn không muốn xử lý, sau đó xử lý 100 đa giác và nối lại sau khi xử lý.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.