У меня есть карта , составленную из нескольких полигонов, с несколько сотен тысяч точек очень маленьких полигонов на внутри него.
Мне нужны большие полигоны, но не точки маленькие полигоны. Как выбрать и удалить все точки маленьких многоугольников, сохраняя при этом большие многоугольники? (Я, очевидно, не хочу делать это вручную - есть слишком много пунктов для этого!)
Я совершенно новичок в QGIS, и я безуспешно гуглил. Возможно, потому что я не уверен, что правильная терминология для поиска Google!
Я использую следующие файлы: .dbf, .prj, .qpj, .shp и .shx. Я просто перетаскиваю файл .shp в QGIS, и карта отображается в виде одного слоя. В основном карта Великобритании разделена на регионы (которые я хочу) и покрыта точками (которые не хочу).
Вот как это выглядит вблизи. Я сделал растворение, чтобы посмотреть, войдут ли они в окружающий слой, без удачи:
Ответы:
Похоже, что вы работаете с данными кодовой точки съемки Ordnance , которые представляют собой набор данных областей почтовых индексов в Великобритании и Северной Ирландии.
«Точки», на которые вы ссылаетесь, представляют собой небольшие квадратные многоугольники, представляющие так называемые «вертикальные улицы»: стеки из нескольких почтовых индексов, которые нельзя представить с помощью «обычных» многоугольников (см. Комментарий Энди Харфута для более подробной информации). ). Возможно, вы захотите дважды подумать об удалении этих полигонов, если для анализа вам нужны соответствующие почтовые индексы.
Тем не менее, вот как вы можете удалить эти полигоны:
Выберите все вертикальные многоугольники улиц, нажав «Выбрать объекты с помощью выражения» и введя
"POSTCODE" LIKE 'V%'
. При этом будут выбраны все объекты с почтовым индексом, начиная сV
вертикальных улиц.Простое удаление объектов не поможет, так как полигоны оставят дыры, как вы уже заметили. Вместо этого вы можете объединить вертикальные улицы с соседним большим полигоном, используя «Вектор / Инструменты геообработки / Устранить полигоны-осколки», сохранив результат в новом файле.
Вы можете получить предупреждение о том, что некоторые функции не могут быть распущены, вместе со списком идентификаторов функций. Если вы также хотите избавиться от этих объектов, выберите вертикальные улицы в новом слое, используя выражение из ранее, и затем выполните одно из следующих действий:
Если вам нужно автоматическое решение, вы можете растворить вертикальные улицы вместе со всеми соседними полигонами. Сохраните выделение на новый слой, используя «Слой / Сохранить выделение как векторный файл», а затем используйте «Вектор / Инструменты исследования / Выбор по местоположению», чтобы выбрать объекты в объединенном слое, которые пересекаются с нарушающими вертикальные улицы, создавая новую выделенную область. , Затем распустите этот выбор, используя «Вектор / Инструменты геообработки / Растворение», выбрав
--- Dissolve all ---
«Поле растворения». Обратите внимание, что этот подход может привести к нежелательному роспуску «правильных» полигонов, если нарушающая вертикальная улица находится на границе двух других полигонов или если в двух соседних полигонах есть нарушающие вертикальные улицы.Если вы хотите избежать растворения других полигонов, вы можете вручную выбрать вертикальные улицы и один соседний полигон, стараясь не выбирать два соседних полигона, а затем растворить их, как указано выше.
источник
Попробуйте изменить свою методологию. Вместо того, чтобы пытаться выбрать и удалить тысячи точек, вы пытались выбрать полигоны и создать новый слой из этого выделения? Это не было бы слишком утомительно, если бы у вас был метод для удаления всех точек вручную, просто вместо этого выберите объекты полигона и либо создайте слой, либо экспортируйте их. Если эти точки являются маленькими полигонами, как прокомментировали другие, вы все равно можете выбрать только те полигоны, которые хотите сохранить и экспортировать.
источник