Компьютерные технологии в экологии и природопользовании

Преподаватель: Иванов Станислав Дмитриевич, f0ma@ifz.ru

Теоретический материал

Практические работы

 1. Создние векторных слоев в QGis:

  • Загрузить в QGis геопривязанный растр: вариант 1, вариант 2, вариант 3, вариант 4, вариант 5.
  • Создать 3 векторных слоя (точки, линии и полигоны) и сохранить их в формате .shp;
  • Изобразить на этих слоях основные видимые на снимке объекты соответствующего типа (всего не менее 30 объектов).
  • Для этих слоев задать свойствами: для точек — размер и подпись из таблицы атрибутов, для линий цвет и толщину, для полигонов — цвет и подпись на основе значений из таблицы атрибутов.
2. Интерполяция, контуры, привязка растров, экспорт карты:
3. Основы программирования на Python3
  • Реализовать на Python две стандартные программы для начинающих: «Осталось N бутылок молока» (программа запрашивает у пользователя число, а затем, в цикле, выводит сообщения "Осталось ? бутылок молока." и "Выпили одну.", когда бутылок не остается, выводит сообщение "Больше бутылок не осталось" и завершает работу) и «Угадай число» (Программа выбирает случайное число и предлагает пользователю его угадать, пользователь вводит число, а программа сообщает — больше оно искомого или нет. Если пользователь угадывает, то программа завершает работу). Методы в помощь: input() - ввод пользователя, random.randint(a,b) - случайное число от a до b.
  • Написать программу, которая с помощью методов пакета turtle рисует одно из следующих изображений: Вариант 1, Вариант 2, Вариант 3 (угол 144 градуса), Вариант 4. Методы в помощь: up(), down(), left(a), right(a), goto(x,y), forward(l), done()
  • Справочный материал в помощь: http://python.ifz.ru/doku.php?id=start
 
4. Обработка данных средствами Python3
 

Необходимое программное обеспечение

 
QGis 3.4 (3.2 тоже подойдет, а вот 2.18 уже нет): https://www.qgis.org/ru/site/forusers/download.html
 
WinPython 3.7 (не Zero, а полноценный WinPython, 3.6 тоже подойдет): https://sourceforge.net/projects/winpython/files/WinPython_3.7/3.7.0.2/
 

Известные проблемы QGis

- При открытии проекта в нем нет ни одного слоя.

Для сохранения проекта используйте формат QGS (Проект QGIS) вместо QGZ.

- Не могу выполнить интерполяцию CSV слоя, вылетает ошибка IndexError.

Перед тем, как выполнить интерполяцию, экспортируйте CSV слой как SHP (ПКМ на слое, Экспорт, Save Features As..., Формат: Shape-файл ESRI, Добавить слой в проект) и выполняйте экстраполяцию уже нового SHP слоя.

- Не могу найти кнопку для добавления XYZ Tiles слоя.

Ее спрятали: Главное меню -> Слой -> Data Source Manager. В панели слева выбираем Браузер, Находим в списке справа XYZ Tiles, ПКМ на нем -> Создать соединение, указываем имя и адрес (см.ю ниже XYZ Tiles). После этого раскрываем пункт XYZ Tiles и перетаскиваем созданное соединение в слои нашего проекта.

Дополнительные материалы

XYZ Tiles слои (слои из Интернета)

OpenStreetMap: http://tile.openstreetmap.org/{z}/{x}/{y}.png
OSMCycleMap: http://tile.thunderforest.com/cycle/{z}/{x}/{y}.png
Esri Satellite: https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}
Esri Streets: https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}
Esri Topo: https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}
Google Satellite: https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}
Google Streets: https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}

Больше слоев по ссылке: https://github.com/nextgis/quickmapservices/search?l=INI&q=%5Btms%5D

Краткая справка по выражениям QGis

Язык выражений в QGis имеет много общего с языком электронных таблиц, поэтому будем рассматривать их по аналогии, но в отлично к таблиц в QGis мы обращаемся только к атрибутум текущей за

Задача QGis Электронные таблицы
Значение из ячейки  "field_name"  =A3
Сумма значений  "field_name" +  "other_field_name"  =A3+B3
Соединение строк  concat("height", ' метров')  =СЦЕПИТЬ(A3;" метров")
Значение по условию  if("height" > 100, 'низко', "height")  =ЕСЛИ(A3>100; "низко"; A3)
Длинна линии  $length  
Площадь полигона  $area  
Периметр полигона  $perimeter  
Координаты  $x и $y  

Выражения в QGis могут использоваться для вычисления значения и как условия отбора. В этом случае выражение будет аналогично первому аргументу функции if.

Большая справка по выражениям в QGis: https://docs.qgis.org/testing/en/docs/user_manual/working_with_vector/expression.html

Полезные модули (plugins) QGis

* — входят в базовую поставку QGis, остальные устанавливаются в менеджере модулей.

Видеоуроки по QGIS

(RU) https://www.youtube.com/playlist?list=PLmWhhM4ExaEW-DVZwW3YyMOh_vBphBdBl

Справка

(EN) https://www.qgis.org/
(EN) Официальный учебный курс: https://docs.qgis.org/2.8/en/docs/training_manual/index.html
(EN/RU) http://www.qgistutorials.com/
(RU) http://gis-lab.info/
(EN) https://gis.stackexchange.com/

Краудсорсинговые картографические проекты
https://www.openstreetmap.org/
http://wikimapia.org/
https://n.maps.yandex.ru/

Где брать космоснимки
(RU) https://scihub.copernicus.eu/ [регистрация]
(RU) http://www.geogr.msu.ru/science/aero/acenter/int_sem1/int_sem1.htm
(EN) http://glcfapp.glcf.umd.edu:8080/esdi/index.jsp
(EN) https://earthexplorer.usgs.gov/ [регистрация]
(EN) https://landsatlook.usgs.gov/viewer.html
(RU) http://catalog.sovzond.ru/ [регистрация, платно]
(RU) http://search.kosmosnimki.ru/ [регистрация, платно]

Карты
Номенклатура карт генштаба: http://gpsmapsearch.com/osm/nom.htm
Загрузка карт генштаба: http://loadmap.net/
Старые карты Москвы: http://oldmoscowmaps.ru/