5.1. Занятие: Создание нового набора векторных данных

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

Цель данного занятия: создать новый набор векторных данных.

5.1.1. basic Идем дальше: Диалоговое окно для создания слоя

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

  1. Откройте QGIS и создайте новый пустой проект.

  2. Перейдите и кликните меню, войдите в Layer ► Create Layer ► New Shapefile Layer и кликните его. Вам будет представлено диалоговое окно Новый слой шейп-файла New Shapefile Layer, что позволит вам определить новый слой.

    ../../../_images/create_vector_layer.png
  3. Кликните на в поле File name. Появится диалоговое окно сохранения.

  4. Перейдите в каталог exercise_data.

  5. Сохраните новый слой как school_property.shp.

    На этом этапе важно решить, какой тип набора данных вам нужен. Каждый векторный тип слоя «строится по-своему» в фоновом режиме, поэтому после создания слоя вы не можете изменить его тип.

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

  6. В поле Тип геометрии Geometry Type, выберите Полигон Polygon в раскрывающемся меню:

    ../../../_images/polygon_selected.png

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

    В следующем поле можно указать Систему координат (СК-CRS). ССК - это метод связывания числовых координат с положением на поверхности Земли. Чтобы узнать больше, см. Руководство пользователя по работе с прогнозами - Working with Projections.

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

    ../../../_images/default_crs.png

    Далее идет набор полей, сгруппированных в Новом поле New Field. По умолчанию, новый слой имеет только один атрибут – поле id (которое вы должны увидеть в списке полей Fields list) ниже. Однако для того, чтобы создаваемые вами данные были полезными, вам действительно нужно что-то описать о функциях, которые вы будете создавать в данном новом слое. Для наших текущих целей будет достаточно добавить одно поле, которое называется name , которое будет содержать  Text data и будет ограничено длиной текста в 80 символов.

  7. Повторите настройку ниже, затем кликните кнопку Добавить в список полей Add to Fields List:

    ../../../_images/new_attribute.png
  8. Убедитесь, что ваше диалоговое окно выглядит следующим образом:

    ../../../_images/new_attribute_added.png
  9. Кликните OK

Должен появиться новый слой на вашей панели Layers.

5.1.2. basic Идем дальше: Источник данных

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

Существует много разных способов получить данные об объектах. Например, вы можете использовать GPS для съемки точек в реальном мире, а затем импортировать данные в QGIS. Или вы можете обследовать точки с помощью теодолита и ввести координаты вручную, чтобы создать новые функции. Или вы можете использовать процесс оцифровки для отслеживания объектов по данным дистанционного зондирования, таким как спутниковые изображения или аэрофотосъемка.

В нашем примере вы будете использовать подход оцифровки. Вам предоставлены образцы наборов растровых данных, поэтому, при необходимости, вам нужно будет их импортировать.

  1. Кликните на Диспетчер источников данных dataSourceManager Data Source Manager.

  2. Выберите Растр raster Raster слева.

  3. На панели Источник Source, кликните кнопку :

  4. Перейдите в файл упражнений  exercise_data/raster/.

  5. Выберите файл 3420C_2010_327_RGB_LATLNG.tif.

  6. Кликните Open , чтобы закрыть диалоговое окно.

    ../../../_images/add_raster.png
  7. Кликните Add и  Close. Изображение загрузится на вашу карту.

    ../../../_images/raster_added.png
  8. Если вы не видите аэрофотоснимок, выберите новый слой, кликните правой кнопкой мыши и выберите Приблизить до слоя Zoom to Layer. Layer в контекстном меню.

    ../../../_images/zoom_to_raster.png
  9. Кликните на кнопку zoomIn Zoom In, и приближайте масштаб до местности, выделенной синим цветом ниже:

    ../../../_images/map_area_zoom.png

Теперь вы готовы оцифровать эти три поля:

../../../_images/field_outlines1.png

Прежде чем вы начнете оцифровку, давайте передвинем слой school_property над аэрофотоснимком.

  1. Выберите слой  school_property на панели Layers и перетащите его наверх.

../../../_images/move_school_layer.png

Чтобы начать оцифровку, вам нужно войти в режим редактирования. Программное обеспечение GIS обычно требует этого, чтобы предотвратить случайное редактирование или удаление важных данных. Режим редактирования включается или выключается индивидуально для каждого слоя.

Чтобы войти в режим редактирования для слоя school_property необходимо:

  1. Кликнуть слой school_property на панели Layers, чтобы выбрать его.

  2. Кликните на кнопку toggleEditing Toggle Editing.

    Если вы не можете найти эту кнопку, убедитесь, что панель инструментов Оцифровка Digitizing включена. Рядом с пунктом меню View ► Toolbars ► Digitizing Digitizing должен быть установлен флажок.

    Как только вы войдете в режим редактирования, вы увидите, что некоторые инструменты оцифровки стали активными:

    • Захватить полигон capturePolygon Capture Polygon

    • Инструмент Vertex vertexToolActiveLayer Vertex Tool

    Другие соответствующие кнопки по-прежнему неактивны, но станут активными, когда мы начнем взаимодействовать с нашими новыми данными.

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

  3. Кликните на кнопку capturePolygon Capture Polygon чтобы начать оцифровку школьных полей.

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

    Первое, что вам нужно оцифровать - это спортивная площадка:

    ../../../_images/school_area_one.png
  4. Начните оцифровку, кликнув точку где-нибудь на краю поля.

  5. Разместите больше точек, кликая дальше по краю, пока фигура, которую вы рисуете, полностью не покроет поле.

    ../../../_images/school_field_outline.png
  6. После размещения последней точки кликните правой кнопкой мыши, чтобы закончить рисование полигона. Этим вы завершите функцию и увидите диалоговое окно Attributes.

  7. Введите значения, как показано ниже:

    ../../../_images/school_area_one_attributes.png
  8. Кликните OK. Вы создали новую функцию!

    ../../../_images/new_feature.png
  9. На панели Layers выберите слой school_property.

  10. Кликните правой кнопкой мыши и выберите Open Attribute Table в контекстном меню.

    ../../../_images/open_attribute_table.png

    В таблице вы увидите только что добавленную функцию. В режиме редактирования вы можете обновить данные атрибутов, дважды кликнув ячейку, которую вы хотите обновить.

    ../../../_images/feature_table.png
  11. Закройте таблицу атрибутов.

  12. Кликните кнопку Сохранить изменения saveEdits Save Edits, чтобы сохранить новую функцию, которую мы только что создали.

Помните, что если вы допустили ошибку при оцифровке объекта, вы всегда можете отредактировать ее после того, как закончите ее создавать. Если вы ошиблись, продолжайте оцифровку, пока не закончите создание объекта, как указано выше. Далее:

  1. Кликните кнопку vertexToolActiveLayer Vertex Tool.

  2. Наведите курсор мыши на Vertex, который вы хотите переместить, и кликните на него левой кнопкой мыши.

  3. Переместите мышь в правильное место Vertex и кликните левой кнопкой мыши. Это переместит Vertex в новое место.

    ../../../_images/select_vertex.png
    ../../../_images/moved_vertex.png

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

    IЕсли вы хотите отменить изменение, вы можете кликнуть на кнопку undo Undo или Ctrl+Z.

  4. Не забудьте сохранить изменения, кликнув на saveEdits Save Edits.

  5. По завершении редактирования кликните на Переключить редактирование toggleEditing Toggle Editing, чтобы выйти из режима редактирования.

5.1.3. basic Попробуйте сами, оцифруйте полигоны

Оцифруйте саму школу и поле вверху. Используйте данное изображение для подсказки:

../../../_images/field_outlines1.png

Помните, что каждая новая функция должна иметь уникальное значение id!

Примечание

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

Примечание

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

5.1.4. moderate Идем дальше: Использование таблицы редактора Vertex

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

  1. Убедитесь, что вы находитесь в режиме редактирования на слое school_property.

  2. Если она еще не активирована, кликните кнопку vertexToolActiveLayer Vertex Tool.

  3. Наведите курсор мыши на одну из функций полигонов, созданных на слое school_property и кликните правую кнопку. Таким образом будет выбрана функция и появится панель Vertex Editor.

    ../../../_images/vertex_editor_table.png

    Примечание

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

  4. Кликните и перетащите рамку над вершиной или несколькими вершинами выбранной функции.

    ../../../_images/vertex_select.png

    Выбранные вершины поменяют цвет на голубой, а в таблице Vertex Editor будут выделены соответствующие строки, содержащие координаты вершин.

    ../../../_images/vertex_selected.png
  5. Чтобы обновить координату, дважды кликните левой кнопкой мыши на ячейку в таблице, которую требуется отредактировать, и введите обновленное значение. В этом примере координата x строки 4 обновлена из 20.4450 на 20.4444.

    ../../../_images/edit_vertex_in_vertex_editor.png
  6. После ввода обновленного значения кликните клавишу Enter, чтобы применить изменение. Вершина будет перемещена в новое расположение в окне карты.

  7. Когда закончите редактирование кликните toggleEditing Toggle Editing, чтобы выйти из режима редактирования, сохраните свои изменения.

5.1.5. basic Попробуйте сами: Оцифруйте линии

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

../../../_images/path_start_end.png

Наш трек немного дальше к югу:

../../../_images/track_start_end.png
  1. Если слой дороги еще не указан на вашей карте, добавьте слой roads из файла GeoPackage training-data.gpkg, который включен в папку exercise_data вашей учебной базы данных, которую вы загрузили. Прочтите главу Идем дальше: Загружаем векторные данные из Базы данных GeoPackage для инструкций.

  2. Создайте новый набор данных строки Shapefile ESRI с именем routes.shp в директории exercise_data , с атрибутами  id и type (используйте приведенный выше подход, чтобы научиться).

  3. Активируйте режим редактирования на слое routes.

  4. Поскольку вы работаете с функцией линии, кликните кнопку captureLine Add Line для запуска режима оцифровки линии.

  5. Оцифровывайте по одному путь и трек на слое routes. Старайтесь как можно точнее следовать маршрутам, добавляя дополнительные точки вдоль углов или поворотов.

  6. Задайте значение атрибута type для  path или track.

  7. Используйте диалоговое окно Layer Properties чтобы добавить стиль к маршрутам. Не стесняйтесь использовать различные стили для путей и треков.

  8. Сохраните изменения и отключите режим редактирования, нажав кнопку toggleEditing Toggle Editing.

5.1.6. In Conclusion

Теперь вы знаете, как создавать функции. Этот курс не охватывает добавление точечных функций, потому что это не так уж необходимо, когда вы работаете с более сложными функциями (линии и полигоны). Здесь все работает точно так же, за исключением того, что вы нажимаете только один раз, на то место где вы хотите, чтобы ваша точка располагалась, придайте ей атрибуты, как обычно, и таким образом функция создана.

Знание того как оцифровывать важно потому, что это очень распространенное действие в программах GIS.

5.1.7. What’s Next?

Функции на слое GIS – это не только картинки, но объекты, расположенные в пространстве. Например, смежные полигоны знают где они находятся относительно друг друга. Это называется топологией. На следующем занятии вы увидите пример того, почему это может быть полезно.