Как в qgis добавить точки по координатам из excel
Перед людьми выезжающим в поле и имеющим с собой GPS и ноутбук часто стоит задача открыть проект с какими-то данными в QGIS и нанести в нем точку с известными координатами.
Эта статья - пособие для новичков в ГИС, объясняющая как решить данную конкретную задачу. Подразумевается что QGIS у читателя уже установлен, если это не так - установите его используя подробное описание как это сделать.
1. Подготовка к работе
Перед началом работы нужно также установить расширение которое называется NumericalDigitize.
Если вы не знаете как устанавливать модули, ознакомьтесь со статьей "Установка модулей расширения в QGIS".
После установки на панели инструментов редактирования появится новая кнопка (выделена красным на рисунке ниже).
Возможна ситуация, когда панель показывается не полностью и кнопка, добавляющаяся в самый ее конец просто не видна - нажмите на >> или перетащите панель на новую строку так, чтобы она была видна целиком.
Так как проект пока пустой - кнопка не активна.
2. Подготовка рабочего проекта
Настройки данных, расширений (но не сами данные!) в QGIS хранятся в проекте. Проект представляет собой файл с расширением QGS. Новый чистый проект автоматически создается при запуске программы, но он не сохраняется, поэтому выберем Файл\Сохранить проект как. и укажем где будет лежать проект.
В дальнейшем нужно не забывать периодически сохранять проект (Файл\Сохранить проект) и начинать работу не с нового, а с созданного. Для этого нужно либо вызывать проект через запуск его файла, либо выбором в меню программы Файл\Открыть проект.
3. Подготовка подложки
Загрузим слой или слои представляющих собой некое географическое окружение точки. Это могут быть космические снимки или карты. В зависимости от формата данных это могут быть растровые (Слой\Добавить растровый слой. ) или векторные данные (Слой\Добавить векторный слой. ) .
У нас в качестве подложки выступит снимок, поэтому выберем Слой\Добавить растровый слой. и найдем файл со снимком.
4. Подготовка рабочего точечного слоя
Создаваемые точки мы хотим сохранить на будущее поэтому нам нужно создать для них новый слой - контейнер в котором они будут храниться.
Для создания слоя выберите Слой\Создать\Создать новый shape-файл.
В открывшемся окне просто нажмите ОК и выберите куда сохранить слой и как его назвать. После этого он появится в списке слоёв поверх снимка.
5. Установка общей системы координат проекта
Так как точки мы будем брать с GPS, где они находятся в одной системе координат, а снимок находится в другой, необходимо указать в проекте общую систему координат. Для этого нужно сначала ее определить по снимку (рабочей системой координат у нас будет система координат снимка). Для этого выберем из меню Растр\Информация и нажмем ОК.
В пункте PROJCS обозначена система координат снимка - это UTM зона 38.
Теперь выясненную систему координат надо назначить проекту. Выберем: Установки\Свойства проекта\Система координат.
В списке проекций выберем Прямоугольные системы координат\Universal Transverse Mercator\
И в списке пролистаем до
Эта система координат равна системе координат снимка и ее мы и будем использовать как рабочую в этом проекте. Все векторные слои (в том числе наши точки) будут автоматически переводиться в эту систему координат и накладываться на снимок.
Последнее что осталось сделать - включить режим автоматического перевода новых точек в рабочую систему координат. Это делается установкой флажка Включить преобразование на лету.
Нажмите ОК чтобы применить новые настройки и сохраните проект.
Подготовка завершена, можно начинать использовать созданный проект по назначению.
6. Создание точек
Итак вы выехали в поле, включили приемник GPS, получили свои координаты, открыли проект со снимком и готовы к тому, чтобы точно определить, где же вы на нем находитесь. Чтобы добавить свою точку, нужно выполнить следующую последовательность действий:
- Выбрать слой с точками щелкнув по нему один раз (он может быть уже выбран)
- Выбрать из меню Слой\Режим редактирования - это позволит начать добавлять объекты в слой
- Щелкнуть на ставшую активной кнопку NumericalDigitize
- Ввести координаты с GPS, долготу в X, широту в Y и выбрать переключатель in the CRS of the Layer.
- Нажать ОК и еще раз выбрать Слой\Режим редактирования для сохранения изменений в слое.
Точка должна появиться на снимке.
Теперь осталось только освоить инструменты навигации чтобы научиться увеличивать нужный кусок снимка и возвращаться к исходному охвату. Эти инструменты выглядят следующим образом:
Используя такую систему, вы никогда не потеряетесь и получите массу полезной информации прямо в поле.
7. Самостоятельная работа
Если вы еще не в поле, но собираетесь и хотите потестировать такой подход вы можете использовать вот этот снимок и точку 46.74719,45.69802 (долгота, широта). У вас должен получиться точно такой же результат как и на рисунке выше.
У меня есть файл Excel, содержащий данные, собранные за многие годы в виде координат широты и долготы для археологических памятников - как я могу импортировать их в QGIS в качестве нового слоя?
Преобразование файла Excel в CSV не является вопросом ГИС. Преобразование Excel или CSV в шейп-файл будет. Что вы пробовали до сих пор на пути тестирования или исследования?
Если ваши данные правильно отформатированы в Excel (заголовки столбцов, без посторонних данных), то «сохранить как» из Excel как тип CSV. Вы получите предупреждения о том, что CSV не поддерживает несколько листов и т. Д., Но вы можете игнорировать их, если сохраните свой существующий лист , Можете ли вы сделать снимок экрана с тем, что у вас есть в Excel, и указать, что вы пробовали, и где это терпит неудачу.
Если у вас уже есть данные в Excel, убедитесь, что: а) данные должны быть в десятичных градусах б) первая строка файла имеет имя поля (это только пример)
Затем вы должны сохранить файл как CSV-запятую (не MSDOS или Mac). После открытия Qgis вы должны найти плагин «Добавить текстовый слой с разделителями» (синий пост с иконкой запятых).
Вы должны определить, что разделитель - запятые, и выбрать соответствующие поля x и y. Когда Qgis откроет данные, которые он запросит для CRS, вы должны будете определить данные для своих данных. Данные, которые вы видите на изображении - это латлонные wgs 84, поэтому я выбрал EPSG4326. Как только ваши данные загружены, вы можете сохранить текстовый слой в другой тип файла, например, shp. Надеюсь, это поможет
Улучшите свой ответ, добавив заметку @Radar на CRS. Как вы, возможно, знаете, импорт delim txt должен запрашивать CRS.
Обратите внимание, что если ваши данные в UTM:
Вы можете следовать тому же процессу, но выбрать соответствующий CRT UTM в Селекторе координатных систем вместо WGS84.
Я думаю, что было бы лучше, если бы вы могли опубликовать план или резюме учебника, на который вы ссылались. Ваш ответ отличный, но было бы бесполезно, если бы блог, на который вы ссылались, внезапно отключился.
Я бы сказал, что CSV-файл, созданный в Excel, представляет собой столько же «файл Excel», сколько и файл с расширением .xls, поскольку их можно конвертировать в и из каждого формата с помощью Excel. Если вы хотите быть очень разборчивым, промежуточным шагом будет преобразование файла .xls в CSV с использованием Excel.
Я согласен, что этот ответ должен быть немного больше, чем ссылка. Информация о том, что вы не можете просто загрузить файл Excel в QGIS и сначала нуждаетесь в Excel или другом альтернативном программном обеспечении для преобразования его в CSV, является критической.
Вы можете контролировать свои табличные данные с помощью плагина XYtools .
Целью плагина xy-tools-plugin является заполнение x- и y-столбца данной таблицы атрибутов путем нажатия на (справочную) карту. После «заполнения столбца x и y» вы можете экспортировать таблицу в файл формы точки. Начиная с версии 0.2 вы также можете открывать файлы Excel и, используя x- и y-столбцы, загружать его как слой Point.
У меня есть таблица атрибутов с двумя пустыми полями в QGIS.
Я хочу импортировать базу данных Excel, чтобы заполнить мои пустые поля в QGIS. Мой файл Excel совпадает со столбцами в моей таблице атрибутов QGIS.
Как я могу присоединить мой файл Excel к моей таблице атрибутов без создания дубликатов?
Я бы сделал следующие вещи, чтобы облегчить жизнь:
Прежде чем сделать это, сделайте резервную копию своего шейп-файла.
- В своем шейп-файле перейдите к свойствам / полям слоя и включите режим редактирования.
- выбрать все поле, кроме поля идентификатора
- Удалить все поля, кроме поля ID
- добавьте ваш CSV-файл в качестве слоя в QGIS (Главное меню / Слой / Добавить слой / Добавить текстовый слой с разделителями) (не выбирайте геометрию)
- в своем шейп-файле выберите свойства / объединения и выберите оба поля идентификатора для источника и цели. Как описано в другом ответе на этот вопрос.
- Сохраните ваш измененный шейп-файл.
это вкладка поля, я имею в виду
Не забудьте переключить редактирование до и после удаления ненужного поля
Вы захотите присоединить файл Excel к шейп файлу. Вы присоедините их к общему атрибуту, и в результате вы получите объединенный слой, в котором каждая запись содержит атрибуты как шейп-файла, так и файла Excel.
Хорошо, сначала вы загружаете свой файл Excel и свой вектор позже в слои. Я использовал некоторые тестовые данные, которые я сделал, но ваши настройки должны выглядеть примерно так, как показано ниже.
Теперь щелкните правой кнопкой мыши на слое (на панели слоев) и выберите свойства, затем выберите соединение. Сначала нажмите зеленый знак + в левом нижнем углу (большая красная стрелка на рисунке ниже), и откроется новое меню «Добавить объединение векторов» (как показано ниже). Здесь вашим слоем объединения будет файл Excel (поэтому выберите подходящий файл Excel). & sheet) поле соединения - это поле в файле Excel, которое содержит общий атрибут шейп-файла. Целевое поле - это совпадающее поле в шейп-файле. (в моем случае оба общих поля оказались именованными единицами, но если бы поле называлось UNIT_ в шейп-файле, я бы использовал это вместо UNIT для моего целевого поля)
Есть несколько других опций, с которыми вы можете связываться при объединении, например, если вы хотите видеть только определенные поля и т. Д. . в любом случае, теперь они объединяются, и если вы вернетесь и посмотрите на атрибуты шейп-файла, вы увидите теперь он имеет соответствующие атрибуты файла Excel, как показано ниже.
Вот несколько удобных руководств, чтобы шаг за шагом показать вам, как это сделать:
и учебник ArMoraer, упомянутый в комментариях.
@Laurent Robitaille-Lainesse Я обновил свой пост более пошаговым руководством. Я присоединил тестовый файл Excel к шейп-файлу многоугольника, чтобы убедиться, что мои шаги верны.
Мне удалось правильно присоединить мой файл Excel к QGIS. Я заметил, что опция «соединение» добавляет новое поле в таблицу атрибутов. Поправьте меня, если я ошибаюсь, но кажется невозможным добавить данные из моего файла Excel в пустое поле в моей таблице атрибутов.
Если у вас есть пустое поле, то вы используете калькулятор полей для заполнения от только что присоединенного поля к полю, имеющемуся в вашей таблице.
Просто чтобы добавить другой метод, вы можете настроить макрос Project, который при загрузке:
- Автоматически присоединяет ваш шейп-файл к вашему CSV
- Обновляет IP1 и IP2 поля
- Удаляет объединенные поля, оставляя только поля шейп-файла (т.е. без дубликатов)
Сначала создайте проект, если вы еще этого не сделали, а затем перейдите на панель инструментов:
Проект> Свойства проекта . > Макросы
Затем используйте следующий код в def openProject(): функции и введите имена ваших слоев и полей, к которым вы хотите присоединиться. Я использовал «Пример» и «Электронная таблица» для моего шейп-файла и CSV-файла соответственно с полем ID :
Убедитесь, что слои не объединены, сохраните проект и включите макросы , перейдя на панель инструментов:
Настройки> Общие> Включить макросы
Теперь, когда вы закрываете проект и редактируете CSV-файл, при следующей загрузке проекта поля должны автоматически обновляться:
Довольно часто геоданные (информация имеющая координатную привязку) хранятся в виде текста или таблиц и возникает потребность преобразовать их в какой-либо векторный формат. В статье описывается последовательность действий по созданию точечного shape-файла из текста с разделителями в QGIS.
Содержание
Вначале, необходимо подготовить данные: удобнее всего это делать в табличном редакторе (например, OpenOffice Calc или MS Excel), но можно работать и в любом другом текстовом редакторе, (Notepad - блокнот входящий в стандартные программы Windows, или более удобный и работающий с большими текстовыми файлами Notepad++). В табличном редакторе нужно создать три основные колонки (другие поля данных также могут присутствовать):
- идентификатор (название или номер) точки
- широта
- долгота
В качестве примера, приведем таблицу описаний растительности: в первой колонке - номер описания, далее - широта, долгота, высота НУМ и название растительного комплекса. Широта указывается в десятичных градусах или в метрах (если использована прямоугольная система координат). В случае, если исходные координаты представлены в виде градусов, минут и секунд, вначале их необходимо преобразовать в десятичные.
После того, как ваши данные приведены к указанному виду, необходимо сохранить их как текстовый файл. Рекомендуем сохранять в виде текста с разделителями табуляцией. В Excel: Файл -> Сохранить как, и во вкладке "Тип файла" выбрать "текстовые файлы (с разделителями табуляции (*.txt)".
- Называйте колонки коротко, латинскими буквами, без пробелов и специальных символов.
- Если колонку с широтой назвать Lat (Latitude), а с долготой - Lon (Longitude), то программа автоматически распознает, что в этих колонках находится соответственно широта и долгота, в противном случае, вам придется какая колонка показывает широту, а какая долготу вручную.
- Проверьте, что в качестве разделителя целой и дробной части всегда используется один и тот же знак (точка или запятая).
Для преобразования текстовых данных в векторный слой в QGIS имеется модуль "Текст с разделителями" . Модуль входит в ядро QGIS и не требует отдельной установки (устанавливается вместе с QGIS), однако следует убедиться, что он включен. Для этого в QGIS зайдите во вкладку "Модули" -> "Управление модулями" и убедитесь, что на против модуля "Текст с разделителями" стоит галочка:
Запускаем модуль с главной панели QGIS: Слой -> Добавить слой из текста с разделителями, или нажав на кнопку .
В открывшемся диалоговом окне в графе "Имя файла" выбираем созданный на предыдущем шаге текстовый файл.
- Указываем, что это текст с разделителями (галочка "Разделители"), тип разделителя - табуляция (или другой использованный вами).
- Обработку начинаем с 0 строки - в этом случае, в качестве заголовков колонок будут использованы заголовки созданные на первом шаге.
- Ставим галочку против "Формат XY" в качестве X координаты выбираем колонку с долготой, в качестве Y - колонку с широтой если они не выбрались автоматически.
- Выбираем тип разделителя целой и дробной части (Decimal point) - указываем точку или запятую.
- Убеждаемся, что таблица имеет узнаваемый вид в нижнем окошке "Образец". Если таблица "разрушилась", убедитесь, что правильно задали разделитель или не задали ли лишний разделитель:
Жмем "ОК". Теперь нам необходимо указать использованную систему координат: если координаты заданы в градусах, то это географическая система координат, а в случае, если данные сняты GPS, то почти наверняка был использован эллипсоид WGS84. Это может быть иначе, но чаще всего это так.
Чтобы быстро найти в обширном списке координатных систем необходимую, набираем в графе "Filter" "WGS 84" и выбираем ее из списка Географических систем координат:
Жмем "ОК". Теперь необходимо убедиться, что точки легли туда куда нужно. В случае если точки сильно "улетели", проверьте, не перепутали ли вы местами широту и долготу на предыдущем шаге. В случае, если точки "улетели" метров на 50-100, дело может быть в неправильно заданной системе координат, необходимо выяснить параметры СК в которой снимались координаты.
На завершающем шаге необходимо сохранить полученный векторный слой. Правой кнопкой мыши щелкаем по созданному слою в списке слоев и выбираем "Сохранить как".
Далее указываем тип файла (Shape-файл ESRI), каталог для сохранения, кодировку (system) и координатную систему для сохраняемого слоя. Если нужно сохранить в СК заданной на предыдущем шаге, выберите "Layer CRS" (Система координат слоя). Жмем "ОК".
Теперь загружаем созданный Shape-файл, открываем его таблицу атрибутов и убеждаемся, что все в порядке: проблемы могут возникнуть, если текстовое поле длиннее 80 символов, т.к. по умолчанию OGR драйвер задает длину строки в 80 символов. Как задать длину текстового поля, а также другие параметры полей при импорте из текстового файла см. следующий дополнительный раздел.
Усложним задачу: допустим, нам нужно импортировать таблицу содержащую текстовое поле длиннее, чем 80 символов, кроме того, нам хотелось бы более точно задать параметры будущих полей shape-файла, указав длину и точность целых и дробных чисел. Пример таблицы:
Экспортируем эту таблицу в формат 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
WGS84 - СК, в данном случае, географическая СК, эллипсоид WGS84.wkbPoint - тип геометрии, в нашем случае - точечный слой.- - указание какие колонки *.CSV-файла содержат, соответственно, долготу и широту.
Таким образом, мы получили 3 файла, находящиеся в одной директории и имеющие одинаковое название:
- filename.csv
- filename.csvt
- filename.vrt
Теперь открываем в QGIS файл VRT как векторный слой: Слой -> Добавить векторный слой. Убеждаемся, что точки легли куда нужно и проверяем параметры созданных полей: в свойствах слоя вкладка "Поля":
Сохраняем полученный виртуальный слой как shape-файл: Слой -> Сохранить как
Одна из наиболее распространенных процедур использования географических информационных систем - это построение пространственных слоев на основе информации с поля. Независимо от того, представляет ли это координаты, вершины участков или сетку высот, информация обычно поступает в файлах, разделенных запятыми, или в электронных таблицах Excel.
1. Файл географических координат в Excel.
В этом случае я пытаюсь импортировать населенные пункты Республики Куба, которые я загрузил из дива-GIS, который, кстати, является одним из лучших сайтов для загрузки географических данных из любой страны. Как видите, столбцы B и C содержат информацию о широте и долготе в виде географические координаты.
2. Импортируйте файл в QGIS.
Чтобы импортировать координаты файла Excel, выполняется:
Вектор> Инструменты XY> Файл OpenExcele как таблица атрибутов или точечный слой
Если файл сохранен с расширением .xlsx, браузер не будет его отображать, поскольку он фильтрует только файлы с расширением .xls. Это не проблема, мы можем применить старые методы DOS и записать в смену имени фильтр: *. * (звездочка, точка, звездочка) и делаем Enter; это позволит увидеть все файлы в этом месте. Мы могли бы просто написать * .xls, и он отфильтровал бы только файлы с расширением .xls.
Тогда у нас есть панель, в которой мы должны указать, какой столбец равен координате в X, в этом случае мы выберем столбец длины, столбец широты для координаты Y.
И вот оно. Запрос показывает, что слой был сохранен с данными, содержащимися в файле кубинских населенных пунктов, который включает название, широту, долготу, классификацию и административную провинцию.
3. Создавайте многоугольники по координатам.
В случае, если мы хотим не только импортировать вершины, но и создать многоугольник в порядке этих координат, мы можем использовать плагин Points2One. Этот плагин позволяет вам определить, как будет вызываться целевой слой, будет ли то, что мы будем импортировать, строить как линии или как многоугольник.
4. Как импортировать координаты из Excel в другие программы САПР / ГИС.
Как вы помните, мы проделали этот процесс со многими другими программами. Так же просто, как QGIS, мало. Но вот как это сделать с AutoCAD, Микростанция, многообразие ГИС, AutoCAD Civil 3D, Google Earth.
Читайте также: