У меня есть точечный шейп-файл с тысячами точек. У него есть поле кода ID, которое должно быть уникальным. Время от времени клерк ввода данных ошибочно вводит идентификатор, создавая дубликаты. Прямо сейчас я вручную прокручиваю поле, чтобы найти дубликат.
Есть ли другой способ сделать это с помощью Search Query Builder?
qgis
query
fields-attributes
obsidianz
источник
источник
Ответы:
Если идентификаторы являются последовательными, я бы добавил новый временный столбец с уникальными значениями, такими как предложенный @ Ship.shp, а затем использовал бы конструктор запросов для поиска идентификатора! = UniqueID.
Это вернет дубликаты напрямую. После исправления исходных идентификаторов удалите лишний столбец или повторите весь процесс по мере необходимости - неясно, какому шаблону должны соответствовать ваши идентификаторы. Если они просто должны быть уникальными, сначала запишите последнее значение, а затем вы можете отредактировать неверные идентификаторы за одну итерацию, просто увеличивая число на ходу.
источник
Еще один графический, динамичный и самое главное простой способ обнаружения дублирующихся атрибутов: используйте конструктор выражений QGIS.
Выделите дубликаты в таблице атрибутов :
Включите условное форматирование (см. Красную стрелку ниже) со следующим условием:
Чтобы сгруппировать все дубликаты вверху, щелкните правой кнопкой мыши столбец, выберите «Сортировать».
Введите вышеприведенное выражение без
>1
и снимите флажок «Сортировать по возрастанию».Выделите элементы с дублирующимися атрибутами на холсте :
Вы можете добавить новый символ или метку с установленным фильтром для вышеуказанного условия.
И, конечно же, вы можете включить переопределение на основе полученных данных.
Например, если вы хотите выделить метки для объектов с дублирующимся атрибутом, вы можете настроить его на рисование фона метки (= 1) со следующим переопределением:
достичь чего-то вроде следующего
Конечно, в обеих ситуациях после того, как вы удалите или измените дублирующиеся атрибуты, форматирование / стилирование обновляются мгновенно.
источник
Используйте плагин Group Stats и установите идентификатор в качестве классификации полей. Вы можете увидеть, сколько раз каждое значение было введено в столбце 'count'.
источник
Быстрый (хотя и не элегантный) способ сделать это состоит в том, чтобы перейти в свойства слоя, выбрать Стиль - Категоризация, используя интересующий вас столбец. Примените это, затем щелкните правой кнопкой мыши слой в окне слоев и проверьте параметр Показать число объектов. флажок. Затем разверните слой в окне слоев, и вы сразу увидите, сколько раз было введено каждое значение.
источник
Это хороший вопрос, на который я только что наткнулся. Мне не нравится ни один из ответов, которые были даны до сих пор. У меня есть действительный набор данных с уникальными идентификаторами, которые не являются последовательными и не целочисленными. Проблема состоит в том, что набор данных содержит одну геометрию, но некоторые границы по своей природе являются мульти геометриями. Моя задача - идентифицировать и объединить эти геометрии.
Я рекомендую использовать менеджер БД и SQL для такого рода работы. Менеджер БД теперь является частью QGIS. Вам необходимо экспортировать ваши данные либо в PostGIS, либо в набор данных SpatiaLite. В любом случае SpatiaLite должен быть выбранным форматом данных на основе файлов.
Теперь вы можете использовать count (), group by и order by по своему усмотрению, и сможете быстро и быстро решить эту и другие проблемы.
источник
Да, я ударился головой о стену для аналогичной проблемы.
Вот мой скрипт для удаления функций с одинаковыми идентификаторами. Он берет первый объект с более чем одним атрибутом индекса и записывает его в новый класс объектов.
источник
Также вы можете использовать разделение по атрибутам и получить отдельную таблицу для каждого значения.
Мне нравится предложение Райо, хотя. кроме статистики не совсем так, как я думал.
Это дает количество уникальных значений, но не помогает с этими значениями.
Другое программное обеспечение может добавить поле счетчика и позволить вам экспортировать его в CSV или другой формат электронной таблицы.
Я предлагаю разделить слой по атрибутам в инструментах управления вектором
разделите ваши данные на любое 1 поле, и вы будете считать.
гораздо более не элегантный, чем решение ship.ship
источник