Расчет основных пространственных характеристик объектов в QGIS: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 23: Строка 23:
Каждому типу геометрии исходных данных: точек, линий или полигонов, с точки зрения расчетов присуща своя специфика, поэтому каждому типу геометрии будет посвящен отдельный подраздел.
Каждому типу геометрии исходных данных: точек, линий или полигонов, с точки зрения расчетов присуща своя специфика, поэтому каждому типу геометрии будет посвящен отдельный подраздел.


= Расчет координат точечных объектов =
= Использование fTools (Инструмент "Добавить поле геометрии") =
Координаты точечных объектов можно получить в виде '''десятичных градусов''' или в '''метрической системе'''. В первом случае исходные данные должны находиться в географической системе координат. Во втором - должны быть спроектированы.


== Использование инструмента "Добавить поле геометрии" (fTools) ==
== Вычисление координат точек в десятичных градусах ==
=== Вычисление координат точек в десятичных градусах ===


Загрузим в QGIS слой '''poi-osm.shp''' (точечные объекты OSM) из геосэмпла.
Загрузим в QGIS слой '''poi-osm.shp''' (точечные объекты OSM) из геосэмпла.
Строка 56: Строка 54:
[[Файл:New-latlon-column.png|700px|thumb|center]]
[[Файл:New-latlon-column.png|700px|thumb|center]]


=== Вычисление координат точек в метрической системе ===
== Вычисление координат точек в метрической системе ==
==== Перепроецирование векторного слоя ====
=== Перепроецирование векторного слоя ===
Для того, чтобы получить координаты точек в метрической системе, необходимо перепроецировать имеющийся точечный слой в какую-нибудь прямоугольную систему кординат.  
Для того, чтобы получить координаты точек в метрической системе, необходимо перепроецировать имеющийся точечный слой в какую-нибудь прямоугольную систему кординат.  
#Перепроецируем имеющийся слой '''poi-osm''' в проекцию UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную <span style="color:red">Вообще говоря, это не самый удачный вариант выбора проекции, но в случае с геосемплом, для более точных расчетов требуется [[Создание пользовательской проекции  в QGIS|создание пользовательской проекции]], чему также нужно посвятить отдельную статью</span>). Для этого, правой кнопкой мыши щелкнем в менеджере слоев по '''poi-osm''' и из списка выберем '''"Сохранить как"'''. В открывшемся диалоговом окне в графе '''"Сохранить как"''' указываем название и путь для сохранения нового перепроецированого слоя, а в графе '''"Система координат"''', нажав кнопку '''"Обзор"''' выбираем прямоугольную систему координат WGS84/UTM zone 44N. Облегчить поиск нужной системы координат можно путем ввода букв UTM в строку '''"Filter"''' (Останутся только те СК, которые содержат в названии это сочетание букв). Жмем "ОК".
#Перепроецируем имеющийся слой '''poi-osm''' в проекцию UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную <span style="color:red">Вообще говоря, это не самый удачный вариант выбора проекции, но в случае с геосемплом, для более точных расчетов требуется [[Создание пользовательской проекции  в QGIS|создание пользовательской проекции]], чему также нужно посвятить отдельную статью</span>). Для этого, правой кнопкой мыши щелкнем в менеджере слоев по '''poi-osm''' и из списка выберем '''"Сохранить как"'''. В открывшемся диалоговом окне в графе '''"Сохранить как"''' указываем название и путь для сохранения нового перепроецированого слоя, а в графе '''"Система координат"''', нажав кнопку '''"Обзор"''' выбираем прямоугольную систему координат WGS84/UTM zone 44N. Облегчить поиск нужной системы координат можно путем ввода букв UTM в строку '''"Filter"''' (Останутся только те СК, которые содержат в названии это сочетание букв). Жмем "ОК".
Строка 71: Строка 69:
[[Файл:New-utm-column.png|700px|thumb|center]]
[[Файл:New-utm-column.png|700px|thumb|center]]


== Использование калькулятора полей ==
= Использование калькулятора полей =


При расчете пространственных характеристик с помощью калькулятора полей (Field Calculator) также следует помнить, что все расчеты производятся в '''единицах измерения слоя''', т.е. чтобы получить результаты в градусах, исходный слой должен находиться в географической системе координат,а чтобы получить результаты в метрах - необходимо использовать спроектированный слой.
При расчете пространственных характеристик с помощью калькулятора полей (Field Calculator) также следует помнить, что все расчеты производятся в '''единицах измерения слоя''', т.е. чтобы получить результаты в градусах, исходный слой должен находиться в географической системе координат,а чтобы получить результаты в метрах - необходимо использовать спроектированный слой.
Строка 80: Строка 78:
Запускаем калькулятор полей.
Запускаем калькулятор полей.


=== Создание нового поля, назначение его параметров ===
== Создание нового поля, назначение его параметров ==
В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку "Create new field" (Создать новое поле).
В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку "Create new field" (Создать новое поле).
Далее необходимо указать параметры для создаваемого слоя (тип, размер и точность). Тип поля можно задать любой, но следует учитывать, что в случае, если будет задано текстовое поле, то в дальнейшем, данное поле невозможно будет вставлять в формулы для расчетов.
Далее необходимо указать параметры для создаваемого слоя (тип, размер и точность). Тип поля можно задать любой, но следует учитывать, что в случае, если будет задано текстовое поле, то в дальнейшем, данное поле невозможно будет вставлять в формулы для расчетов.
В общем случае для расчетов пространственных характеристик объектов лучше использовать десятичное число (real). При этом нужно учитывать, что задавая его '''Размер''' мы указываем общее количество знаков до и после запятой, а указывая '''Точность''' - количество знаков после запятой.
В общем случае для расчетов пространственных характеристик объектов лучше использовать десятичное число (real). При этом нужно учитывать, что задавая его '''Размер''' мы указываем общее количество знаков до и после запятой, а указывая '''Точность''' - количество знаков после запятой.


==== Пример 1. Настройки поля для расчета координат в десятичных градусах: DD.DDDDD ====  
=== Пример 1. Настройки поля для расчета координат в десятичных градусах: DD.DDDDD ===
Зададим параметры поля для отображения координат точек в десятичных градусах с навигационной точностью (у стандартных GPS точность в десятичных градусах составляет 5 знаков после запятой, например, 64.35647 N). Нам нужно '''3 значащих числа''' для целочисленной части координаты (широта и долгота меняются в пределах от 0 до 180) и 5 значащих чисел для дробной части ('''точность''' = 5). Получается, что '''размер''' поля равен 8 значащим числам, и установки для поля с координатами вида "DD.DDDDD", будут выглядеть следующим образом:
Зададим параметры поля для отображения координат точек в десятичных градусах с навигационной точностью (у стандартных GPS точность в десятичных градусах составляет 5 знаков после запятой, например, 64.35647 N). Нам нужно '''3 значащих числа''' для целочисленной части координаты (широта и долгота меняются в пределах от 0 до 180) и 5 значащих чисел для дробной части ('''точность''' = 5). Получается, что '''размер''' поля равен 8 значащим числам, и установки для поля с координатами вида "DD.DDDDD", будут выглядеть следующим образом:
[[Файл:FC_DD_DDDDD.png|700px|thumb|center]]
[[Файл:FC_DD_DDDDD.png|700px|thumb|center]]


==== Пример 2. Настройки поля для расчета длин и площадей ====
=== Пример 2. Настройки поля для расчета длин и площадей ===
Значения для длин и площадей слоев находящихся в прямоугольных проекциях рассчитываются в метрах. <span style="color:red">Тут нужно объяснить, с какими параметрами создать поле для расчета длин и площадей так, чтобы обойти все многочисленные ограничения шейпов и получить адекватный результат.</span>
Значения для длин и площадей слоев находящихся в прямоугольных проекциях рассчитываются в метрах. <span style="color:red">Тут нужно объяснить, с какими параметрами создать поле для расчета длин и площадей так, чтобы обойти все многочисленные ограничения шейпов и получить адекватный результат.</span>


= Расчет длин линейных объектов =
= Особенности расчета пространственных характеристик точечных, линейных и полигональных объектов =
 
== Точечный объект ==
 
=== Координаты ===
Координаты точечных объектов можно получить в виде '''десятичных градусов''' или в '''метрической системе'''. В первом случае исходные данные должны находиться в географической системе координат. Во втором - должны быть спроектированы.
 
== Линейный объект ==
 
=== Длина ===
 
== Полигональный объект ==
 
=== Площадь ===
 
=== Периметр ===


= Расчет площадей, периметров и центроидов полигональных объектов =
=== Центроид ===


= Заключение =
= Заключение =

Версия от 16:44, 3 февраля 2012

Эта страница является черновиком статьи.


При написании использована версия QGIS 1.9.90-Alpha b4f7a61 [1]

В статье описываются особенности получения основных пространственных характеристик объектов (координат, длин, площадей) хранящихся в shape-файлах при использовании свободной ГИС QGIS.

Вводные замечания

Технически, получить координаты, длины или площади пространственных объектов в современных ГИС достаточно просто. Гораздо сложнее понять насколько точны значения которые мы получили, и что сделать для улучшения точности полученных величин.

Существует 3 основных способа для расчета пространственных характеристик в ГИС:

  • Расчет в проекции слоя
  • Расчет в проекции вида
  • Расчет на сфере

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

  • выбор проекции для расчетов (подробно принципы ее выбора будут освещены в отдельной статье)
  • перепроецирование слоев в выбранную проекцию [2]
  • расчет координат, длин и площадей с использованием одного из двух доступных инструментов (fTools или Field Calculator). Результаты расчетов заносятся в автоматически создаваемые атрибутивные колонки.

В расчетах, для проверки сходимости результатов, будем использовать Geosample: Открытый набор геоданных для различного ПО ГИС. Готовый проект для QGIS, включающий все необходимые для данной обучающей статьи Shape-файлы можно скачать здесь.

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

Использование fTools (Инструмент "Добавить поле геометрии")

Вычисление координат точек в десятичных градусах

Загрузим в QGIS слой poi-osm.shp (точечные объекты OSM) из геосэмпла. Проверим в какой проекции находится данный слой: Для этого в менеджере слоев щелкнем по нему правой кнопкой мыши и в выпадающем меню выберем пункт "свойства". В открывшемся диалоговом окне выберем вкладку "Метаданные".

Запись

Layer Spatial Reference System: +proj=longlat +datum=WGS84 +no_defs

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

Выполним VectorОбработка геометрииЭкспортировать/Добавить поле геометрии


Add-geometry-column.png


Следующее диалоговое окно предлагает выбрать слой для которого необходимо рассчитать пространственные характеристики. Из выпадающего списка выберем poi-osm.shp и укажем куда сохранить новый файл в котором будут добавлены атрибутивные колонки с координатами. Нажмем "ОК". После пересчета координат будет предложено добавить новый слой на карту. Жмем "Yes".


Create-new-shape2.png


Проверим результат. Откроем таблицу атрибутов нового слоя. Появилось две новых колонки XCOORD (долгота) и YCOORD (широта) выраженные в десятичных градусах.


New-latlon-column.png

Вычисление координат точек в метрической системе

Перепроецирование векторного слоя

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

  1. Перепроецируем имеющийся слой poi-osm в проекцию UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную Вообще говоря, это не самый удачный вариант выбора проекции, но в случае с геосемплом, для более точных расчетов требуется создание пользовательской проекции, чему также нужно посвятить отдельную статью). Для этого, правой кнопкой мыши щелкнем в менеджере слоев по poi-osm и из списка выберем "Сохранить как". В открывшемся диалоговом окне в графе "Сохранить как" указываем название и путь для сохранения нового перепроецированого слоя, а в графе "Система координат", нажав кнопку "Обзор" выбираем прямоугольную систему координат WGS84/UTM zone 44N. Облегчить поиск нужной системы координат можно путем ввода букв UTM в строку "Filter" (Останутся только те СК, которые содержат в названии это сочетание букв). Жмем "ОК".


Change-coord-system.png


После создания нового слоя, добавим его в проект и повторим для него процедуру расчета координат описанную в разделе об использовании инструмента "Добавить поле геометрии". Открыв таблицу атрибутов нового слоя с добавленными полями геометрии, можно убедиться, что координаты выражены в метрах в установленной нами СК (WGS84/UTM zone 44N).


New-utm-column.png

Использование калькулятора полей

При расчете пространственных характеристик с помощью калькулятора полей (Field Calculator) также следует помнить, что все расчеты производятся в единицах измерения слоя, т.е. чтобы получить результаты в градусах, исходный слой должен находиться в географической системе координат,а чтобы получить результаты в метрах - необходимо использовать спроектированный слой. Расчет пространственных характеристик точечных, линейных и полигональных объектов с помощью калькулятора полей также производится по одному алгоритму, (с учетом специфики выбора проекции для разных типов геометрии). Последовательность действий при использовании калькулятора полей следующая: Открываем атрибутивную таблицу слоя для которого необходимо расчитать пространственные характеристики. Переводим слой в режим редактирования MActionToggleEditing.png, при этом становится активной кнопка запуска калькулятра полей MActionCalculateField.png. Запускаем калькулятор полей.

Создание нового поля, назначение его параметров

В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку "Create new field" (Создать новое поле). Далее необходимо указать параметры для создаваемого слоя (тип, размер и точность). Тип поля можно задать любой, но следует учитывать, что в случае, если будет задано текстовое поле, то в дальнейшем, данное поле невозможно будет вставлять в формулы для расчетов. В общем случае для расчетов пространственных характеристик объектов лучше использовать десятичное число (real). При этом нужно учитывать, что задавая его Размер мы указываем общее количество знаков до и после запятой, а указывая Точность - количество знаков после запятой.

Пример 1. Настройки поля для расчета координат в десятичных градусах: DD.DDDDD

Зададим параметры поля для отображения координат точек в десятичных градусах с навигационной точностью (у стандартных GPS точность в десятичных градусах составляет 5 знаков после запятой, например, 64.35647 N). Нам нужно 3 значащих числа для целочисленной части координаты (широта и долгота меняются в пределах от 0 до 180) и 5 значащих чисел для дробной части (точность = 5). Получается, что размер поля равен 8 значащим числам, и установки для поля с координатами вида "DD.DDDDD", будут выглядеть следующим образом:

FC DD DDDDD.png

Пример 2. Настройки поля для расчета длин и площадей

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

Особенности расчета пространственных характеристик точечных, линейных и полигональных объектов

Точечный объект

Координаты

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

Линейный объект

Длина

Полигональный объект

Площадь

Периметр

Центроид

Заключение

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

Ссылки

  1. Geosample: Открытый набор геоданных для различного ПО ГИС
  2. Получение основных пространственных характеристик объектов в Arcview GIS
  3. Получение основных пространственных характеристик объектов в ArcGIS

Примечания

  1. Установка QGIS/GRASS с помощью OSGEO4W.
  2. В настоящее время в QGIS возможность расчета пространственных характеристик непосредственно на сфере не реализована, по этому каждый раз, при расчете площадей необходимо выбирать проекцию, которая обеспечивала бы максимальное приближение спроектированных данных к поверхности геоида. Более того, поскольку QGIS не поддерживает расчеты пространственных характеристик в проекции вида, то перед расчетами все данные должны быть перепрецированы.