Как в qgis добавить точки по координатам из excel

Обновлено: 07.07.2024

Довольно часто геоданные (информация имеющая координатную привязку) хранятся в виде текста или таблиц и возникает потребность преобразовать их в какой-либо векторный формат. В статье описывается последовательность действий по созданию точечного shape-файла из текста с разделителями в QGIS.

Содержание

Вначале, необходимо подготовить данные: удобнее всего это делать в табличном редакторе (например, OpenOffice Calc или MS Excel), но можно работать и в любом другом текстовом редакторе, (Notepad - блокнот входящий в стандартные программы Windows, или более удобный и работающий с большими текстовыми файлами Notepad++). В табличном редакторе нужно создать три основные колонки (другие поля данных также могут присутствовать):

  • идентификатор (название или номер) точки
  • широта
  • долгота

В качестве примера, приведем таблицу описаний растительности: в первой колонке - номер описания, далее - широта, долгота, высота НУМ и название растительного комплекса. Широта указывается в десятичных градусах или в метрах (если использована прямоугольная система координат). В случае, если исходные координаты представлены в виде градусов, минут и секунд, вначале их необходимо преобразовать в десятичные.

Excel-red.jpg


После того, как ваши данные приведены к указанному виду, необходимо сохранить их как текстовый файл. Рекомендуем сохранять в виде текста с разделителями табуляцией. В Excel: Файл -> Сохранить как, и во вкладке "Тип файла" выбрать "текстовые файлы (с разделителями табуляции (*.txt)".

  • Называйте колонки коротко, латинскими буквами, без пробелов и специальных символов.
  • Если колонку с широтой назвать Lat (Latitude), а с долготой - Lon (Longitude), то программа автоматически распознает, что в этих колонках находится соответственно широта и долгота, в противном случае, вам придется какая колонка показывает широту, а какая долготу вручную.
  • Проверьте, что в качестве разделителя целой и дробной части всегда используется один и тот же знак (точка или запятая).

Для преобразования текстовых данных в векторный слой в QGIS имеется модуль "Текст с разделителями" . Модуль входит в ядро QGIS и не требует отдельной установки (устанавливается вместе с QGIS), однако следует убедиться, что он включен. Для этого в QGIS зайдите во вкладку "Модули" -> "Управление модулями" и убедитесь, что на против модуля "Текст с разделителями" стоит галочка:

Manager-dtext.jpg


Запускаем модуль с главной панели QGIS: Слой -> Добавить слой из текста с разделителями, или нажав на кнопку .

В открывшемся диалоговом окне в графе "Имя файла" выбираем созданный на предыдущем шаге текстовый файл.

  • Указываем, что это текст с разделителями (галочка "Разделители"), тип разделителя - табуляция (или другой использованный вами).
  • Обработку начинаем с 0 строки - в этом случае, в качестве заголовков колонок будут использованы заголовки созданные на первом шаге.
  • Ставим галочку против "Формат XY" в качестве X координаты выбираем колонку с долготой, в качестве Y - колонку с широтой если они не выбрались автоматически.
  • Выбираем тип разделителя целой и дробной части (Decimal point) - указываем точку или запятую.
  • Убеждаемся, что таблица имеет узнаваемый вид в нижнем окошке "Образец". Если таблица "разрушилась", убедитесь, что правильно задали разделитель или не задали ли лишний разделитель:

Dtext window.jpg


Жмем "ОК". Теперь нам необходимо указать использованную систему координат: если координаты заданы в градусах, то это географическая система координат, а в случае, если данные сняты GPS, то почти наверняка был использован эллипсоид WGS84. Это может быть иначе, но чаще всего это так.

Чтобы быстро найти в обширном списке координатных систем необходимую, набираем в графе "Filter" "WGS 84" и выбираем ее из списка Географических систем координат:

Dtext-coord.jpg


Жмем "ОК". Теперь необходимо убедиться, что точки легли туда куда нужно. В случае если точки сильно "улетели", проверьте, не перепутали ли вы местами широту и долготу на предыдущем шаге. В случае, если точки "улетели" метров на 50-100, дело может быть в неправильно заданной системе координат, необходимо выяснить параметры СК в которой снимались координаты.

Dtext verify.jpg


На завершающем шаге необходимо сохранить полученный векторный слой. Правой кнопкой мыши щелкаем по созданному слою в списке слоев и выбираем "Сохранить как".

Dtext saveas.jpg


Далее указываем тип файла (Shape-файл ESRI), каталог для сохранения, кодировку (system) и координатную систему для сохраняемого слоя. Если нужно сохранить в СК заданной на предыдущем шаге, выберите "Layer CRS" (Система координат слоя). Жмем "ОК".

Dtext-shape.jpg


Теперь загружаем созданный Shape-файл, открываем его таблицу атрибутов и убеждаемся, что все в порядке: проблемы могут возникнуть, если текстовое поле длиннее 80 символов, т.к. по умолчанию OGR драйвер задает длину строки в 80 символов. Как задать длину текстового поля, а также другие параметры полей при импорте из текстового файла см. следующий дополнительный раздел.

Усложним задачу: допустим, нам нужно импортировать таблицу содержащую текстовое поле длиннее, чем 80 символов, кроме того, нам хотелось бы более точно задать параметры будущих полей shape-файла, указав длину и точность целых и дробных чисел. Пример таблицы:

Excel-table2.jpg


Экспортируем эту таблицу в формат CSV (В Excel Файл -> Сохранить как. Тип файла выбрать "CSV (разделители - запятые, *.CSV):

Для того, чтобы задать параметры полей создадим специальный файл с таким же названием как полученный на предыдущем шаге файл *.csv и расширением *.CSVT. В этом файле через запятую, без пробелов, в кавычках нужно последовательно перечислить типы полей и их параметры для нашей таблицы:

  • Integer - целочисленные поля, в скобках указывается количество значащих символов. Т.о. если значения в поле колеблются в пределах 1-999, как для поля Num (номер описания) можно указать "Integer(3)"
  • Real - десятичная дробь, в скобках указывается общая длина, с учетом разделителя целой и дробной части, и количество знаков после запятой. Т.о. для координат, снятых бытовым GPS с навигационной точностью (6 знаков после запятой), параметры будут выглядеть так: "Real(9.6)"
  • String - текстовая строка. В скобках указывается количество символов, включая пробелы и знаки препинания). Следует помнить, что максимальная длина текстового поля shape-файла 254 знака.
  • Date - Драйвер СSV поддерживает также формат даты (в формате YYYY-MM-DD). Но, к сожалению, записать формат даты в shape-файл не представляется возможным.


Чтобы указать драйверу, какова геометрия необходимого нам слоя и из каких колонок брать координаты, необходимо создать еще один файл с расширением *.VRT (виртуальный слой).

В теле файла следует прописать:

  • name= - название файла *.VRT
  • <LayerSRS>WGS84</LayerSRS> - СК, в данном случае, географическая СК, эллипсоид WGS84.
  • <GeometryType>wkbPoint</GeometryType> - тип геометрии, в нашем случае - точечный слой.
  • <GeometryField encoding="PointFromColumns" x="Lon" y="Lat"/> - указание какие колонки *.CSV-файла содержат, соответственно, долготу и широту.

Таким образом, мы получили 3 файла, находящиеся в одной директории и имеющие одинаковое название:

  • filename.csv
  • filename.csvt
  • filename.vrt

Теперь открываем в QGIS файл VRT как векторный слой: Слой -> Добавить векторный слой. Убеждаемся, что точки легли куда нужно и проверяем параметры созданных полей: в свойствах слоя вкладка "Поля":

Dtext-attribute.jpg


Сохраняем полученный виртуальный слой как shape-файл: Слой -> Сохранить как

У меня есть таблица атрибутов с двумя пустыми полями в QGIS.

Example_1

Я хочу импортировать базу данных Excel, чтобы заполнить мои пустые поля в QGIS. Мой файл Excel совпадает со столбцами в моей таблице атрибутов QGIS.

Example_2

Example_3

Как я могу присоединить мой файл Excel к моей таблице атрибутов без создания дубликатов?

Я бы сделал следующие вещи, чтобы облегчить жизнь:

Прежде чем сделать это, сделайте резервную копию своего шейп-файла.

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

  1. В своем шейп-файле перейдите к свойствам / полям слоя и включите режим редактирования.
  2. выбрать все поле, кроме поля идентификатора
  3. Удалить все поля, кроме поля ID
  4. добавьте ваш CSV-файл в качестве слоя в QGIS (Главное меню / Слой / Добавить слой / Добавить текстовый слой с разделителями) (не выбирайте геометрию)
  5. в своем шейп-файле выберите свойства / объединения и выберите оба поля идентификатора для источника и цели. Как описано в другом ответе на этот вопрос.
  6. Сохраните ваш измененный шейп-файл.

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

это вкладка поля, я имею в виду

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

Не забудьте переключить редактирование до и после удаления ненужного поля

Вы захотите присоединить файл Excel к шейп файлу. Вы присоедините их к общему атрибуту, и в результате вы получите объединенный слой, в котором каждая запись содержит атрибуты как шейп-файла, так и файла Excel.

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

Хорошо, сначала вы загружаете свой файл Excel и свой вектор позже в слои. Я использовал некоторые тестовые данные, которые я сделал, но ваши настройки должны выглядеть примерно так, как показано ниже.

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

Теперь щелкните правой кнопкой мыши на слое (на панели слоев) и выберите свойства, затем выберите соединение. Сначала нажмите зеленый знак + в левом нижнем углу (большая красная стрелка на рисунке ниже), и откроется новое меню «Добавить объединение векторов» (как показано ниже). Здесь вашим слоем объединения будет файл Excel (поэтому выберите подходящий файл Excel). & sheet) поле соединения - это поле в файле Excel, которое содержит общий атрибут шейп-файла. Целевое поле - это совпадающее поле в шейп-файле. (в моем случае оба общих поля оказались именованными единицами, но если бы поле называлось UNIT_ в шейп-файле, я бы использовал это вместо UNIT для моего целевого поля)
Есть несколько других опций, с которыми вы можете связываться при объединении, например, если вы хотите видеть только определенные поля и т. Д. . в любом случае, теперь они объединяются, и если вы вернетесь и посмотрите на атрибуты шейп-файла, вы увидите теперь он имеет соответствующие атрибуты файла Excel, как показано ниже.

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

Вот несколько удобных руководств, чтобы шаг за шагом показать вам, как это сделать:

Как создать точечные объекты с точными (введенными вручную) координатами в QGIS?

Я получаю точные координаты GPS от съемочной группы, которые мне нужно добавить к точечному слою. Что я хочу: -Добавить точку, введите координаты и при нажатии введите точку создается там, где она должна быть.

Это возможно с QGIS без дополнительных плагинов, используя панель Advanced Digitizing . Этот инструмент позволяет вводить точные значения координат, а также строить точки на заданном расстоянии и под углом от других точек.

Включить расширенную оцифровку

Введите координаты

Примечание:

Расширенные инструменты оцифровки недоступны в географических координатах.

Фотографии взяты из этого превосходного ответа, который дает прохождение.

@Mathias Как вы проверяете первый пункт? Это довольно ясно, как это работает, когда у вас есть первая точка. (для обеих точек, линий и полигонов). Разве это не работает, если вы просто вводите координаты, а затем щелкаете где-нибудь на холсте карты, как вы делаете для последующих точек? NVM, вероятно, это была пятница, потому что сегодня она работает нормально. Ty.

Вам нужно сначала установить плагин «Numeric Digitize».

Затем вы можете использовать Numerical Digitize команду для создания точек в QGIS с точными (введенными вручную) точными координатами.

Команда Numerical Digitize находится на Digitizing панели инструментов.

Убедитесь, что вы включены Toggle Editing для слоя, который хотите оцифровать (добавьте координаты), чтобы эта Numerical Digitize кнопка была активной.

Вы можете сделать это для точечных и полигональных данных.

Я предпочитаю второе решение HasT, если очков больше, чем несколько. Введите координаты (отдельные столбцы X и Y), метки и любые другие данные в выбранной вами электронной таблице. Сохраните в формате CSV и используйте «Добавить текстовый слой с разделителями», чтобы добавить ваши точки в качестве слоя:

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

и появляется окно с вопросом, какие столбцы использовать в качестве координат X & Y и других параметров.

Отредактировано, чтобы добавить: см. Также этот учебник, связанный с вики QGIS.

Одна из наиболее распространенных процедур использования географических информационных систем - это построение пространственных слоев на основе информации с поля. Независимо от того, представляет ли это координаты, вершины участков или сетку высот, информация обычно поступает в файлах, разделенных запятыми, или в электронных таблицах Excel.

1. Файл географических координат в Excel.

В этом случае я пытаюсь импортировать населенные пункты Республики Куба, которые я загрузил из дива-GIS, который, кстати, является одним из лучших сайтов для загрузки географических данных из любой страны. Как видите, столбцы B и C содержат информацию о широте и долготе в виде географические координаты.

lat long qgis excel

2. Импортируйте файл в QGIS.

Чтобы импортировать координаты файла Excel, выполняется:

Вектор> Инструменты XY> Файл OpenExcele как таблица атрибутов или точечный слой

lat long qgis excel

Если файл сохранен с расширением .xlsx, браузер не будет его отображать, поскольку он фильтрует только файлы с расширением .xls. Это не проблема, мы можем применить старые методы DOS и записать в смену имени фильтр: *. * (звездочка, точка, звездочка) и делаем Enter; это позволит увидеть все файлы в этом месте. Мы могли бы просто написать * .xls, и он отфильтровал бы только файлы с расширением .xls.

lat long qgis excel

Тогда у нас есть панель, в которой мы должны указать, какой столбец равен координате в X, в этом случае мы выберем столбец длины, столбец широты для координаты Y.

lat long qgis excel

И вот оно. Запрос показывает, что слой был сохранен с данными, содержащимися в файле кубинских населенных пунктов, который включает название, широту, долготу, классификацию и административную провинцию.

lat long qgis excel

3. Создавайте многоугольники по координатам.

В случае, если мы хотим не только импортировать вершины, но и создать многоугольник в порядке этих координат, мы можем использовать плагин Points2One. Этот плагин позволяет вам определить, как будет вызываться целевой слой, будет ли то, что мы будем импортировать, строить как линии или как многоугольник.

lat long qgis excel

4. Как импортировать координаты из Excel в другие программы САПР / ГИС.

Как вы помните, мы проделали этот процесс со многими другими программами. Так же просто, как QGIS, мало. Но вот как это сделать с AutoCAD, Микростанция, многообразие ГИС, AutoCAD Civil 3D, Google Earth.

Оставьте ответ Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.

пересмотреть архитектуру

Курс "Основы архитектуры" с использованием Revit

Все, что вам нужно знать о Revit для создания проектов для зданий В этом курсе мы сосредоточимся на том, чтобы дать вам .

Курс Гекры

Курс моделирования наводнений - HEC-RAS с нуля

Проспекты и анализ наводнений с помощью бесплатного программного обеспечения: HEC-RAS HEC-RAS - программа Инженерного корпуса армии .

Курс роботостроения

Курс структурного проектирования с использованием AutoDesk Robot Structure

Полное руководство по использованию Robot Structural Analysis для моделирования, расчета и проектирования бетонных и стальных конструкций .


Эксперт BIM MEP - 32 часа видео - 100% онлайн

1. MEP - Сантехнические системы U $ 24.99
2. MEP - Электрические системы… .. U $ 24.99
3. MEP - Системы HVAC ……… U $ 24.99
4. Методология BIM ……………… U $ 24.99
5. BIM 4D- NavisWorks ………… U $ 24.99
6. Изобретатель Настран ……………… .. U $ 24.99

Читайте также: