Виконання багатокритерійного аналізу за допомогою QGIS?


11

Я маю зробити багатокритериальний аналіз, щоб відповісти на питання: "який найкращий лот для розробки".

Деякі критерії:

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

Я думав, я спробую спробувати QGIS, і ось, як я це зробив:

  1. додати наступні стовпці до таблиці атрибутів шару моїх лотів:

    • "аналіз_BUS"
    • "аналіз_SHOPS"
    • "аналіз_FLOOD"
    • "аналіз_PROJECT"
    • "..."
    • "аналіз_MEAN"
  2. Перетворити шар моєї партії в точки, використовуючи "багатокутники до центроїдів"

  3. Запустіть інструмент «Матриця відстані»

  4. Відкрийте CSV для запуску операції в excel (ступінь зупинки автобуса 1,0, якщо ближче 200 м, і 0,0, якщо більше 750 м, але я можу знайти функцію MIN () у QGIS)

  5. Приєднайтесь до отриманого CSV ще раз у QGIS

  6. Повторіть те саме для магазинів

  7. Запустіть інструмент «точка в полігоні», щоб вибрати всі точки в природоохоронній зоні

  8. Встановіть 0,0 для всіх вибраних балів

  9. Повторіть інші критерії "в ... області"

  10. Запустіть інструмент "просторове з'єднання", щоб об'єднати інформацію про небезпечну зону повені

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

  12. Після того, як все, що було зроблено, повторно додайте файл форми БУДІВЕЛЬНИХ ЛОТІВ для кожного критерію

  13. Для кожного критерію приєднуйтесь до перетвореного шару (того, що знаходиться у центроїдах) на ідентифікаторі LOT

  14. Встановіть дисплей на градієнт від червоного до зеленого відповідно до відповідного атрибута критеріїв та атрибута середнього класу

Тепер, після 2-х днів роботи, у мене зараз всі мої критерії відображаються зеленим кольором, якщо вдалий вибір для будівництва, і червоним, якщо поганий вибір, і я маю синтез, який об'єднує всі мої критерії в одній прекрасній червоно-зеленій карті. (а також у мене велика безлад у папці "shapefiles")

Тепер проблема.

А якщо :

  • Я хотів би спробувати той же аналіз з іншим сценарієм автобусної мережі?
  • я отримую оновлений файл лотів (з, скажімо, 13 модифікацій у всіх 13000 лотів)
  • Я хотів би перевірити різні ваги за моїми критеріями?

Чи потрібно починати все заново?

Чи правильно я використовую неправильний інструмент, чи я неправильно використовую інструмент?

Чи було б простіше з комерційним програмним забезпеченням GIS?


Я бачу, що означають відповідачі / коментатори, і я не думав використовувати растри.

Однак головне питання було більше про можливість спробувати різні сценарії або оновити базові дані, не потребуючи перезавантаження всього процесу з нуля.

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


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

Я досить багато використовував Grasshopper3D (він не має нічого спільного з програмним забезпеченням ГІС), який є чудовим плагіном для моделера Rhino3D і який використовує ту саму концепцію побудови графіку робочого процесу графіка. (наприклад: http://designreform.net/2009/07/rhino-grasshopper-parametric-truss )

Це здається настільки добре пристосованим до багатьох аналізів даних ГІС, що я хотів би побачити програмне забезпечення ГІС, дійсно побудоване навколо такого інструмента графіка вузлів.

Я з нетерпінням чекаю спробувати Sextante Modeler і повідомляю, як все вийшло. Я хотів би, щоб я дізнався про це сам, гугливши його, але я не знав ключового слова "конструктор моделі".


2
Повторне оновлення: Тут може бути дійсна точка, але ця остання її частина з’являється - вибачте за те, що я сказала так - щоб плутати здібності оператора з можливостями програмного забезпечення. Є багато активних членів цієї спільноти, які можуть надати вам чудові, досвідчені поради щодо автоматизації процедур. Я підозрюю, що більшість із них навіть не перечитали все запитання: це довго і більшість не стосується того, що ви насправді хочете знати. Чому ви не перечитали наш FAQ про те, як задавати хороші запитання та редагувати відповідне питання?
whuber

Провели аналіз кількох критеріїв кілька років тому. Написав на ньому допис у блозі. Можливо, вам буде корисно. thadwester.com/1/post/2011/02/power-of-gis.html
Тад

Відповіді:


11

Я б запропонував растровий підхід з одним растровим шаром для кожного критерію:

  • якість автобуса (відстань від піксельного центру до найближчої автобусної зупинки)
  • якість покупок (відстань до найближчого магазину)
  • небезпека від повені (растровий багатокутний шар, з атрибутом ступеня небезпеки від 1 до 4)
  • зона захисту (растровий багатокутний шар)

Потім ви можете комбінувати і зважувати шари відповідно до ваших потреб та відбирати їх у будь-якому місці партії, яке вас цікавить.

Однак головне питання було більше про можливість спробувати різні сценарії або оновити базові дані, не потребуючи перезавантаження всього процесу з нуля.

Якщо у вас є новий сценарій, скажімо, "інша шинна мережа", вам просто потрібно перерахувати один растр (растр шини) і дозволити комбінації запускатися знову. Це лише дві взаємодії.

Крім того, як тільки конструктор моделі Sextante стабільний, слід створити модель для автоматизації всіх кроків. Ви навіть можете це протестувати зараз.


Тоді такий підхід дозволяє додавати ваги, як потрібно, просто помноживши растри на вагу (0-1)
Ян Тертон

Погодьтеся з використанням растрового підходу. Крім того, коли ви з'ясуєте свій робочий процес, ви можете автоматизувати весь ваш процес за допомогою команд GRASS, які можна запустити з різними входами. grass.osgeo.org/wiki/…
spatialthoughts

4

Як сказав Іант , растр з алгеброю карт може бути найпростішим способом.

З мого досвіду, після перетворення всіх вхідних даних у растрові, слід здійснити перекласифікацію з двома різними типами: Фактори та умови

Фактори будуть коливатися між значеннями min та max, від менш бажаних до більш бажаних (ви можете використовувати однаковий діапазон значень для всіх), наприклад:

F1 - відстань автобуса: 1 - дуже далеко; 2 - далеко; 3 - закрити; 4 - дуже близько

F2 - небезпека затоплення: 1 - дуже висока; 2 - високий; 3 - низький; 4 - дуже низький

Умови будуть бінарними растровими лише з нулями та з одиницями (не підходить, підходить), наприклад:

C1 - Охоронна територія: 0 - так; 1 - ні

Для кожного з факторів слід надати вагу, відповідно до важливості, яку ви вважаєте, що цей фактор має у своєму рішенні, скажімо: відстань автобуса W1 = 0,4 та небезпека повені W2 = 0,6

Зрештою, використовуючи алгебру карти, все, що вам потрібно зробити:

(C1 x ... x Cm) x (W1 x F1 + W2 x F2 + ... + Wn x Fn)

Після першого результату вам, мабуть, знадобиться адаптувати значення ваги або навіть значення коефіцієнта, оскільки багатокритерійний аналіз в більшості випадків є високо суб'єктивним аналізом.


2

Для ArcGIS 10.1 розроблено надбудову MCDA.

Додаток підтримує такі багатокритеріальні методи: Зважене лінійне поєднання (WLC) Впорядковане зважене усереднення (OWA) Локальне зважене лінійне поєднання (LWLC)

http://mcda4arcmap.codeplex.com/


2

Дивіться також: Підтримка багатокритерійного аналізу рішень (MCDA) у GRASS GIS на веб- сайті http://grass.osgeo.org/wiki/MCDA_in_GRASS

Існує набір виділених додатків для GRASS GIS 6: ELECTRE (r.mcda.electre), REGIME (r.mcda.regime) та FUZZY (r.mcda.fuzzy) алгоритми. Крім того, існує модуль r.roughset, який використовується для аналізу географічного грубого набору та виявлення знань.

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