Узагальнення файлу багатокутника при збереженні топології в QGIS?


35

У мене є багатокутник Shapefile, який мені потрібно узагальнити. Як я можу узагальнити полігони та переконатись у відсутності топологічних помилок, таких як "слайвери".

Я вже спробував:

  1. Вектор -> Інструменти геометрії -> багатокутники до ліній
  2. Вектор -> Інструменти геометрії -> спрощена геометрія ... тут я вже бачу на екрані, що я створюю перекриття та прогалини, проте зараз я намагаюся
  3. Вектор -> Інструменти геометрії -> лінії до багатокутників

і тут програма показує помилку і збої

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


Чи є якісь новини з цього питання?
Oystein

на жаль: ні
Курт

Відповіді:


16

GRASS - це топологія. Ви можете використовувати v.generalize з панелі інструментів Processing для спрощення багатокутників, і якщо вхідні дані топологічно правильні, таким буде і вихід.

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


за допомогою інсталятора Windows я отримую помилку (відсутня залежність), коли я намагаюся запустити v.generalize. Вам потрібна спеціальна конфігурація?
Курт

@Kurt: Автономний інсталятор? Не впевнений, до якої версії GRASS вона входить. У налаштуваннях обробки можна вказати, чи GRASS 6.x або 7.x і де він встановлений. Спробуйте налаштувати ці конфігурації під свої налаштування.
underdark

так, я використовую автономний інсталятор. Дотримуючись ваших порад, я відключив траву 7 за допомогою параметрів обробки та правильно налаштував шлях до qrass 6. цей шлях був невірним, що залишився від старого qgis. Тепер я можу запустити v.generalize, але врешті-решт я отримую нову помилку: вихідний шар не вдалося відкрити, і нарешті в повідомленні сказано, що трава, здається, правильно встановлена ​​та налаштована. ви можете, будь ласка, дати мені якісь пропозиції чи підказки?
Курт

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

7

Це можна розглядати як попередню відповідь @ Underdark, за допомогою якої можна очистити топологію векторного шару перед узагальненням. GRASS має функцію v.clean, яка містить ряд інструментів для відновлення шару, таких як:

  • оснащення, яке 'прив'язує' рядки до найближчої вершини
  • rmdangle, який видаляє всі дратівливі звисання
  • rmdupl, який видаляє дублювані функції геометрії

та інші інші, зображені на зображенні нижче:

v.clean

Ви також можете встановити поріг залежно від того, наскільки чутливі ви хочете запускати інструменти. Особисто я схильний використовувати функцію Check Geometry Validity в QGIS ( Вектор > Інструменти геометрії > Перевірка дійсності геометрії ), щоб перевірити наявність помилок і, якщо такі є, використовувати відповідний інструмент у v.clean . Після усунення помилок ви повинні бути в кращому становищі для узагальнення.

Сподіваюся, це допомагає!


3
І якщо достатньо простого зменшення вершини, v.generalize не потрібен, оскільки це може зробити інструмент чорносливу.
Габор Фаркас

дякую за попередню відповідь @ Underdark, яка містить цінні відомості. хоча я прямо не сказав це, звичайно, файл-багатокутник, який я хотів узагальнити, є топологічно чистим [бо; сміття - сміття поза :-)]
Курт

@ Курт, це має сенс :)
Йосип

2

Ви спробували використовувати MapShaper ? Я знайшов це хорошим способом узагальнення багатокутників; є також офлайн-версія, якщо ви хочете завантажити код.

Альтернативою може стати конвертувати це у GeoJson, а потім TopoJson, який підтримує "спрощення форми збереження топології" https://github.com/mbostock/topojson


Спробував Mapshaper, це справді чудовий інструмент
Курт

1
ще один коментар: Як зазначено в назві: я шукаю рішення з qgis. Maphaper imho це не зберігає топологію (Доведіть себе, роблячи дуже сильне узагальнення!). Topojson: це купа JavaScript-вихідного коду, який корисний лише для програмістів
Курт

ой, пропустив лише аспект QGIS. QGIS все ж обробляє geojson; Цікаво, чи було б сенсом працювати над функцією спрощення topojson в плагіні QGIS, щоб зробити його доступним для непрограмістів
djq

Я продовжую поза тематичний рядок: OpenJUMP для цього має інструмент «Спростити покриття полігону».
user30184

0

Я щойно зробив швидкий тест, і інструмент "Спростити геометрію" в меню "Вектор", відповідно до топології. Я спробував і без "Увімкнути топологічне редагування", відмітившись у розділі "Параметри оснащення". Ви спробували це?

EDIT: Це було зроблено безпосередньо на полігонному файлі - чому б ви перетворили спочатку на рядки?


Привіт, Даррен, дякую за підказку, я спробую це з топологічним редагуванням enablr
Курт,

1
Привіт, Даррен, якщо це не поважає топологію. немає різниці з "включити топологічне редагування". Я гадаю, це тому, що узагальнення генерує новий шар, тоді як "увімкнути топологічне редагування", здається, працює лише з -виділеними - існуючими шарами. Не могли б ви зробити дуже сильну генералізацію та перевірити ще раз, якщо у вас зараз правильна топологія? дякую
Курт

1
Курт; Цікаво. Схоже, ти маєш рацію, коли робиш сильне узагальнення! Вибачте!
Даррен Коуп

1
Цей прапорець відсутній у QGIS 2.2 (можливо, раніше), якщо хтось здійснить пошук.
lynxlynxlynx

0

Існує та ж дискусія тут , мій остаточну відповідь в тому , що SAGA робить роботу для вас.


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