Использовать устранение (требуется лицензия ArcInfo)
Устраняет полигоны, объединяя их с соседними полигонами, которые имеют самую большую площадь или самую длинную общую границу. Элиминирование часто используется для удаления небольших многоугольников, которые являются результатом операций наложения, таких как Пересечение или Объединение.
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm
Пользователи ArcGIS 10 Обратите внимание, что в опциях этого инструмента есть НОВАЯ функция.
Теперь можно сохранить исходный POLYGON или POLYLINE с параметром> ex_features (необязательно). Входной полилиний или класс объектов полигонов или слой, который определяет границы полигонов или их части, которые не следует удалять.
Чтобы сделать это вручную в QGIS, перейдите
Settings|Project Properties...
наGeneral
вкладку «Внизу», выберите «Snapping options...
Проверить слой, который вы хотите привязать», установите режимto vertex
и установите допуск на некоторое значение, меньшее кратчайшего расстояния между двумя имеющимися точками. Если вы не уверены, установите единицы измеренияpixels
и допуск на что-то вроде 5, чтобы при наличии каких-то неудобных деталей вы могли увеличить масштаб и быть уверенным, что вы не привязались к неправильной вершине.Затем отредактируйте векторный слой, выберите инструмент узла и переместите ошибочные точки к их аналогам.
Делать это автоматически немного сложнее. AFAIK QGIS не имеет плагина для его автоматизации, и хотя PostGIS построен на GEOS с функциями привязки, он не доступен PostGIS. Возможно, можно написать запрос, чтобы проверить каждую точку многоугольника на наличие соседей в пределах расстояния привязки, но в настоящее время я не могу это расширить.
В GRASS есть v.clean.snap, к которому вы можете получить доступ через QGIS, но есть дополнительный шаг создания набора данных GRASS.
источник
Если вы знакомы с QGIS: в транке QGIS 1.9 (может быть установлен как qgis.dev через установщик OSGEO, см. Домашнюю страницу qgis) есть новая функция в векторном меню под названием «Устранить полигоны-осколки», которая точно делает то, что вы хотеть. Вы можете выбрать проблемные полигоны и объединить их с соседними полигонами, основываясь на общей границе или предложении области. Попробуйте!
источник
Если вы являетесь пользователем QGIS, вы получаете всю мощь GRASS, поскольку это полностью топологическая ГИС. Внутри QGIS активируйте плагин GRASS, создайте местоположение / набор карт, куда нужно импортировать ваши данные.
Откройте набор карт и импортируйте грязный слой с помощью v.in.ogr: поиграйте с двумя дополнительными параметрами: «порог привязки для границ» и «минимальный размер импортируемой области».
Вы также можете использовать опции, которые предоставляет модуль v.clean.
источник
ArcGIS имеет правила топологии , которые помогут вам выявить и исправить пробелы в ваших данных, например, на то, на что вы ссылаетесь. Для создания правил топологии вам понадобится лицензия ArcEditor или ArcInfo, и вы сохраните свой класс пространственных объектов в наборе классов объектов в личной или файловой базе геоданных.
Скорее всего, вы захотите реализовать правило «не должно быть пробелов ». Как только вы создали базу правил со всеми необходимыми правилами, вы захотите проверить топологию, которая идентифицирует все ошибки в ваших данных.
Затем, используя Инспектор ошибок и инструмент « Исправление ошибок топологии» , вы можете по отдельности или массово выбрать ошибки, которые вы хотите исправить, и способы их исправления (т. Е. Создать новые полигоны, чтобы заполнить пустоты, или объединить их с более крупными полигонами поблизости). ,
источник
В наборе инструментов QGIS 2.12 (Лион) есть функция «Устранить полигоны». Я уверен, что это также в какой-то более ранней версии.
источник
Ну, я использую функцию PostGIS (я использую ее непосредственно в QGIS), которая выполняет рекурсивную привязку для решения этой проблемы. Результаты довольно хорошие, для получения наилучших результатов требуется просто хорошее сочетание значений допусков. Если вы хотите попробовать, проверьте это (в моем случае все геометрии являются множественными, следовательно, st_multi в моем исполнении):
источник
Не идеальное решение, но одна из этих двух вещей работает для меня в большинстве случаев:
В QGIS сохраните слой в формате GEOJSON. Но перед сохранением в диалоговом окне «Сохранить слой как» установите точность координат 3 (по умолчанию 15). Это будет иметь эффект объединения вершин, которые очень близки друг к другу.
Перейдите в Mapshaper , загрузите файл и нажмите «Упростить». В верхнем левом углу он сообщит вам, сколько пересечений линий он найдет, и даст вам возможность исправить их. Я считаю, что это исправление работает примерно в половине случаев.
источник
Я не использовал его, но у ET Geowizards , который предоставляет многие инструменты обработки только ArcEditor и ArcInfo к лицензии уровня ArcView (также известный как ArcGIS Standard), есть мастер устранения, который «удаляет нежелательные полигоны (осколки) путем их слияния с соседними полигонами или удаляя их " . Набор инструментов мастера обойдется вам в 250 долларов США ( прайс-лист ).
источник
Я столкнулся с той же проблемой, с которой, изучая инструменты, я справился довольно легко, хотя я не знаю логики. ! [В инструментах перейдите в набор инструментов «Управление данными», перейдите в «Класс объектов» и запустите скрипт Integrate двойным щелчком мыши] [1]
в окне «Сценарий» выберите класс объектов, имеющий проблему, и в допуск XY добавьте значение, измеряя расстояние с помощью инструмента измерения в нескольких точках, и получите среднее значение, поместите это значение в среду допуска и примените решенную проблему. не сейчас, как, но решено с точностью около 90%. ! [введите описание изображения здесь] [2]
Я перепробовал все другие методы, описанные в ответах выше, но было сложно и громоздко получить автоматические поправки на разрывы между соседними полигонами.
источник