QGIS – это бесплатная географическая информационная система с открытым исходным кодом. С ее помощью можно создавать, редактировать, визуализировать, анализировать и публиковать гео информацию в операционных системах Windows, Mac, Linux, BSD. Планируется реализация на Android. В программе происходит работа со слоями, где нижним своем, как правило, выступает карта.
На верхние слои можно добавлять маркеры, линии, полигональные фигуры. Дизайн этих элементов регулируется в настройках слоя.
Чтобы быстро войти в суть работы с программой поставим себе небольшую задачу: нарисовать на карте полигон и экспортировать его координаты в один из стандартных форматов геоданных, который потом можно передать в другое приложение или геосервис.
Инсталляция
1. Выберите установщик для своей операционной системы на этой странице:
2. Скачанный exe файл запустите на исполнение.
3. Следуйте рекомендациям установщика, соглашаясь с предложениями по умолчанию. (Установка совсем не быстрая, на компьютере средней мощности занимает минут 20)
1 Уроки QGIS — Интерфейс.
4. После завершения установки следует запускать файл c:OSGeo4W64binqgis-bin.exe
5. Для удобства рекомендуем сделать на него ярлык на Рабочем столе:
— найти этот файл в вашем файловом менеджере;
— схватить его при нажатой правой клавише мыши и перетащить на Рабочий стол;
— после отпускания правой клавиши мыши выбрать пункт «Создать ярлык»;
На рабочем столе появится иконка для запуска приложения QGIS
Настройки
Прежде всего вам нужно обеспечить для программы нижний слой непосредственно с географической картой. Установив и настроив модуль Quick Map Services вы получите доступ к нескольким десяткам поставщиков карт. Итак, что для этого надо сделать:
1. Установите модуль Quick Map Services, для чего:
— меню: Модули > Управление модулями > Не установленные;
— выделите в списке QuickMapServices и нажмите кнопку [Установить модуль];
(На панели инструментов появится 2 кнопки нового модуля)
2. Нажмите кнопку .
3. Выберите пункт Настройки.
4. Перейдите на закладку Загрузить сервисы.
5. Нажмите кнопку [Получить дополнительные источники данных].
6. Закройте окно настроек модуля.
7. Снова нажмите кнопку .
8. Выберите Яндекс > Карта Яндекс. (В центральной области появится карта Яндекса, на панели Слои появится слой Yandex Map)
Рисование полигона
Нарисуйте полигон (замкнутый ломанный контур), для чего:
1. Создайте новый временный слой по кнопке :
— в окне создания слоя дайте ему любое имя;
— выберите Тип геометрии: Polygon / CurvePolygon;
— система координат должна быть EPSG:3395 — WGS 84 / Word Mercator;
(В дальнейшем систему координат можно изменить в настройках слоя, которые открываются по двойному клику на слое, а Тип геометрии поменять нельзя)
QGIS для совсем начинающих. Создание шейп-файлов.
2. При активном новом слое активизируйте режим редактирования слоя по кнопке .
3. Выберите инструмент Добавить полигон .
4. Нарисуйте полигон в виде ломаной замкнутой линии:
— вершины полигона отмечайте кликом левой кнопки мыши;
— чтобы замкнуть полигон совершите двойной клик левой кнопкой мыши;
— чтобы закончить рисовать полигон нажмите правую кнопку мыши;
— чтобы отменить нарисованный, но незаконченный полигон нажмите клавишу Esc.
5. Если вас не удовлетворит стиль (внешний вид) полигона по умолчанию, то стиль можно изменить таким образом:
— откройте настройки слоя по двойному клику мыши;
— выберите закладку Стиль;
— выберите один из предложенных стилей в нижней части закладки, например, outline blue;
— нажмите [Применить], чтобы увидеть изменения стиля без закрытия окна настройки;
— нажмите [OK] чтобы сохранить стиль и закрыть окно настройки.
Должно получиться примерно так, как на скриншоте выше.
Чтобы при рисовании полигона курсор «прилипал» к ближайшей вершине уже нарисованного контура:
— В открытом приложении зайдите в установки через меню: Установки > Параметры > Оцифровка.
— Поставьте флажок в пункте Enable snapping by default.
Сохранение координат полигона
Сохраните координаты полигона в файл, для чего:
1. Кликните на имени слоя на панели Слои правой кнопкой мыши.
2. Выберите Export > Save Features As.
3. Выберите формат Comma Separeted [CSV].
4. Выберите местоположение выходного файла на вашем диске и дайте имя.
5. Снимите флажок Добавить слой в проект.
6. Выберите геометрию AS_WKT в поле GEOMETRY.
На диске будет сохранен файл с расширением csv примерно с таким текстовым содержимым:
WKT, «POLYGON ((4333167.1746828 5945837.55662736,4333171.93513311 5945523.36690631,4333557.53160895 5945565.0208466, 4333557.53160895 5945565.0208466,4333514.68755607 5945848.26764057,4333514.68755607 5945848.26764057,4333167.1746828 5945837.55662736))»
Источник: www.newart.ru
Личная IT-заметка Vady
Скачиваем обе версии QGIS: 2-я и 3-я с сайта https://qgis.org/ru/site/
Почему обе версии? Дело в том, как показывает практика, 3-я версия не отличается стабильностью, но обладает бОльшими возможностями. Поэтому работать будем во 2-й версии. А к 3-й обращаться будем лишь за дополнительными инструментами..
Сразу предупреждаю: сохранить все данные нужно исключительно латиницей, даже в путях к файлам не должно быть никакой кириллицы! Это связано с проблемами написания программ на языке python — разработчики не уделяли должным образом внимания к нелатинским символам.
Устанавливаем обе версии на локальный компьютер. Установка стандартная.
После увидим на рабочем столе 2 папки QGIS разных версий.
Начнем работать с QGIS 2.18. Задача такова: есть спутниковый снимок с городами Велиж и Демидов 1970 года, «весит» 514Мб. Необходимо наложить его отдельным слоем поверх современных спутниковых снимков, да так, чтобы всё совпало — дороги и дома!
В моем примере исходный снимок: файл velizh-demidov.tif.
Запускаем QGIS Desktop 2.18.19 with GRASS 7.4.0
Наше рабочее место выглядит так:
Изначально в программе отсутствует нужный нам функционал OpenLayers (должен быть в меню Интернет). Установим модуль, для этого перейдем Модули -> Управление модулями.
Далее в поиске наберем «openlayers», выберем из списка нужный нам плагин и устанавливаем его.
Закрываем окно «Модули».
Добавим к нашему проекту слой OpenStreetMap (Интернет -> OpenLayer`s plugin -> OpenStreetMap — OpenStreetMap):
С помощью мышки и колеса прокрутки находим нужный участок карты. В моем случае — город Велиж Смоленской области.
Добавим еще один слой карты со спутниковыми снимками Bing (Интернет -> OpenLayer`s plugin -> Bing Maps -> Bing Aerial). Если хотите, можете вместо него Google. Должен сразу предупредить: между спутниковыми снимками разных организаций имеются незначительные расхождения, поэтому для более точного позиционирования слоя с моим снимком будем работать только с одной спутниковой картой.
Обращаем внимание на Панель слоёв (в нижнем левом углу программы). Видим два слоя, слой Bing Aerial находится над слоём OpenStreetMap. Можно перемещать слои, можно отключить/включить.
Теперь будем добавлять свой снимок (назовем: растровое изображение) и привязывать его к карте. По умолчанию возможность привязки растра отключена. Чтобы включить, перейдем к Модули -> Управление модулями. В поиске наберем: «gdal». Должен быть такой результат:
Отмечаем крестиком квадрат напротив «Привязка растров GDAL)». Нажимаем «Закрыть».
Наше рабочее место готово к началу работы. Напоминаю: как имя файла, так и путь к файлу должны быть строго в латинице! Также снимки должны быть заранее обработаны, если что-то надо обрезать или подкорректировать.
Начинаем добавление снимка поверх карты Bing: Растр ->Привязка растров ->Привязка растров.
Откроется немодальное (не мешает работе с главной частью программы) окно «Привязка растров». Нажимаем на кнопку «Открыть растр».
Выбираем нужный файл и открываем.
Далее спросит про систему координат.
Если вы не специалист в вопросах координат, ничего не меняем, сразу нажимаем на кнопку ОК.
Получится такая картина:
Теперь активируем прокрутку (кнопка в виде руки).
Переходим к нужным точкам нашего снимка, которые имеют что-то общее с снимком Bing. Это будут т.н. опорные точки. Как минимум, 4 опорные точки в разных местах расставляем. Для начала расположим окна нашей программы поудобнее, чтобы найти общие места под опорные точки.
Нажимаем на кнопку «Добавить точку».
И расставляем. Сначала нажмем на точку своего снимка. Появится окно «Введите координаты карты». Нажимаем на кнопку «С карты».
Окно «Привязка растров» будет свернуто. Нажимаем на точку на карте Bing, соответствующую выбранной точке на нашем снимке. Получаем координаты для точки, отмеченной на нашем снимке. Нажимаем ОК.
Теперь видим по точке на обеих картах!
Добавим еще несколько опорных точек.
Сохраним добавленные точки. Для этого в окне «Привязка растров» нажимаем Файл -> Сохранить контрольные точки как. По умолчанию предложит в ту же директорию и с именем файла на основе имени файла снимка. Настоятельно рекомендую ничего не менять! В будущем, если вы будете добавлять привязку растров тем же снимком, опорные точки будут автоматически загружены!
Теперь перед запуском настроим параметры трансформации (кнопка с шестеренкой).
Тип трансформации ставим «Проективная». Как показывает моя практика, лучше всего трансформирует «Полиномиальная 3», но она требует, как минимум, 10 опорных точек.
Целевой растр — нажимаем на кнопку напротив, предложит свой вариант именования, соглашаемся с таким вариантом, нажав Сохранить. Пример моих настроек:
Нажимаем ОК, и запускаем, нажав на кнопку «Начать привязку растра».
Ждем окончания обработки. Если снимок довольно крупный, то процесс будет продолжаться довольно долго, в зависимости от мощностей компьютера.
Наслаждаемся результатом:
Можно скрыть верхний слой с нашим снимком в панели слоёв (слева в нижней части программы), чтобы сравнить полученные результаты. У меня получились точки-в-точки!
Но! Если максимально отдалить снимок, то по краям можно заметить нестыковки с данными карты Bing.
Для решения данной проблемы, необходимо добавить дополнительные опорные точки по всему периметру снимка. И желательно не только по периметру, но и внутри. Чем больше — тем точнее. И не забудьте переключить тип трансформации на Полиномиальная 3!
Пример моей окончательной работы после размещения 56 опорных точек:
Спасибо за внимание! Надеюсь, моя статья будет полезна новичкам.
Как опубликовать такой снимок в интернете, причем не тупо одним снимком целиком, а, как и полагается достойным картографическим сервисам, с пирамидой слоёв и разбивкой целой картинки на множество квадратиков — в следующей статье!
Источник: vady85.blogspot.com
QGIS – картография, доступная каждому
В статье рассматриваются два ознакомительных примера работы с ГИС. Представлен также способ взаимодействия системы с языком программирования Python для более детального анализа карты и местности.
Основной текст
Сегодня QGIS (ранее известная как Quantum GIS) – это свободная геоинформационная система. Данная геосистема предназначена для создания и редактирования данных, производства карт и выполнения аналитических операций. QGIS активно поддерживается международным сообществом (Россия представлена командой NextGIS).
QGIS, позволяет совершать следующие действия:
- Просмотр данных,
- Исследование данных и компоновка карт,
- Управление данными (создание, редактирование и экспорт),
- Анализ данных,
- Экспорт карт в сети Интернет,
- Расширение функциональности QGIS с помощью модулей.
QGIS работает в Windows и в большинстве Unix платформ (включая Mac OS), поддерживает множество векторных и растровых форматов и баз данных, а также имеет богатый набор встроенных инструментов. Для установки перейдем на сайт разработчиков (рисунок 1), нажмем на кнопку «Загрузить сейчас» и выберем установочный пакет под свою систему. Радует то, что никаких дополнительных затруднений установка не вызывает – выбираешь платформу, скачиваешь и устанавливаешь через обычный установщик.
Теперь перейдем к работе с QGIS.
На примере рассмотрим, как в QGIS выгрузить файлы зданий, улиц и парков. Для решения это задачи необходимо установить в QGIS два модуля: QuickMapServices – для получения базовой карты и QuickOSM – для выгрузки данных.
Добавление в проект базовой карты OpenStreetMap. Для этого ищем заголовок «Интернет» с выпадающим меню. В нем выбираем уже установленный модуль QuickMapServices и далее «OSM Standard». Результат вышеперечисленных манипуляций представлен на рисунке 2.
Работа с модулем QuickOSM.
На карте-подложке выбираем интересующий нас участок (например, рисунок 3). На панели выбираем и нажимаем значок «лупа» для перехода в окно запросов QuickOSM. В этом окне в поле «Ключ» из выпадающего списка берем всё, что необходимо для выгрузки. В данном случае возьмем следующие ключи: «building», «highway», «natural».
После чего выполним запрос и посмотрим какой результат был получен, предварительно отключив слой подложки в меню слева (рисунок 4).
Также следует отметить, что полученные слои необходимо сохранить, иначе они будут удалены после закрытия проекта. Для того, чтобы сохранить слой необходимо в меню слева нажать на кнопку (рисунок 5) и появившемся меню выбрать имя, формат и расположение для сохранения слоя.
Помимо различных опций по настройке каждого слоя, в QGIS имеется атрибутивная таблица слоя, где можно узнать id, полный адрес, тип, количество этажей и т.п., а также информацию об организациях, которые расположены в конкретных зданиях с указанием номера телефона, сайта и почтовым адресом (рисунок 6).
Применение языка программирования Python в QGIS.
Рассмотрим работу со слоем и выборкой объектов по выражению на примере загруженного слоя административно-территориального деления Российской Федерации, которая имеет свою атрибутивную таблицу (рисунок 7). В таблице имеются несколько столбцов, которые заполнены как на кириллице, так и на латинице. Открыть консоль Python в QGIS можно нажав на кнопку:
Чтобы начать работу с используемым слоем в первую очередь необходимо записать его в переменную, в данном случае в переменную layer:
layer = iface.activeLayer()
и если вызвать переменную layer, то получим сообщение о слое:
Можно также посмотреть какими свойствами обладает слой:
layer.name()
с помощью этой строчки выводится имя слоя:
У объектов слоя также есть метод type, который выводит следующее сообщение:
Другие методы и свойства можно посмотреть, применив функцию dir к объекту layer. Тем самым получим список методов и свойств, которые применимы к объекту QgsVectorLayer.
Чтобы получить все объекты из таблицы атрибутов слоя можно воспользоваться функцией getFeatures, для этого создадим новую переменную:
features = layer.getFeatures()
Следующим действием пробежимся по итерируемой переменной features:
for f in features: attrs = f.attributes() print(attrs)
и получим вывод на экран атрибутов:
С помощью консоли Python можно также выделять все объекты слоя с помощью метода selectAll, а чтобы снять выделение — removeSelection:
layer.selectAll() layer.removeSelection()
соответственно объекты на слое изменят свой цвет (рисунок 8-9):
Чтобы выбрать объекты по конкретному выражению внутри слоя используется метод selectByExpression, параметрами в данном методе является текстовое выражение, где в кавычках ставится имя столбца и после знака равенства значение внутри данного столбца:
layer.selectByExpression(‘»engtype_1″ = ‘Republic»)
на слое после применения строки кода выделяются объекты республики Российской Федерации (рисунок 10):
Можно поменять цвет выборки, если это необходимо, для этого применим следующую строчку кода:
iface.mapCanvas().setSelectionColor( QColor(«green») )
в результате получим:
Создадим новую переменную selected и выполним следующий код, который позволит вывести на экран все республики, которые выделены в данный момент на слое:
selected = layer.selectedFeatures() for sF in selected: print(sF.attributes()[6])
результатом выполнения кода будет:
В статье была рассмотрена малая часть возможностей языка программирования Python для работы с QGIS, а именно была проведена обработка и визуализация данных с использованием карты.
В заключение хочется отметить, что статья написана и предназначена для знакомства с данным видом ГИС. Если более детально изучить способы работы с программой, то её в полной мере можно применять в различных проектах, например: от анализа урожая со снимков дрона до подбора оптимального месторасположения нового офиса. Стоит также учитывать тот факт, что программа хорошо взаимодействует с Python и SQL.
QGIS обладает очень широким спектром возможностей, ознакомиться с которыми можно по следующей ссылке.
Источник: newtechaudit.ru