У меня есть таблица атрибутов с двумя пустыми полями в QGIS.
Я хочу импортировать базу данных Excel, чтобы заполнить мои пустые поля в QGIS. Мой файл Excel совпадает со столбцами в моей таблице атрибутов QGIS.
Я могу правильно присоединить мой Excel (.CSV) к моему шейп-файлу. Тем не менее, процесс, вместо того, чтобы заполнить пустые поля, как я хотел, создал дубликаты. С помощью «Table Manager» я могу исправить ситуацию, но это требует много времени. Я ищу более эффективный способ присоединиться к моим данным Excel.
Как я могу присоединить мой файл Excel к моей таблице атрибутов без создания дубликатов?
qgis
attribute-table
attribute-joins
excel
Лоран Робитай-Ленесс
источник
источник
Ответы:
Я бы сделал следующие вещи, чтобы облегчить жизнь:
Прежде чем сделать это, сделайте резервную копию своего шейп-файла.
это вкладка поля, я имею в виду
Не забудьте переключить редактирование до и после удаления ненужного поля
источник
Вы захотите присоединить файл Excel к шейп файлу. Вы присоедините их к общему атрибуту, и в результате вы получите объединенный слой, в котором каждая запись содержит атрибуты как шейп-файла, так и файла Excel.
Хорошо, сначала вы загружаете свой файл Excel и свой вектор позже в слои. Я использовал некоторые тестовые данные, которые я сделал, но ваши настройки должны выглядеть примерно так, как показано ниже.
Теперь щелкните правой кнопкой мыши на слое (на панели слоев) и выберите свойства, затем выберите соединение. Сначала нажмите зеленый знак + в левом нижнем углу (большая красная стрелка на рисунке ниже), и откроется новое меню «Добавить объединение векторов» (как показано ниже). Здесь вашим слоем объединения будет файл Excel (поэтому выберите подходящий файл Excel). & sheet) поле соединения - это поле в файле Excel, которое содержит общий атрибут шейп-файла. Целевое поле - это совпадающее поле в шейп-файле. (в моем случае оба общих поля оказались именованными единицами, но если бы поле называлось UNIT_ в шейп-файле, я бы использовал это вместо UNIT для моего целевого поля)
Есть несколько других опций, с которыми вы можете связываться при объединении, например, если вы хотите видеть только определенные поля и т. Д. ... в любом случае, теперь они объединяются, и если вы вернетесь и посмотрите на атрибуты шейп-файла, вы увидите теперь он имеет соответствующие атрибуты файла Excel, как показано ниже.
Вот несколько удобных руководств, чтобы шаг за шагом показать вам, как это сделать:
https://www.mapbox.com/tilemill/docs/guides/joining-data/
http://maps.cga.harvard.edu/qgis/wkshop/join_csv.php
http://qgis.spatialthoughts.com/2012/03/using-tabular-data-in-qgis.html
Как объединить внешние таблицы с таблицей атрибутов шейп-файла в QGIS?
http://www.digital-geography.com/qgis-tutorial-ii-how-to-join-data-with-shapefiles/#.Vs9vpmHXKUk
и учебник ArMoraer, упомянутый в комментариях.
источник
Просто чтобы добавить другой метод, вы можете настроить макрос Project, который при загрузке:
IP1
иIP2
поляСначала создайте проект, если вы еще этого не сделали, а затем перейдите на панель инструментов:
Проект> Свойства проекта ...> Макросы
Затем используйте следующий код в
def openProject():
функции и введите имена ваших слоев и полей, к которым вы хотите присоединиться. Я использовал «Пример» и «Электронная таблица» для моего шейп-файла и CSV-файла соответственно с полемID
:Убедитесь, что слои не объединены, сохраните проект и включите макросы , перейдя на панель инструментов:
Настройки> Общие> Включить макросы
Теперь, когда вы закрываете проект и редактируете CSV-файл, при следующей загрузке проекта поля должны автоматически обновляться:
источник
Я предлагаю использовать LibreOffice / Open Office с открытым исходным кодом для редактирования файла Excel и создания файла .dbf. Я подготовил тестовую тетрадь для вас. Тестовая тетрадь - ссылка
Таблица результатов без дубликатов в QGIS:
источник
Почему пустые поля там для начала? Можете ли вы начать без пустых полей и просто использовать два столбца, созданные в соединении? Я думаю, что это самый простой подход. Либо так, либо найдите инструмент, похожий на инструмент «Загрузить» в ArcGIS.
https://desktop.arcgis.com/en/arcmap/latest/extensions/production-mapping/loading-data-into-a-geodatabase.htm
Если вы не используете базу геоданных, я настоятельно рекомендую это.
источник
Я не знаю, существует ли прямой способ присоединения без дубликатов, поскольку поддержка этого файла .shp осуществляется посредством атрибута в .DBF (файл базы данных). Этот DBF имеет объявление типа столбца, такого как целое число, вещественное число, строка и т. Д. С подробным описанием его длины и точности. Файл CSV имеет только нормальный столбец без какого-либо объявленного типа. Я не знаю, насколько велик твой файл. Для меня я сохраню дубликаты полей, а затем использую калькулятор полей с общей формулой:
Затем удалите все эти дублированные поля (через QGIS или программу базы данных)
источник
Я считаю, что самый простой способ исправить это - просто удалить два столбца в таблице QGIS перед объединением. Затем, когда вы присоединитесь к шейп файлу, два столбца, которые вы хотите, не будут дубликатами и сохранят свои исходные имена столбцов.
источник