Làm thế nào để khái quát SpatialPolygons và bảo tồn cấu trúc liên kết trong R?


18

Tôi muốn khái quát một chữ SpatialPolygonsDataFrame R để làm cho âm mưu hiệu quả hơn. Các đa giác tôi có kết quả là các lô pdf khổng lồ tải chậm và khó tích hợp vào tài liệu.

Tôi đã cố gắng sử dụng gSimplifychức năng từ rgeosgói, nhưng thật không may, nó không bảo tồn cấu trúc liên kết của đa giác.

Có một sự thay thế mà tôi có thể sử dụng?


không thực sự là một giải pháp, nhưng bạn có thể âm mưu raster (jpg / png) thay thế? Câu hỏi stackoverflow này thảo luận về việc giảm kích thước pdf có thể được sử dụng: stackoverflow.com/questions/8521299/
mẹo

vẽ sơ đồ dưới dạng hình ảnh raster là một tùy chọn, nhưng bất cứ khi nào có thể tôi đều muốn sử dụng đồ họa vector. Chất lượng hình ảnh tốt hơn khi sử dụng đồ họa vector, đặc biệt là khi nhìn vào phiên bản kỹ thuật số của tài liệu.
yellowcap

gSimplify()có một tham số tùy chọn topologyPreservemặc định FALSE. Bạn đã thử cài đặt nó thành TRUE?
krlmlr

Câu trả lời:


7

Có một cuộc thảo luận về điều này trên r-sig-Geo . Để có câu trả lời dứt khoát, bạn nên hỏi ở đó, vì có những người biết những hiểu biết về không gian R.

Tuy nhiên, bạn cũng có thể thực hiện việc này trong các ứng dụng máy tính để bàn (xuất hình bằng cách sử dụng lệnh writeOGR từ rgdal hoặc writePolyShape () từ maptools) như QuantumGIS, GRASS hoặc SAGA.

Đối với QuantumGIS, hãy sử dụng Công cụ Vector / Hình học / Đơn giản hóa hình học (Tôi đã thử nghiệm và không bảo tồn cấu trúc liên kết, nhưng áp dụng cho shapefile admin1 của Romania, trông rất ổn với 2000 nút).

Đối với GRASS, hãy sử dụng v.generalize (đọc hướng dẫn để biết thông tin về các thuật toán, có một số).

Đối với SAGA, trước tiên bạn phải chuyển đổi đa giác thành dòng (Hình dạng - Dòng / Chuyển đổi đa giác thành dòng), sau đó đơn giản hóa các dòng (Hình dạng dòng / Đơn giản hóa dòng) và cuối cùng chuyển đổi dòng thành đa giác (Hình dạng - Đa giác / Chuyển đổi dòng thành Đa giác). Tôi đã thử nghiệm điều này và kết quả có cấu trúc liên kết được bảo tồn.

Chúc mừng và chúc may mắn


Trong khi đó, tôi cũng đã tìm thấy một dịch vụ trực tuyến thực hiện đơn giản hóa trong khi bảo tồn các cấu trúc liên kết: mapshaper.org . Tôi đã sử dụng nó như một giải pháp thay thế, vì dường như không thể có trong R trực tiếp (QGis không thực sự bảo tồn cấu trúc liên kết và tôi không biết các gói phần mềm khác)
yellowcap

1
Tôi đã kiểm tra quan sát của bạn với Saga 2.0.8 và kết quả không bảo tồn được cấu trúc liên kết!
Fabian Zeindl

2

Hiện tại đã có rmapshapergói tuyệt vời của Andy Teucher bao gồm chức năng đơn giản hóa "thực hiện đơn giản hóa đa giác nhận thức theo cấu trúc liên kết".

Từ repo github của họ, một ví dụ sử dụng:

states_simp <- ms_simplify(states_sp)

nơi states_splà một spatialPolygons*đối tượng.

Xem gói README để biết thêm thông tin: https://github.com/ateucher/rmapshaper


0

Điều đó sẽ giúp:

  • gSimplify(..., topologyPreserve=T)từ GEOSgói

2
Thật không may, tùy chọn bảo tồn cấu trúc liên kết trong gSimplifykhông thực sự bảo tồn cấu trúc liên kết trên một số đa giác. Tôi nghĩ rằng nó liên quan nhiều hơn đến cấu trúc liên kết của đơn hoặc đa. Đối với một shapefile có nhiều đa giác, cấu trúc liên kết không được bảo tồn.
yellowcap
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.