Важно

Translation is a community effort you can join. This page is currently translated at 89.19%.

8.4. Lesson: Supplementary Exercise

В этом уроке вы пройдете полный анализ GIS в QGIS.

Примечание

Содержание урока разработано Linfiniti Consulting (ЮАР) и Siddique Motala (Технологический университет Кейп-Пенинсула).

8.4.1. Постановка задачи

Перед вами поставлена задача найти районы на полуострове Кейп и вокруг него, которые являются подходящей средой обитания для редких видов растений финбос. Протяженность области вашего исследования охватывает Кейптаун и полуостров Кейп между Мелкбосстрандом на севере и Стрэндом на юге. Ботаники предоставили вам следующие предпочтения, присущие рассматриваемым видам растений:

  • Растение растет на склонах восточного направления.

  • Растение растет на склонах с уклоном от 15% до 60%.

  • Растение растет в местности с общим годовым количеством осадков > 1000 мм.

  • Растение можно найти только на расстоянии не менее 250 м от любого человеческого поселения.

  • Площадь растительности, на которой растение встречается, должна быть не менее 6000 ㎡.

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

8.4.2. Описание решения

Данные для этого упражнения можно найти в папке exercise_data/more_analysis.

Вам надо найти четыре подходящих участка, которые находятся ближе всего к Кейптаунскому университету.

Для того, чтобы решить эту задачу, необходимо сделать следующее:

  1. Analyzing a DEM raster layer to find the east facing slopes and the slopes with the correct gradients

  2. Analyzing a rainfall raster layer to find the areas with the correct amount of rainfall

  3. Analyzing a zoning vector layer to find areas that are away from human settlement and are of the correct size

8.4.3. Follow Along: Setting up the Map

  1. Надо кликнуть на кнопку projectionEnabled Current CRS в правом нижнем углу экрана. Под вкладкой CRS появившегося диалогового окна используйте инструмент «Фильтр» для поиска «33S». Выберите запись WGS 84 / UTM zone 33S (с кодом EPSG 32733).

  2. Кликните OK.

    ../../../_images/crs.png

    Рис. 8.3 Setting up the CRS

  3. Save the project file by clicking on the fileSave Save Project toolbar button, or use the Project ► Save As… menu item.

    Сохраните его в новом каталоге под названием Rasterprac, который вы должны создать где-нибудь на своем компьютере. В этом каталоге вы должны также сохранять все создаваемые вами слои. Сохраните проект как your_name_fynbos.qgs.

8.4.4. Загрузка данных на карту

Для того, чтобы обработать данные, вам надо загрузить необходимые слои (названия улиц, зоны, осадки, ЦМР, районы) на полотно карты.

Для векторов…

  1. Кликните на кнопку dataSourceManager Open Data Source Manager на панели инструментов диспетчера источников данных и активируйте вкладку addOgrLayer Vector в открывшемся диалоговом окне или воспользуйтесь кнопкой меню Layer ► Add Layer ► addOgrLayer Add Vector Layer….

  2. Убедитесь, что выбран radioButtonOn File.

  3. Кликните на кнопку кнопка для просмотра векторных наборов данных.

  4. В появившемся диалоговом окне вам надо открыть каталог exercise_data/more_analysis/Streets.

  5. Выберите файл Street_Names_UTM33S.shp.

  6. Кликните на кнопку Open.

    Диалоговое окно закроется и появится исходное диалоговое окно с указанием пути к файлу в текстовом поле рядом с Vector dataset(s). Таким образом вы сможете убедиться, что выбран правильный файл. Можно также ввести путь к файлу в этом поле вручную, если захотите.

  7. Кликните на кнопку Add. Векторный слой будет загружен на вашу карту. Цвет карты будет автоматически присвоен. Вы измените его позже.

  8. Переименуйте слой на Streets.

    1. Кликните на его правой кнопкой мыши в панели Layers по умолчанию панель в левой части экрана).

    2. Кликните на кнопку Rename в появившемся диалоговом окне и переименуйте его, нажав на кнопку Enter когда закончите.

  9. Повторите процесс добавления вектора, но на этот раз выберите файл Generalised_Zoning_Dissolve_UTM33S.shp в каталоге Zoning.

  10. Переименуйте его на Zoning.

  11. Также загрузите векторный слой admin_boundaries/Western_Cape_UTM33S.shp в вашу карту.

  12. Переименуйте его на Districts.

Для растров…

  1. Кликни на кнопку dataSourceManager Open Data Source Manager и активируйте панель  addRasterLayer Raster в открывшемся диалоговом окне или воспользуйтесь кнопкой меню Layer ► Add Layer ► addRasterLayer Add Raster Layer….

  2. Убедитесь, что выбран radioButtonOn File.

  3. Перейдите к соответствующему файлу, выберите его и кликните на кнопку Open.

  4. Проделайте то же самое для каждого из следующих двух растровых файлов, DEM/SRTM.tif и rainfall/reprojected/rainfall.tif.

  5. Переименуйте растр SRTM на DEM, а растр осадков/rainfall на Rainfall (с заглавной буквы).

8.4.5. Изменение порядка слоев

Кликните и перетащите слои вверх и вниз в панели Layers для того, чтобы изменить порядок их отображения на карте, чтобы вы могли видеть как можно больше слоев.

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

8.4.6. Найти правильные районы

С учетом вышеупомянутой местности исследования нам необходимо ограничиться следующими районами:

  • Bellville

  • Cape

  • Goodwood

  • Kuils River

  • Mitchells Plain

  • Simon Town

  • Wynberg

  1. Кликните правой кнопкой мыши на слой Districts в панели Layers.

  2. В появившемся меню выберите пункт меню Filter…. Появится диалоговое окно Query Builder.

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

    1. В списке Fields дважды кликните на поле NAME_2, чтобы оно появилось в SQL where clause текстовом поле ниже.

    2. Кликните на кнопку IN чтобы добавить его к SQL-запросу.

    3. Откройте скобки.

    4. Кликните на кнопку All под (в настоящее время пустая) списком Values.

      После небольшой паузы он заполнит список Values со значениями выбранного поля (NAME_2).

    5. Дважды кликните на значение Bellville в списке Values чтобы добавить его в запрос SQL.

    6. Добавьте запятую и дважды кликните, чтобы добавить район Cape.

    7. Повторите предыдущий шаг для остальных районов.

    8. Закройте скобки.

    ../../../_images/query_builder.png

    Рис. 8.4 Query builder

    Окончательный запрос должен быть таким (порядок расположения районов в скобках не имеет значения):

    "NAME_2" in ('Bellville', 'Cape', 'Goodwood', 'Kuils River',
                 'Mitchells Plain', 'Simon Town', 'Wynberg')
    

    Примечание

    Вы также можете использовать оператор OR; запрос будет выглядеть так:

    "NAME_2" = 'Bellville' OR "NAME_2" = 'Cape' OR
    "NAME_2" = 'Goodwood' OR "NAME_2" = 'Kuils River' OR
    "NAME_2" = 'Mitchells Plain' OR "NAME_2" = 'Simon Town' OR
    "NAME_2" = 'Wynberg'
    
    1. Кликните на OK дважды.

      Районы, показанные на вашей карте, теперь ограничены теми, которые указаны в списке выше.

8.4.7. Обрезка растров

Теперь, когда вы создали интересующий вас район, вы можете обрезать растры.

  1. Надо открыть диалоговое окно обрезки, выбрав пункт меню Raster ► Extraction ► Clip Raster by Mask Layer…

  2. В раскрывающемся списке Input layer выберите слой выберите слой DEM.

  3. В раскрывающемся списке Mask layer dвыберите слой Districts.

  4. Прокрутите вниз и укажите выходное местоположение в тексте поля Clipped (mask), кликнув на кнопку и выбрав Save to File…

    1. Перейдите в каталог Rasterprac,

    2. Введите имя файла - DEM_clipped.tif,

    3. Сохраните.

  5. Убедись в том, что галочка checkbox Open output file after running algorithm отмечена.

  6. Кликните на Run.

    После завершения операции обрезки оставьте диалоговое окно Clip Raster by Mask Layer открытым для того, чтобы можно было повторно использовать местность обрезки.

  7. Выберите растровый слой Rainfall в раскрывающемся списке Input layer и сохраните выход/результат как Rainfall_clipped.tif.

  8. Не меняйте другие параметры. Оставьте все как есть и кликните на Run.

  9. После завершения второй операции обрезки вы можете закрыть диалоговое окно Clip Raster by Mask Layer.

  10. Сохраните карту.

    ../../../_images/clipped_r_filtered_v_reordered_l.png

    Рис. 8.5 Map view with filtered vector, clipped raster and reordered layers

Выровнять растры

Для нашего анализа нам нужно, чтобы растры имели одинаковые CRS и были выровнены.

Сначала мы меняем разрешение наших данных по осадкам на 30 метров (размер пикселя):

  1. In the Layers panel, ensure that Rainfall_clipped is the active layer (i.e., it is highlighted by having been clicked on)

  2. Click on the Raster ► Projections ► Warp (Reproject)… menu item to open the Warp (Reproject) dialog

  3. Under Resampling method to use, select Bilinear (2x2 kernel) from the drop down menu

  4. Set Output file resolution in target georeferenced units to 30

  5. Scroll down to Reprojected and save the output in your rainfall/reprojected directory as Rainfall30.tif.

  6. Убедись в том, что галочка checkbox Open output file after running algorithm отмечена.

    ../../../_images/wrap_rainfall.png

    Рис. 8.6 Warp (Reproject) Rainfall_clipped

Затем выравниваем ЦМР:

  1. In the Layers panel, ensure that DEM_clipped is the active layer (i.e., it is highlighted by having been clicked on)

  2. Click on the Raster ► Projections ► Warp (Reproject)… menu item to open the Warp (Reproject) dialog

  3. Under Target CRS, select Project CRS: EPSG:32733 - WGS 84 / UTM zone 33S from the drop down menu

  4. Under Resampling method to use, select Bilinear (2x2 kernel) from the drop down menu

  5. Set Output file resolution in target georeferenced units to 30

  6. Scroll down to Georeferenced extents of output file to be created. Use the button to the right of the text box to select Calculate from Layer ► Rainfall30.

  7. Scroll down to Reprojected and save the output in your DEM/reprojected directory as DEM30.tif.

  8. Убедись в том, что галочка checkbox Open output file after running algorithm отмечена.

Чтобы соответствующим образом увидеть, что происходит, необходимо изменить условные обозначения слоев.

8.4.8. Изменение условных обозначений векторных слоев

  1. В панели Layers кликните правой кнопкой мыши на слой Streets.

  2. Выберите Properties из появившегося меню.

  3. Перейдите на вкладку Symbology в появившемся диалоговом окне.

  4. Click on the Line entry in the top widget

  5. Выберите условное обозначение в списке ниже или настройте новый (цвет, прозрачность, …).

  6. Кликните на кнопку OK для того, чтобы закрыть диалоговой окно Layer Properties. Это изменит визуализацию слоя Streets.

  7. Выполните аналогичный процесс в отношении слоя Zoning и выберите для него подходящий цвет.

8.4.9. Изменение условных обозначений растровых слоев

Условные обозначения растрового слоя несколько отличаются.

  1. Надо открыть диалоговое окно Properties для растрового слоя Rainfall30.

  2. Перейдите на вкладку Symbology. Вы заметите, что это диалоговое окно сильно отличается от той, используемой для векторных слоев.

  3. Расширьте Min/Max Value Settings.

  4. Убедитесь, что выбрана кнопка Mean +/- standard deviation.

  5. Убедитесь, что значение в соответствующем поле равно 2.00.

  6. В отношении Contrast enhancement убедитесь, что там указано Stretch to MinMax.

  7. Color gradient поменяйте на White to Black.

  8. Кликните OK.

    ../../../_images/raster_symbology.png

    Рис. 8.7 Raster symbology

    Растр Rainfall30, если он виден, должен поменять цвета, и вы должны увидеть разные значения яркости для каждого пикселя.

  9. Повторите этот процесс для слоя DEM30, но настройте стандартные отклонения, используемые для растяжения, на 4.00.

8.4.10. Вычистка карты

  1. Удалите исходные слои Rainfall и DEM, а также Rainfall_clipped и DEM_clipped в панели Layers:

    • Кликните эти слои правой кнопкой мыши и выберите Remove.

      Примечание

      Это не приведет к удалению данных с вашего устройства хранения, а просто уберет их с вашей карты.

  2. Сохраните карту.

  3. Теперь вы можете скрыть векторные слои, сняв флажок с ячейки рядом с ними в панели Layers. Это ускорит выдачу карты и сэкономит вам время.

8.4.11. Создание отмывки

Чтобы создать отмывку вам надо будет использовать алгоритм, который был написан для этой цели.

  1. В панели Layers убедитесь, что DEM30 является активным слоем (т. е. выделено щелчком).

  2. Надо кликнуть на меню Raster ► Analysis ► Hillshade… чтобы открыть диалоговое окно Hillshade.

  3. Прокрутите вниз до Hillshade и сохраните результат/выход в вашем каталоге Rasterprac как hillshade.tif.

  4. Убедись в том, что галочка checkbox Open output file after running algorithm отмечена.

  5. Кликните на Run.

  6. Подождите, пока он закончит обработку.

    ../../../_images/hillshade.png

    Рис. 8.8 Raster analysis Hillshade

Новый слой hillshade появляется в панели Layers.

  1. Кликните правой кнопкой мыши на слой hillshade в панели Layers и вызовите диалоговое окно Properties.

  2. Кликни на вкладку Transparency и настройте ползунок Global Opacity на 20%.

  3. Кликните OK.

  4. Обратите внимание на эффект, когда прозрачная отмывка накладывается на обрезанный ЦМР. Вам придется, возможно, изменить порядок ваших слоев или выключить слой Rainfall30, чтобы увидеть эффект.

8.4.12. Slope

  1. Кликни на пункт меню Raster ► Analysis ► Slope… для того, чтобы открыть алгоритм Slope.

  2. Выберите DEM30 в качестве Input layer.

  3. Отметьте галочку checkbox Slope expressed as percent instead of degrees. Уклон может быть выражен в различных единицах (процентах или градусах). Наши критерии предполагают, что наше растение растет на склонах с уклоном от 15% до 60%. Поэтому нам нужно убедиться, что наши данные об уклоне выражены в процентах.

  4. Укажите соответствующее имя файла и расположение для вашего выхода/результата.

  5. Убедись в том, что галочка checkbox Open output file after running algorithm отмечена.

  6. Кликните на Run.

    ../../../_images/slope.png

    Рис. 8.9 Raster analysis Slope

Изображение уклона было вычислено и добавлено на карту. Как обычно, он отображается в оттенках серого. Измените условное обозначение на более красочный свет:

  1. Откройте диалоговое окно слоя Properties (как обычно через меню правого щелчка слоя).

  2. Кликни на вкладку Symbology.

  3. Там где сказано Singleband gray (в раскрывающемся меню Render type) измените его на Singleband pseudocolor.

  4. Выберите Mean +/- standard deviation x для Min / Max Value Settings со значением 2.0.

  5. Выберите подходящий Color ramp.

  6. Кликните на Run.

8.4.13. Try Yourself: Aspect

Примените тот же подход, что и вычисления уклона, выбрав Aspect… в меню Raster ► Analysis.

Помните, что надо периодически сохранять проект.

8.4.14. Пере-классификация растров

  1. Выберите Raster ► Raster calculator…

  2. Укажите свой каталог Rasterprac как место для Output layer (кликни на кнопку ) и сохраните как slope15_60.tif.

  3. Убедитесь, что ячейка Open output file after running algorithm отмечена.

    В списке Raster bands слева вы увидите все растровые слои в ваше панели Layers. Если ваш слой Уклона называется slope, он будет указан как slope@1. Обозначение полосы 1 растра уклонов.

  4. Уклон должен быть между 15 и 60 градусами.

    Используя элементы списка и кнопки в интерфейсе, надо создать следующее выражение:

    (slope@1 > 15) AND (slope@1 < 60)
    
  5. Настройте поле Output layer в соответствующее место и имя файла.

  6. Кликните на кнопку Run.

    ../../../_images/raster_calculator_slope.png

    Рис. 8.10 Raster calculator Slope

Теперь найдите правильный аспект (направленный на восток: между 45 и 135 градусами), используя тот же подход.

  1. Постройте следующее выражение:

    (aspect@1 > 45) AND (aspect@1 < 135)
    

Вы поймете, что у вас все получилось, когда все уклоны, направленные на восток, станут белыми в выходном растре (как если бы они были освещены утренним солнечным светом).

Вам надо найти определить правильное количество осадков (больше, чем 1000 мм) таким же образом. Используйте следующее выражение:

Rainfall30@1 > 1000

Теперь, когда у вас есть все три критерия в отдельных растрах, вам нужно объединить их, чтобы определить, какие участки соответствуют всем критериям. Для этого растры надо умножить друг на друга. Когда это происходит, все перекрывающиеся пиксели со значением 1 сохранят значение 1 (т.е. местоположение соответствует критериям), но если пиксель в любом из трех растров имеет значение 0 (т.е. местоположение не соответствует критериям), тогда оно будет 0 в результате. Таким образом, результат будет содержать только перекрывающиеся участки, которые соответствуют всем необходимым критериям.

8.4.15. Объединение растров

  1. Надо открыть Калькулятор растра (Raster ► Raster Calculator…).

  2. Создайте следующее выражение (с соответствующими названиями ваших слоев):

    [aspect45_135] * [slope15_60] * [rainfall_1000]
    
  3. Настройте выходное местоположение н каталог Rasterprac.

  4. Назовите выходной растр aspect_slope_rainfall.tif.

  5. Убедитесь, что отмечена галочка checkbox Open output file after running algorithm.

  6. Кликните на Run.

В новом растре теперь правильно отображаются участки, соответствующие всем трем критериям.

Сохраните проект..

../../../_images/aspect_slope_rainfall.png

Рис. 8.11 Map view where all three criteria are satisfied

Следующий критерий, в отношении которого должно быть обеспечено соответствие, это то, что участок должен находиться на расстоянии в 250 м от городской застройки. Мы обеспечим соответствие этому требованию тем, что вычисляемые нами участки будут находиться в сельской местности и в 250 м и более от края участка. Поэтому, нам надо сначала найти список всех сельских населённых пунктов.

8.4.16. Поиск сельских населенных пунктов

  1. Надо скрыть все слои в панели Layers.

  2. Покажите векторный слой Zoning.

  3. Кликните на него правой кнопкой мыши и откройте диалоговое окно Attribute Table. Обратите внимание, что там есть множество различных способов зонирования земли. Нам надо изолировать сельские населенные пункты. Закройте таблицу атрибутов/атрибутов.

  4. Кликните правой кнопкой мыши на слой Zoning и выберите Filter… для того, чтобы вызвать диалоговое окно Query Builder.

  5. Создайте следующий запрос:

    "Gen_Zoning" = 'Rural'
    

    См. предыдущие инструкции, если вы где-то застрянете.

  6. Надо кликнуть на кнопку OK для того, чтобы закрыть диалоговое окно Query Builder. Запрос должен вернуть одну функцию.

    ../../../_images/query_builder_zoning.png

    Query builder Zoning

Вы увидите сельские полигоны в слое Zoning. Вам надо их сохранить.

  1. В меню после нажатия правой кнопки мыши на Zoning, надо выбрать Export ► Save Features As….

  2. Сохраните свой слой внутри каталога Rasterprac.

  3. Назовите выходной файл rural.shp.

  4. Кликните OK.

  5. Сохраните проект.

Теперь надо исключить участки, которые находятся на расстоянии 250m от окраины сельской местности. Это можно сделать, создав отрицательный буфер, как описано ниже.

8.4.17. Создание отрицательного буфера

  1. Кликните на пункт меню Vector ► Geoprocessing Tools ► Buffer…

  2. В диалоговом окне, которое появится, выберите слой rural в качестве входного векторного слоя (галочка в Selected features only не должна быть активной).

  3. Настройте Distance на -250. Отрицательное значение означает, что буфер будет внутренним. Убедитесь, что в раскрывающемся меню метры указаны в качестве единиц измерения.

  4. Отметьте галочку checkbox Dissolve result.

  5. В Buffered, поместите выходной файл в каталоге в Rasterprac и назовите его rural_buffer.shp.

  6. Кликните на кнопку Save.

  7. Кликните на кнопку Run и дождитесь завершения обработки.

  8. Закройте диалоговое окно Buffer.

    Убедитесь, что ваш буфер отработал правильно, посмотрев как отличается слой rural_buffer от слоя rural. Вам, скорее всего, надо будет изменить порядок изображения, чтобы увидеть разницу.

  9. Уберите слой rural.

  10. Сохраните проект.

    ../../../_images/rural_buffer.png

    Рис. 8.12 Map view with rural buffer

Вам теперь необходимо объединить ваш векторный свой rural_buffer с растром aspect_slope_rainfall. Для того, чтобы объединить их, нам надо изменить формат данных одного из слоев. В этом случае вам надо векторизовать растр, так как векторные слои более удобны, когда мы хотим вычислить площади.

8.4.18. Векторизация растра

  1. Надо кликнуть на пункт меню Raster ► Conversion ► Polygonize (Raster to Vector)…

  2. Выберите растр aspect_slope_rainfall как Input layer.

  3. Настройте Name of the field to create на suitable (название поля по умолчанию DN - Данные цифрового номера).

  4. Сохраните выход. Внутри Vectorized выберите Save file as. Установите местоположение в Rasterprac и назовите файл aspect_slope_rainfall_all.shp.

  5. Убедитесь, что отмечена галочка checkbox Open output file after running algorithm.

  6. Кликните на Run.

  7. Закройте диалоговое окно после завершения обработки.

    ../../../_images/vectorized.png

    Рис. 8.13 Raster to Vector

Все участки растра были векторизованы и вам надо выбрать только те участки, которые имеют значение 1 в поле suitable (Цифровой номер).

  1. Откройте диалоговое окно Query Builder (кликните правой кнопкой мыши - Filter…) для нового векторного слоя.

  2. Создайте этот запрос:

    "suitable" = 1
    
  3. Кликните OK.

  4. After you are sure the query is complete (and only the areas that meet all three criteria, i.e. with a value of 1 are visible), create a new vector file from the results, using the Export ► Save Features As… in the layer’s right-click menu

  5. Сохраните файл в каталоге Rasterprac.

  6. Назовите файл aspect_slope_rainfall_1.shp.

  7. Уберите слой aspect_slope_rainfall_all с вашей карты.

  8. Сохраните свой проект.

При использовании алгоритма для векторизации растра, иногда алгоритм выдает так называемые «неверные геометрии», то есть пустые полигоны или полигоны с ошибками, которые трудно проанализировать в будущем. Нам надо использовать инструмент “Fix Geometry” (исправление геометрии).

8.4.19. Исправление геометрии

  1. В Processing Toolbox надо искать «Fix geometries» и выполнить его Execute….

  2. Для Input layer надо выбрать aspect_slope_rainfall_1.

  3. Под Fixed geometries надо выбрать Save file as и сохраните выход в Rasterprac и назвать файл fixed_aspect_slope_rainfall.shp.

  4. Убедитесь, что отмечена галочка checkbox Open output file after running algorithm.

  5. Кликните на Run.

  6. Закройте диалоговое окно после завершения обработки.

Вы векторизовали растр и исправили геометрию и вы теперь сможете объединить критерии аспекта, уклона и осадков с критериями расстояния от населенных пунктов, путем определения пересечения слоя fixed_aspect_slope_rainfall и слоя rural_buffer.

8.4.20. Определение пересечения векторов

  1. Кликните в пункт меню Vector ► Geoprocessing Tools ► Intersection…

  2. В диалоговом окне, которое появится, выберите слой rural_buffer как Input layer.

  3. Для Overlay layer выберите слой fixed_aspect_slope_rainfall.

  4. В Intersection поместите выходной файл в каталоге Rasterprac.

  5. Назовите выходной файл rural_aspect_slope_rainfall.shp.

  6. Кликните на кнопку Save.

  7. Кликните на кнопку Run и дождитесь завершения обработки.

  8. Закройте диалоговое окно Intersection.

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

  9. Сохраните проект.

Следующим критерием в списке является то, что размер участка должен быть больше, чем 6000 ㎡. Вам надо вычислить площади полигона для того, чтобы определить участки, которые имеют подходящий размер для этого проекта.

8.4.21. Вычисление площади для каждого полигона (многоугольника)

  1. Откройте меню нового векторного слоя через нажатие правой кнопки мыши.

  2. Выберите Open attribute table.

  3. Кликните на кнопку toggleEditing Toggle editing в верхнем левом углу таблицы или кликните Ctrl+e.

  4. Кликните на кнопку calculateField Open field calculator в панели инструментов в верхней части таблицы или кликните Ctrl+i.

  5. В появившемся диалоговом окне убедитесь, что отмечена галочка Create new field и настройте Output field name на area. Тип поля выхода должен быть десятичным числом (действительным). Настройте Precision на 1 (одно десятичное).

  6. В Expression наберите:

    $area
    

    Это означает, что калькулятор поля вычислит площадь каждого полигона в векторном слое и затем заполнит новый целочисленный столбец (называемый area) с вычисленным значением.

    ../../../_images/field_calculator_area.png

    Рис. 8.14 Field Calculator

  7. Кликните OK.

  8. Проделайте то же самое в отношении другого нового поля под названием id. В Field calculator expression наберите:

    $id
    

    Это обеспечит то, что каждый полигон будет иметь уникальный идентификационный номер для целей идентификации.

  9. Кликните снова на toggleEditing Toggle editing и сохраните ваши изменения, если будет предложено сделать так.

    ../../../_images/attribute_table.png

    Рис. 8.15 Attribute table with area and id columns

8.4.22. Выбор участка заданного размера

Теперь, когда вам известны участки:

  1. Создайте запрос (как обычно), чтобы выбрать только те полигоны, которые больше чем 6000 ㎡. Запрос такой:

    "area" > 6000
    
  2. Сохраните выбор в каталоге Rasterprac как новый векторный слой с названием suitable_areas.shp.

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

8.4.23. Оцифровка Кейптаунского университета

  1. Создайте новый векторный слой в каталоге Rasterprac , как и раньше, но на этот раз используйте Point как Geometry type и назовите его university.shp.

  2. Убедитесь в правильности ССК (Project CRS:EPSG:32733 - WGS 84 / UTM zone 33S).

  3. Завершите создание нового слоя (кликните на кнопку OK).

  4. Скройте все слои, кроме нового слоя university и слоя Streets.

  5. Добавьте фоновую карту (OSM):

    1. Заходите на панель Browser и перейдите к XYZ Tiles ► OpenStreetMap.

    2. Перетащите и разместите OpenStreetMap в нижнюю часть панели Layers.

    В своем интернет-браузере найдите расположение Кейптаунского университета. Учитывая уникальную топографию Кейптауна, университет находится в очень узнаваемом месте. Прежде чем вы вернетесь в QGIS, обратите внимание на то, где находится университет и что находится рядом с ним.

  6. Убедитесь, что слой Streets отмечен, в слой university выделен в панели Layers.

  7. Перейдите в пункт меню View ► Toolbars и убедитесь, что выбран Digitizing. После этого вы должны увидеть на панели инструментов значок с карандашом (toggleEditing Toggle editing). Это кнопка переключения редактирования.

  8. Кликните на кнопку Toggle editing для того, чтобы войти в режим редактирования. Это позволит вам редактировать векторный слой.

  9. Кликните на кнопку capturePoint Add Point Feature, которая должна быть рядом с кнопкой toggleEditing Toggle editing.

  10. Активировав инструмент Add feature, кликните левой кнопкой мыши по наиболее точной оценке местоположения Кейптаунского университета.

  11. Укажите произвольное целое число id.

  12. Кликните OK.

  13. Кликните на кнопку saveEdits Save Layer Edits.

  14. Кликните на кнопку Toggle editing для того, чтобы остановить режим редактирования.

  15. Сохраните проект.

8.4.24. Поиск ближайших мест к Университету Кейптауна

  1. Перейдите в Панель инструментов обработки, найдите Join Attributes by Nearest алгоритм (Vector general ► Join Attributes by Nearest) и выполните его.

  2. Input layer должен быть university, а Input layer 2 suitable_areas.

  3. Укажите соответствующее выходное местоположение  и название (Joined layer).

  4. Настройте Maximum nearest neighbors на 4.

  5. Убедитесь, что отмечена галочка checkbox Open output file after running algorithm.

  6. Для остальных параметров оставьте значения по умолчанию.

  7. Кликните на Run.

Выходной точечный слой будет содержать четыре объекта - все они будут иметь местоположение университета и его атрибуты, а также атрибуты близлежащих подходящих участков (включая id) и расстояние до этого участка.

  1. Откройте таблицу атрибутов результата соединения.

  2. Отметьте id четырех ближайших подходящих участков, а затем закройте таблицу атрибутов.

  3. Откройте таблицу атрибутов слоя suitable_areas.

  4. Создайте запрос, чтобы выбрать четыре подходящих участка, ближайших к университету (выбирая их с помощью поля id).

Это и есть окончательный ответ на вопрос исследования.

Создайте полностью маркированный макет, который включает полупрозрачный слой отмывки поверх растра по вашему выбору (например, ЦМР или растра уклона). Также включите слой университета и  suitable_areas с выделенными четырьмя подходящими участками, ближайшими к университету. При создании выходной карты следуйте всем передовым методам картографии.