Tạo khoảng cách đều đặn, được xác định # điểm trong đa giác trong QGIS


12

Tôi đã sử dụng công cụ nghiên cứu "Điểm thường xuyên" để tạo ra một số điểm nhất định trong đa giác, nhưng nó tạo thành một lưới các điểm hình chữ nhật thay vì chỉ trong hình dạng của đa giác. Vì tôi cần một số điểm nhất định trong đa giác, có cách nào để làm như vậy mà không cần dùng thử và lỗi không?

Ví dụ, hiện tại chỉ có 8 trong số 25 điểm tôi muốn nằm trong đa giác, nhưng tôi muốn 25 điểm, vì vậy tôi có thể tăng lên 50 điểm và xem có bao nhiêu điểm xuất hiện trong đa giác

nhập mô tả hình ảnh ở đây


Tôi cũng muốn tạo khoảng cách đều đặn, được xác định # điểm trong đa giác trong QGIS, có tồn tại bất kỳ plugin nào cho việc này không? Tôi có thể làm điều đó với tiện ích mở rộng của Arcgis có tên là ET GEOWIZARD (Điểm thống nhất trong đa giác), nhưng tôi cần phải làm trong QGIS !! Bạn có thể giúp tôi được không?
Ana María

Câu trả lời:


3

Những gì QGIS đang đề cập đến về mặt ranh giới lớp thực sự là đường bao hoặc hộp giới hạn của hình học.

Tôi đã ghi lại một giải pháp có lẽ là gần nhất mà bạn sẽ nhận được để tự động hóa giải pháp này (không phải là yêu cầu lỗi / tính năng).

Quá trình hoạt động dựa trên tỷ lệ giữa diện tích của hai đối tượng: hình học đặc trưng và hộp giới hạn của nó).

Kiểm tra các bước sau đây:

  1. Chọn lớp bạn muốn làm việc.

  2. Chọn tính năng bạn muốn làm việc trên. Hãy chắc chắn rằng không có gì khác được chọn.

  3. Chạy đoạn mã sau trong Bảng điều khiển Python.

    layer = qgis.utils.iface.activeLayer()
    features = layer.selectedFeatures()
    feature = features[0]
    geom = feature.geometry()
    env_rect = geom.boundingBox()
    env_geom = QgsGeometry.fromRect(env_rect)
    env_geom.area() / geom.area()

    Hãy chắc chắn đẩy enter vì dòng cuối cùng sẽ không tự động quay trở lại.

  4. Chạy lại Regular Pointscông cụ, nhưng nhập số điểm bạn muốn trong hộp nhân với sản lượng được cung cấp bởi tập lệnh của bạn.

Trong mẫu của tôi dưới đây, kết quả tôi nhận được từ đầu ra là giá trị ~ 2. Tôi đã yêu cầu 20 điểm được xuất ra theo quy trình mà tôi thực sự chỉ muốn 10. Tôi được trả lại 8 điểm, khá gần. Tùy thuộc vào hình dạng thực tế bạn đang sử dụng, kết quả sẽ khác nhau.

Nếu bạn rất có khuynh hướng, bạn có thể tự động hóa (đệ quy) quy trình Điểm thường xuyên sửa đổi các biến cho đến khi bạn đến số bạn muốn.

Mẫu vật


+1 Đề xuất của bạn gần, nhưng không thể hội tụ. Những gì bạn muốn làm là (a) ước tính một khoảng cách sẽ làm cho số điểm mong muốn nằm trong đa giác và (b) lặp lại với một độ lệch ngẫu nhiên (hiển thị trong ảnh chụp màn hình).
whuber

Nếu tôi thực hiện bù ngẫu nhiên, thì nó không còn là lưới nữa, phải không? Một lưới trong đa giác với một số điểm nhất định là những gì tôi muốn, để lấy mẫu trên toàn khu vực. Hoặc có thể đó không phải là điều tôi muốn, bởi vì chọn một điểm bắt đầu và đi từ đó không đủ ngẫu nhiên?
coelacanth

@coelacanth Có lẽ bạn không tiết lộ đủ thông tin về vấn đề của mình? Điều gì sẽ là bước tiếp theo trong phân tích của bạn? Có thể có những cách khác để đạt được mục tiêu của bạn, ngoài việc sử dụng lưới điểm.
nagytech

Hmmm, tôi chưa quen với toàn bộ lĩnh vực GPS / GIS và thiết kế khảo sát, vì vậy xin vui lòng cho tôi biết nếu có cách nào tốt hơn để làm mọi việc. Tôi muốn thiết lập một số khu vực lấy mẫu nhất định trong một đa giác (tức là một phần của rừng) để lấy mẫu thực vật. Tôi muốn các khu vực được trải rộng khắp trang web để tôi có được đại diện cho toàn bộ trang web. Những gì tôi muốn sử dụng tính năng này là để đặt vị trí của các khu vực lấy mẫu trong ranh giới. Sau đó, tôi sẽ điều hướng đến điểm đó bằng cách sử dụng đơn vị GPS và thu thập dữ liệu của mình.
coelacanth

0

Bạn có thể dễ dàng thực hiện điều đó chỉ bằng cách cắt: tạo lưới điểm thông thường giống như bạn đã làm và sau đó sử dụng Vector> Công cụ xử lý địa lý> Clip, nhập lưới điểm được tạo và sử dụng tính năng làm mặt nạ clip.


-1

Một giải pháp đơn giản được đề xuất bởi ảnh chụp màn hình. Bạn có thể trích xuất các đa giác thành các lớp mới Vector -> Data Managment Tools -> Split vector layer, nhập chúng và sau đó chọn lớp có tính năng (ID) bạn muốn làm lớp đầu vào cho bộ lấy mẫu "Điểm thông thường".

Nếu bạn chỉ cần làm điều này cho một số đa giác, việc tìm kiếm chúng và xuất chúng riêng rẽ có thể hiệu quả hơn. Khi bạn đã chọn, nhấp chuột phải vào tên lớp và chọn Save Selection As ..., chọn shapefile, điền vào phần còn lại và sau đó lặp lại như trước.

EDIT: Vì bạn đã có một tính năng duy nhất, tôi không thể nghĩ bất cứ điều gì đơn giản hơn ngoài việc sử dụng lưới dày đặc hơn, giao cắt nó với đa giác một lần nữa và cuối cùng loại bỏ tất cả các điểm extraneus (dễ dàng nhất thông qua bảng thuộc tính, vì bạn có thể dễ dàng định tâm và tổng số).


Chỉ có một đa giác trong shapefile.
coelacanth

Ôi, thật là khó chịu rồi (như thực tế nó đã tạo ra 20 thay vì 25 điểm). Tôi đề nghị bạn mở một yêu cầu tính năng trên hub.qgis.org/projects/quantum-gis/issues - Tôi cho rằng nó nên có một hộp kiểm bổ sung để sử dụng ranh giới lớp thực.
lynxlynxlynx

-2

Áp dụng truy vấn định nghĩa cho đa giác của bạn (trong 1.8 nhấp chuột phải vào lớp và chọn Truy vấn). Sau đó chạy công cụ. Xóa truy vấn.


Làm thế nào điều này giúp. Nó giống như làm một lựa chọn.
Nathan W

Khá nhiều. Nhưng điều này hoạt động trong QGIS ngay bây giờ trong khi lựa chọn không, ít nhất là trên máy của tôi.
Giă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.