Đệm đa giác cho đến khi nó chạm hàng xóm bằng PyQGIS?


8

Tôi có một shapefile được tạo thành từ một số đa giác. Đa giác lân cận thường chia sẻ một thuộc tính.

Những gì tôi cần làm là đệm các đa giác này dựa trên thuộc tính chung. Tuy nhiên, tôi muốn mở rộng bộ đệm cho đến khi chúng gặp nhau, tại thời điểm chúng có thể dừng lại.

Tôi vội vàng kết hợp lại với nhau:

kémDrawExample

Tất cả tôi có mã khôn ngoan là như sau:

from qgis.core import *
from qgis.analysis import *

layer=qgis.utils.iface.activeLayer() 

QgsGeometryAnalyzer().dissolve(layer, "D:/test_dissolved.shp", onlySelectedFeatures=False, uniqueIdField=3, p=None)

Thực sự tôi không rành về tài liệu API của QGIS và mặc dù đã nỗ lực hết sức nhưng tôi không thể tìm ra một phương pháp phù hợp cho việc này. QgsGeometryAnalyzer().dissolvecho phép tôi hòa tan bộ đệm nhưng đó không phải là những gì tôi đang theo đuổi.

Có lẽ tôi nên nhìn theo hướng khác ở đây?

Câu trả lời:


5

Một cái gì đó bạn có thể thử là một quá trình thiessen nơi bạn voronoi các đa giác sau đó hòa tan bởi các thuộc tính tương tự. Tôi không biết điều này sẽ là gì trong python nhưng có lẽ các bước này hữu ích cho bạn.


Tôi sẽ tìm hiểu về tuyến đường Voronoi bằng pyQGIS và xem nó sẽ đưa tôi đến đâu. Tôi thích ý tưởng sử dụng một giải pháp nguồn mở.
Ingwe

Bạn có ý nghĩa gì bởi nguồn mở? QGIS và tất cả các công cụ của nó đều có giấy phép nguồn mở miễn phí.
Hiệp sĩ

2

Bạn có thể muốn khám phá các chức năng phân tích raster. Xem phần Tạo đường trung tâm cho mọi đa giác trong cơ sở dữ liệu hẻm núi dưới biển bằng ArcGIS cho Desktop Basic? Tạo đa giác Thiessen (Voronoi) bằng cách sử dụng các dòng (chứ không phải điểm) làm các tính năng đầu vào? để có thêm cảm hứng.

Điều này đòi hỏi bạn phải sử dụng độ phân giải raster phù hợp tất nhiên.


Tôi thích ý tưởng chuyển đổi thành raster này và nó đã xảy ra với tôi nhưng liệu một bộ dữ liệu lớn sẽ không dẫn đến thời gian xử lý rất chậm?
Ingwe

Có lẽ không chậm hơn làm cùng một vòng lặp với vectơ.
bugmenot123

1

Tôi đã có một nhiệm vụ hơi liên quan vào ngày khác. Trong theorie, các đa giác voronoi với các trọng tâm xây dựng (có trọng số) sẽ chỉ là giải pháp cho trường hợp của bạn nhưng nó không hiệu quả với tôi; PostgreSQL không phải là những gì bạn yêu cầu, nhưng, như một cách giải quyết, nếu đó là 'đường trung tâm' giữa mỗi tòa nhà bạn đang thực hiện cho bước đầu tiên, sử dụng PostGIS ST_ApproximateMedialAxis có thể đáng để thử. Bạn sẽ phải tạo một đa giác cơ sở cho toàn bộ khu vực nghiên cứu và cắt bỏ đa giác tòa nhà trước khi áp dụng chức năng trên đa giác cơ sở để có kết quả liên quan. Có thể làm việc, có thể không ...

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.