Створення регулярно розташованих, визначених # балів у полігоні в QGIS


12

Я використовував інструмент дослідження "Регулярні точки", щоб отримати певну кількість точок у полігоні, але він утворює прямокутну сітку точок, а не лише у формі багатокутника. Оскільки мені потрібна певна кількість точок у полігоні, чи можна це зробити без спроб та помилок?

Наприклад, лише 8 з 25 балів, які я хочу, знаходяться в полігоні, але я хочу 25 балів, тому я можу збільшити до 50 балів і побачити, скільки потім з’явиться в полігоні

введіть тут опис зображення


Я також хочу створити регулярно розташований, визначений # балів у полігоні в QGIS, чи існує плагін для цього? Я міг би зробити це з розширенням Arcgis під назвою ET GEOWIZARD (Уніфіковані точки в полігонах), але мені потрібно це зробити в QGIS !! Можеш допомогти мені?
Ана Марія

Відповіді:


3

Що стосується QGIS стосовно межі шару, - це фактично конверт або обмежувальне поле геометрії.

Я задокументував рішення, яке, мабуть, є найближчим до автоматизації цього (за винятком подання запиту про помилку / функцію).

Процес працює на основі співвідношення між площею двох об'єктів: геометрією функції та обмежувальним вікном).

Перевірте наступні кроки нижче:

  1. Виберіть шар, над яким потрібно працювати.

  2. Виберіть функцію, над якою ви хочете працювати. Переконайтесь, що нічого іншого не вибрано.

  3. Виконайте наступний фрагмент в консолі 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()
    

    Не забудьте натиснути Enter, оскільки останній рядок не повернеться автоматично.

  4. Запустіть Regular Pointsінструмент ще раз, але введіть кількість очок, яку ви хочете всередині поля, помноживши на результат, заданий вашим сценарієм.

У моїй вибірці нижче результат, який я отримав від результату, отримав значення ~ 2. Я попросив вивести 20 крапок під час процесу, де я насправді хотів лише 10. Мені дали 8 взамін, що досить близько. Залежно від фактичної форми, яку ви використовуєте, результати будуть різними.

Якщо ви були настільки схильні, ви могли автоматизувати (рекурсивно) процес "Регулярні точки", змінюючи змінні, поки ви не отримали потрібну кількість.

Зразок


+1 Ваша пропозиція близька, але не може зійти. Що ви хочете зробити, це (а) оцінити проміжок, який призведе до того, що потрібна кількість точок потрапить у полігон і (b) повториться з випадковим зміщенням (показано на скріншоті).
whuber

Якщо я роблю випадкове зміщення, то це вже не сітка, правда? Сітка всередині багатокутника з певною кількістю точок - це те, що я хочу пробити по всій площі. А може, це не те, що я хочу, бо вибір однієї вихідної точки і вихід звідти недостатньо випадковий?
коелакант

@coelacanth Можливо, ви не розкриваєте достатньо інформації про свою проблему? Що було б наступним кроком у вашому аналізі? Можуть бути й інші способи досягнення своєї мети, окрім використання точкової сітки.
nagytech

Хммм, я новачок у всій галузі GPS / ГІС та дизайну опитування, тому, будь ласка, повідомте мене, чи є кращий спосіб зробити це. Я хочу створити певну кількість проб для відбору проб у полігоні (тобто ділянку лісу) для відбору проб рослинності. Я хочу, щоб райони були розповсюджені по всьому сайту, щоб я отримав уявлення про весь сайт. Для чого я хочу використовувати цю функцію, це встановити розташування цих областей вибірки в межах кордону. Тоді я б перейшов до цього пункту за допомогою GPS-пристрою та збирав свої дані.
коелакант

0

Ви можете легко зробити це просто відсіканням: генеруйте звичайну сітку точок так само, як ви це робили, а потім використовуйте Вектор> Інструменти геообробки> Кліп, введіть створену сітку точки та використовуйте цю функцію як маску кліпу.


-1

Спрощене рішення пропонує скріншот. Ви можете витягнути багатокутники в нові шари за допомогою Vector -> Data Managment Tools -> Split vector layer, імпортувати їх, а потім вибрати шар з функцією (ID), яку ви хочете в якості вхідного шару для вибірки "Регулярні точки".

Якщо вам потрібно це зробити лише для декількох полігонів, їх пошук та окремий експорт може бути більш ефективним. Вибравши один із них, клацніть правою кнопкою миші назву шару та виберіть Save Selection As ..., виберіть файл форми, заповніть решту та повторіть, як раніше.

EDIT: Оскільки у вас вже є одна функція, я не можу придумати нічого простішого, але використовуючи щільнішу сітку, перетинаючи її з багатокутником і, нарешті, видаляючи всі додаткові точки (найпростіше через таблицю атрибутів, оскільки ви отримуєте одночасно просте центрирування та загальна кількість).


У формі форми вже є один багатокутник.
коелакант

О, як тоді прикро (як те, що він створив 20 замість 25 балів). Я пропоную вам відкрити запит на функцію на hub.qgis.org/projects/quantum-gis/isissue - я думаю, у нього повинен бути додатковий прапорець для використання межі істинного шару.
lynxlynxlynx

-2

Застосуйте запит на визначення до своїх багатокутників (у 1,8 клацайте правою кнопкою миші на шарі та виберіть Запит). Потім запустіть інструмент. Видаліть запит.


Як це допомагає. Це те саме, що робити вибір.
Nathan W

Доволі багато. Але це працює в QGIS зараз, тоді як вибір, принаймні, на моїх машинах.
Джон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.