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

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
 
(не показаны 23 промежуточные версии 3 участников)
Строка 1: Строка 1:
{{Статья|Черновик}}
{{Статья|Опубликована|shapecalc-qgis}}
 
При написании использована версия QGIS 1.9.90-Alpha b4f7a61 <ref>[http://gis-lab.info/qa/qgis-osgeo4w.html Установка QGIS/GRASS с помощью OSGEO4W.]</ref>


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


= Вводные замечания =
При написании использована версия QGIS 1.9.90-Alpha ad955e2 <ref>[http://gis-lab.info/qa/qgis-osgeo4w.html Установка QGIS/GRASS с помощью OSGEO4W.]</ref>
Технически, получить координаты, длины или площади пространственных объектов в современных ГИС достаточно просто. Гораздо сложнее понять насколько точны значения которые мы получили, и что сделать для улучшения точности полученных величин.
 
Существует 3 основных способа для расчета пространственных характеристик в ГИС:
#'''Расчет в проекции слоя''' — для расчетов используется собственная проекция слоя. Поскольку векторные слои принято хранить в не спроецированном виде (в географической системе координат), все пространственные характеристики будут рассчитаны в десятичных градусах. Результаты таких расчетов корректны только для координат точек и не имеют смысла для длин и площадей. Для расчетов площадей и длин, нам предварительно придется перепроецировать слой в какую-либо из прямоугольных систем координат.
#'''Расчет в проекции вида''' — независимо от того, в какой проекции находятся исходные векторные слои, в ГИС существует возможность настроить их отображение на экране в заданной проекции и использовать для расчетов именно ее. Это удобно тем, что для расчетов длин и площадей нам не нужно предварительно проецировать хранящиеся в географической СК слои в расчетную проекцию. Недостаток данного способа в том, что расчеты идут не на реальной поверхности геоида, а на приближенной к нему плоскости проекции и чтобы получить точные результаты мы должны для каждого отдельного случая правильно выбрать проекцию и задать ее параметры. Кроме того, в случае, если мы имеем дело с крупными географическими объектами, такими как континенты или Земной Шар в целом, для расчетов длин и площадей приходится использовать разные проекции. Подробнее о проекциях и их использовании для конкретных нужд можно почитать в [http://gis-lab.info/docs/books/projections/projections.zip пособии по картографическим проекциям].
#'''Расчет на сфероиде''' — расчет пространственных характеристик объектов осуществляется на сфере или сфероидах. Использование данного метода позволяет получать наиболее точные результаты и не требует предварительных действий по выбору проекции и подходит для всех типов геометрии.


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


В QGIS на данный момент реализовано два инструмента для расчета площадей:
В зависимости от используемой для расчета системы координат (СК) и метода расчет пространственных характеристик объекта можно осуществить тремя способами:
#'''Инструмент "Экспорт/Добавить поле геометрии''' (входит в состав модуля fTools). Данный инструмент поддерживает все три способа расчета площадей (в проекции слоя, в проекции вида и на сфероиде).
#'''Расчет в СК слоя (Layer CRS)''' — для расчетов используется собственная система координат слоя. Поскольку векторные слои чаще всего хранят в не-спроецированном виде (в географической системе координат, например WGS1984 или Pulkovo 1942), все пространственные характеристики будут рассчитаны в десятичных градусах. Результаты таких расчетов имеют смысл только для координат точек и не имеют смысла для длин и площадей, так как единицы в таких системах угловые, а не линейные. Для расчетов площадей и длин, нужно предварительно перепроецировать слой в одну из прямоугольных систем координат. Если данные уже перепроецированы, этот способ вполне корректен.
#Набор функций для расчета пространственных характеристик в '''калькуляторе полей''' (Field Calculator). В настоящий момент реализована поддержка расчетов только в проекции слоя.
#'''Расчет в текущей СК (Project CRS)''' — большинство ГИС позволяет настроить отображение объектов на экране в системе координат, отличной от исходной системы координат данных, при этом данные будут автоматически переведены в текущую систему (т.н. "перепроецирование на лету"). Для расчета можно использовать именно ее. Это удобно тем, что для расчетов длин и площадей нам не нужно предварительно перепроецировать хранящиеся в географической СК слои в новую, расчетную СК (создавая таким образом копию данных). Недостаток данного способа в том, что расчеты идут не на реальной поверхности геоида, а на приближенной к нему спроецированной плоскости и чтобы получить точные результаты, мы должны для каждого отдельного случая правильно выбрать проекцию и задать ее параметры. Кроме того, в случае, если мы имеем дело с крупными географическими объектами, такими как континенты или земной шар в целом, для расчетов длин и площадей приходится использовать разные проекции. Подробнее о проекциях и их использовании для конкретных нужд можно почитать в [http://gis-lab.info/docs/books/projections/projections.zip пособии по картографическим проекциям].
#'''Расчет на эллипсоиде (Ellipsoid)''' — расчет пространственных характеристик объектов осуществляется на сфере или эллипсоиде. Использование данного метода позволяет получать наиболее точные результаты и не требует предварительных действий по перепроецированию или выбору проекции и подходит для всех типов геометрии (точек, линий и полигонов). Фактически, проекция данных игнорируется. В общем случае,  рекомендуется использовать именно расчет на эллипсоиде.


Рассмотрим на примерах использование инструментария QGIS для расчетов различных пространственных характеристик. В расчетах, для проверки сходимости результатов, будем использовать [http://gis-lab.info/qa/geosample.html Geosample: Открытый набор геоданных для различного ПО ГИС]. Готовый проект для QGIS, включающий все необходимые для данной обучающей статьи Shape-файлы, можно скачать [http://gis-lab.info/data/geosample/geosample-qgis.7z здесь].
На данный момент в QGIS реализовано два инструмента для расчета площадей:
#'''Инструмент "Экспорт/Добавить поле геометрии''' (входит в состав модуля fTools). Данный инструмент поддерживает все три способа расчета площадей (в СК слоя, в СК вида и на эллипсоиде).
#Набор функций для расчета пространственных характеристик в '''калькуляторе полей''' (Field Calculator), тут на настоящий момент реализована поддержка расчетов только в СК слоя.


Каждому типу геометрии исходных данных: точек, линий или полигонов, с точки зрения расчетов, присуща своя специфика, поэтому каждому типу геометрии будет посвящен отдельный подраздел.
Рассмотрим использование различных инструментов QGIS для расчетов пространственных характеристик. В расчетах, для проверки сходимости результатов, будем использовать [http://gis-lab.info/qa/geosample.html Geosample: Открытый набор геоданных для различного ПО ГИС]. Готовый проект для QGIS, включающий все необходимые для данной статьи слои, можно скачать [http://gis-lab.info/data/geosample/geosample-qgis.7z здесь].


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


Последовательность действий такова:
Последовательность действий такова.


1. Инструмент доступен из меню '''Вектор'''→'''Обработка геометрии'''→'''Экспортировать/Добавить поле геометрии'''
Инструмент доступен из меню '''Вектор'''→'''Обработка геометрии'''→'''Экспортировать/Добавить поле геометрии'''
После запуска инструмента открывается диалоговое меню предоставляющее следующие возможности:
После запуска инструмента открывается диалоговое меню предоставляющее следующие возможности:


[[Файл:Ftools-geom-calc.png|700px|thumb|center|Диалоговое окно инструмента "Экспортировать/Добавить поле геометрии": 1) выпадающий список для выбора слоя; 2) выбор способа расчетов; 3) выбор способа сохранения результатов.]]
[[Файл:Ftools-geom-calc.png|700px|thumb|center|Диалоговое окно инструмента "Экспортировать/Добавить поле геометрии": 1) выпадающий список для выбора слоя; 2) выбор способа расчетов; 3) выбор способа сохранения результатов.]]


2. Выбор слоя для расчетов из списка
#Выбор слоя для расчетов из списка
#Выбор способа расчета ([[Расчет_основных_пространственных_характеристик_объектов_в_QGIS#Вводные замечания|подробнее]]). Здесь возможны три варианта:
#*В СК слоя (Layer CRS)
#*В текущей СК проекта (Project CRS)
#*На эллипсоиде (Ellipsoid)
#Выбор способа сохранения результата:
#* Установка галочки "Save to new shapefile" (Сохранить в новый Shape-файл) приведет к созданию нового слоя к которому будут добавлены дополнительные колонки с результатами расчетов.
#* Если галочка не установлена (по умолчанию это так), то соответствующие поля с результатами расчетов создаются в текущем слое.
#По окончании расчетов автоматически создаются колонки с результатами. Единицы измерения зависят от способа расчетов (в географической системе координат - это десятичные градусы; при расчетах в проекциях и эллипсоидальные - это метры).
#Для разных типов геометрии создаются следующие поля:
#*Для точечных слоев: XCOORD (долгота), YCOORD (широта)
#*Для линейных: LENGTH (длина)
#*Для полигональных: AREA (площадь), PERIMETER (периметр)
 
 
 
=== Пример 1. Вычисление координат точек в СК слоя ===
 
1. Загрузим в QGIS слой '''poi-osm.shp''' (точечные объекты OSM) из геосэмпла.
Проверим в какой СК находится данный слой. Для этого в менеджере слоев щелкнем по нему правой кнопкой мыши и в выпадающем меню выберем пункт '''"Свойства"'''. В открывшемся диалоговом окне выберем вкладку '''"Метаданные"'''.
 
Запись
 
<pre>Layer Spatial Reference System:
+proj=longlat +datum=WGS84 +no_defs</pre>
 
означает, что данные находятся в географической СК. Таким образом, для того, чтобы получить координаты точек в десятичных градусах, перепроецировать ничего не нужно.
 
2. Выполним '''Vector'''→'''Обработка геометрии'''→'''Экспортировать/Добавить поле геометрии'''
 
 
[[Файл:Add-geometry-column.png|700px|thumb|center]]
 
 
3. Следующее диалоговое окно предлагает выбрать слой для которого необходимо рассчитать пространственные характеристики.
 
[[Файл:Calculation-3.png|700px|thumb|center]]
 
 
*Из выпадающего списка выберем '''poi-osm.shp'''. <br>
*В качестве способа расчета выберем СК слоя ('''Layer CRS''') <br>
*Сохраним результаты расчета в том же файле <br>
*Нажмем '''"ОК"'''. <br>
*После пересчета координат появится сообщение, что слой обновлен. Жмем '''"ОК"'''.<br>
 
Проверим результат: <br>
Откроем таблицу атрибутов нового слоя: '''Слой'''→'''Открыть таблицу атрибутов'''<br>
Появилось две новых колонки '''XCOORD''' (долгота) и '''YCOORD''' (широта) выраженные в десятичных градусах.
 
 
[[Файл:New-latlon-column.png|700px|thumb|center]]
 
=== Пример 2. Вычисление координат точек в СК вида ===
 
Для того, чтобы получить координаты точек в метрической системе, можно либо перепроецировать имеющийся точечный слой в какую-нибудь прямоугольную СК и произвести расчеты, как показано в примере 1, либо задать необходимую СК проекту и рассчитать пространственные характеристики в ней, не перепроецируя при этом слой.


3. Выбор способа расчета (подробнее о способах расчета). Здесь возможны три варианта:  
1. Зададим СК проекта: WGS 84, UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную). Для этого выполним:
*В системе координат слоя (Layer CRS)
*В системе координат проекта (Project CRS)
'''Установки'''→'''Свойства проекта''' и откроем вкладку '''Система координат'''.
*На эллипсоиде (Ellipsoid)


4. Выбор способа сохранения результата:
Установим галочку '''"Включить преобразование координат на лету"'''
* Установка галочки "Save to new shapefile" (Сохранить в новый шейпфайл) приведет к созданию нового слоя к которому будут добавлены колонки в соответствии с его геометрией.
* Если галочка не установлена, то соответствующие поля с результатами расчетов создаются в текущем слое.


5. По окончании расчетов автоматически создаются колонки с результатами. Единицы измерения зависят от способа расчетов (в географической системе координат - это десятичные градусы; при расчетах в проекциях - это метры). Для разных типов они следующие:
В графе "Filter" наберем <pre>UTM zone 44N</pre> или код EPSG проекции: <pre>32644</pre> В результате останутся только те СК, которые содержат в названии это сочетание букв.  
*Для точечных слоев: XCOORD (Долгота), YCOORD (широта)
*Для линейных: LENGHT (длина)
*Для полигональных: AREA (площадь), PERIMETER


В меню '''"Coordinate reference systems of the world"''' Выберем "WGS 84 zone 44N".


Жмем "ОК".


== Пример 1. Вычисление координат точек в десятичных градусах ==
Все слои вида отображаются теперь в выбранной нами проекции.


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


Запись
[[Файл:Change-coord-system.png|700px|thumb|center]]


<code><nowiki>Layer Spatial Reference System:
+proj=longlat +datum=WGS84 +no_defs</nowiki></code>


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


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


Из выпадающего списка выберем '''poi-osm.shp'''.


[[Файл:Add-geometry-column.png‎|700px|thumb|center]]
В качестве способа расчета выберем СК проекта ('''Project CRS''')


Сохраним результаты расчета в том же файле (галочка '''"Save to New shapefile"''' не установлена).


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


После пересчета координат появится сообщение, что слой обновлен. Жмем '''"ОК"'''.


[[Файл:Create-new-shape2.png‎|700px|thumb|center]]


[[Файл:Calculation-4.png|700px|thumb|center]]


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


3. Проверим результат:
Откроем таблицу атрибутов нового слоя: '''Слой'''→'''Открыть таблицу атрибутов'''


[[Файл:New-latlon-column.png|700px|thumb|center]]
Добавились новые поля геометрии: '''XCOORD''' (долгота) и '''YCOORD''' (широта), причем, координаты выражены в метрах в установленной нами СК (WGS84/UTM zone 44N).
 
 
[[Файл:New-utm-column.png|700px|thumb|center|результат расчета]]
 
Аналогичным образом в СК вида рассчитываются пространственные характеристики линейных и полигональных слоев.
 
=== Пример 3. Вычисление координат точек на эллипсоиде ===
 
Как уже было сказано, в большинстве случаев, предпочтительным (дающим наиболее точные результаты) является расчет пространственных характеристик объектов на эллипсоиде. Получить представление насколько могут отличаться результаты расчетов на эллипсоиде от результатов расчетов в различных СК можно из статьи [http://gis-lab.info/qa/diff-calc.html "Сравнение разных способов вычисления длин и азимутов"].
 
'''Важно: следует учитывать, что при расчете на эллипсоиде, координаты точек по умолчанию возвращаются в десятичных градусах, а длины и площади - в метрах независимо от СК вида или слоя.'''
 
Перед тем, как производить расчеты на эллипсоиде необходимо его выбрать, для этого выполним: '''Установки'''→'''Параметры'''. На вкладке '''"Инструменты"''' выбрать из выпадающего списка '''"Эллипсоид для вычисления расстояний"'''. По умолчанию это универсальный эллипсоид '''WGS 84'''.
 
 
[[Файл:choose-ellipsoid.png|700px|thumb|center]]
 
После выбора эллипсоида для расчетов, рассчитаем координаты точек:
 
1. Выполним '''Vector'''→'''Обработка геометрии'''→'''Экспортировать/Добавить поле геометрии'''.
 
2. Из выпадающего списка выберем '''poi-osm.shp'''.
3. В качестве способа расчета выберем расчет на эллипсоиде ('''Ellipsoid''').
 
4. Сохраним результаты расчета в том же файле (галочка "Save to New shapefile" не установлена).
 
5. Нажмем '''"ОК"'''.
6. После пересчета координат появится сообщение, что слой обновлен. Жмем '''"ОК"'''.
 
 
[[Файл:Calculation-5.png|700px|thumb|center]]


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


Имеем следующий результат:


[[Файл:Change-coord-system.png|700px|thumb|center]]
[[Файл:LCS-ell-coord.png|700px|thumb|center]]


Обратите внимание, что координаты точек рассчитанные в СК слоя (географической СК на эллипсоиде WGS-84 - поля COORD_GCS) полностью совпадают с координатами рассчитанными непосредственно на эллипсоиде WGS-84 (COORD_el).


После создания нового слоя, добавим его в проект и повторим для него процедуру расчета координат описанную в разделе об [[Расчет основных пространственных характеристик объектов в QGIS#Использование инструмента "Добавить поле геометрии" (fTools)|использовании инструмента "Добавить поле геометрии"]].
Аналогичным образом на эллипсоиде рассчитываются пространственные характеристики линейных и полигональных слоев.
Открыв таблицу атрибутов нового слоя с добавленными полями геометрии, можно убедиться, что координаты выражены в метрах в установленной нами СК (WGS84/UTM zone 44N).


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


[[Файл:New-utm-column.png|700px|thumb|center]]
При расчете пространственных характеристик с помощью калькулятора полей (Field Calculator) следует помнить, что все расчеты производятся в '''единицах измерения слоя''', т.е. чтобы получить результаты в градусах, исходный слой должен находиться в географической СК, а чтобы получить результаты в метрах - необходимо использовать спроецированный слой.


= Использование калькулятора полей =
Расчет пространственных характеристик точечных, линейных и полигональных объектов с помощью калькулятора полей производится по одному алгоритму. Последовательность действий при использовании калькулятора полей следующая:


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


Расчет пространственных характеристик точечных, линейных и полигональных объектов с помощью калькулятора полей производится по одному алгоритму, (с учетом специфики выбора проекции для разных типов геометрии).
Последовательность действий при использовании калькулятора полей следующая:
#Открываем атрибутивную таблицу слоя для которого необходимо рассчитать пространственные характеристики.
#Переводим слой в режим редактирования [[Файл:mActionToggleEditing.png]], при этом становится активной кнопка запуска калькулятора полей.
#Запускаем калькулятор полей, нажав на кнопку [[Файл:mActionCalculateField.png]]. Открывается диалоговое окно калькулятора полей, состоящее из меню параметров создания новых полей, списка функций и подсказок по ним, а также результирующей командной строки (Expression) куда будут внесены все требуемые команды для вычислений.
#Далее возможно два варианта действий, в зависимости от того, имеется ли у вас в атрибутивной таблице требуемое поле.
##Если поле отсутствует, необходимо его создать — поставить галочку '''"Создать новое поле" (Create New Field)''', после чего задать его '''имя''', '''тип''', '''размер''' и '''точность'''. <span style="color:red">Осветить нюансы.</span>
##Если поле уже присутствует и необходимо только осуществить пересчет пространственных характеристик (например, после редактирования слоя, т.к. автоматически, при изменении пространственных объектов, их пространственные характеристики не пересчитываются), необходимо поставить галочку '''"Обновить существующее поле"''' и выбрать необходимое поле из выпадающего списка.
#Далее, необходимо выбрать необходимую расчетную функцию из списка. Все функции для расчета пространственных характеристик объектов находятся в группе '''"Геометрия"'''. Полный список функций таков:
{| class="wikitable" width="100%"
{| class="wikitable" width="100%"
|-
|-
Строка 123: Строка 196:
|'''$area''' || полигон ||| Возвращает площадь полигона.
|'''$area''' || полигон ||| Возвращает площадь полигона.
|}
|}
#Добавить функцию в командную строку можно либо прописав ее вручную, либо двойным щелчком мыши по необходимой функции из списка.


Создание нового поля, назначение его параметров
=== Пример 4. Расчет площади с помощью калькулятора полей ===
В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку "Create new field" (Создать новое поле).
 
Далее необходимо указать параметры для создаваемого слоя (тип, размер и точность). Тип поля можно задать любой, но следует учитывать, что в случае, если будет задано текстовое поле, то в дальнейшем, данное поле невозможно будет вставлять в формулы для расчетов.
Рассчитаем площади объектов в полигональном слое '''admin''' геосемпла (слой с административными границами областей) с помощью калькулятора полей.
В общем случае для расчетов пространственных характеристик объектов лучше использовать десятичное число (real). При этом нужно учитывать, что задавая его '''Размер''' мы указываем общее количество знаков до и после запятой, а указывая '''Точность''' - количество знаков после запятой.
 
Как уже было сказано, калькулятор полей производит расчеты только в СК слоя. По этому, для расчетов длин и площадей, а также координат точек в метрах, нам необходимо иметь слои в прямоугольных СК. Слой '''admin''' находится в географической СК, по этому нам предварительно необходимо перепроецировать его в прямоугольную СК, для этого выполняем:
#'''Слой'''→'''Сохранить как'''
#В открывшемся диалоговом окне выбираем формат для нового слоя (Shape-файл ESRI)
#Кодировка (System - кодировка установленная в вашей системе по умолчанию, в Windows - это CP-1251, в Linux - UTF-8).
#Выберем СК для создаваемого файла, выберем '''Selected CRS''', это даст нам возможность выбрать необходимую систему координат. Жмем '''Обзор'''. Зададим проекцию для нового слоя WGS 84, UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную)
#В открывшемся окне выбора системы координат в графе "Filter" наберем <pre>UTM zone 44N</pre> или код EPSG проекции: <pre>32644</pre>. В результате останутся только те СК, которые содержат в названии это сочетание букв.
#В меню '''"Coordinate reference systems of the world"''' Выберем "WGS 84 zone 44N".
#Жмем "ОК".
 
 
[[Файл:project_layer.png|700px|thumb|center]]
 
 
8. Добавляем вновь созданный shape-файл в проект.
 
9. Открываем атрибутивную таблицу.
 
10. Переводим слой в режим редактирования [[Файл:mActionToggleEditing.png]], при этом становится активной кнопка запуска калькулятора полей.


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


== Пример 3. Расчет длин, периметров и площадей ==
Далее возможно два варианта действий, в зависимости от того, имеется ли у вас в атрибутивной таблице требуемое поле.  
Значения для длин и площадей слоев находящихся в прямоугольных проекциях рассчитываются в метрах. <span style="color:red">Тут нужно объяснить, с какими параметрами создать поле для расчета длин и площадей так, чтобы обойти все многочисленные ограничения шейпов и получить адекватный результат.</span>
*Если поле отсутствует, необходимо его создать — поставить галочку '''"Создать новое поле" (Create New Field)'''.
*Если поле уже присутствует и необходимо только осуществить пересчет пространственных характеристик (например, после редактирования слоя, т.к. автоматически, при изменении пространственных объектов, их пространственные характеристики не пересчитываются), необходимо поставить галочку '''"Обновить существующее поле"''' и выбрать необходимое поле из выпадающего списка.


= Особенности расчета пространственных характеристик точечных, линейных и полигональных объектов =
12. Создадим новое поле для записи результатов расчета площади.
В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку "Create new field" (Создать новое поле).


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


=== Координаты ===
Зададим параметры поля для расчета площади:
Координаты точечных объектов можно получить в виде '''десятичных градусов''' или в '''метрической системе'''. В первом случае исходные данные должны находиться в географической системе координат. Во втором - должны быть спроектированы.
* Зададим имя поля, например, "AREA"
* Зададим тип поля: Десятичное число (Real)
* Зададим размер поля: будем исходить из следующих соображений - площадь Земного шара - 510 072 000 000 000 м2, т.е. 15 значащих чисел необходимо для расчетов объектов площадь которых равна площади всего Земного шара. Добавляем значащее число на разделитель целой и дробной части и хотя бы одно значащее число на десятичный разряд (в случае использования типа "десятичное число" нельзя задать точность равную 0). Итого 17 значащих чисел должно хватить для расчетов на любых территориях.
* Зададим точность: если нам достаточно точности в 1/10 метра, то ставим точность = 1, если нет, указываем количество знаков после запятой, не забывая прибавить их количество в графе "размер".


== Линейный объект ==
14. Далее, необходимо выбрать необходимую расчетную функцию из списка. Все функции для расчета пространственных характеристик объектов находятся в группе '''"Геометрия"'''. Добавить функцию в командную строку можно либо прописав ее вручную, либо двойным щелчком мыши по необходимой функции из списка.


=== Длина ===
15. После всех манипуляций окно должно приобрести вид:
Для расчета длин принято использовать '''равнопромежуточные (equidistant projections)''' проекции.


=== Координаты узлов ===
[[Файл:column-definition.png|700px|thumb|center]]


== Полигональный объект ==
16. Жмем "ОК" и смотрим на атрибутивную таблицу. В новой колонке "AREA" отображаются предварительные результаты расчетов (не усеченные до 1-го знака после запятой. Нажимаем кнопку "Сохранить изменения" [[Файл:mActionFileSave.png]]. После этой операции данные записываются согласно настроенным нами параметрам поля: т.к. мы установили точность 1 знак после запятой, данные были округлены до 1-го знака после запятой. В случае, если результаты стали отрицательными, это означает, что недостаточно значащих знаков и нужно создать новое поле с большим количеством значащих знаков.


=== Площадь ===
== Заключение ==
Для расчета площадей используют '''равновеликие (Equal Area)''' проекции.


=== Периметр ===
В заключение, сделаем важное замечание: правилом хорошего тона считается документирование, какое ПО (версия) и какой инструмент использовались для расчета пространственных характеристик объектов. Дело в том, что в разном ПО используются отличающиеся алгоритмы расчетов, параметры (точность назначения) СК и эллипсоидов, что приводит к тому, что для одних и тех же данных рассчитанные пространственные характеристики несколько отличаются. В научном мире приоритет отдается алгоритмам имеющим открытый исходный код, чтобы каждый мог воспроизвести расчеты и найти ошибки алгоритмов. В связи с этим QGIS как инструмент в руках ученого предстает в более выгодном свете.


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


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


= Ссылки =
#[http://gis-lab.info/qa/geosample.html Geosample: Открытый набор геоданных для различного ПО ГИС]
#[http://gis-lab.info/qa/geosample.html Geosample: Открытый набор геоданных для различного ПО ГИС]
#[http://gis-lab.info/qa/shapecalc.html Получение основных пространственных характеристик объектов в Arcview GIS]
#[http://gis-lab.info/qa/shapecalc.html Получение основных пространственных характеристик объектов в Arcview GIS]
Строка 169: Строка 259:
# О.А. Лебедева. Картографические проекции. Методическое пособие. Новосибирский учебно-методический центр по ГИС и ДЗ. Новосибирск, 2000 [http://gis-lab.info/docs/books/projections/projections.zip Скачать]
# О.А. Лебедева. Картографические проекции. Методическое пособие. Новосибирский учебно-методический центр по ГИС и ДЗ. Новосибирск, 2000 [http://gis-lab.info/docs/books/projections/projections.zip Скачать]
#[http://gis-lab.info/qa/proj-sk-faq.html Часто задаваемые вопросы по координатам, проекциям, системам координат]
#[http://gis-lab.info/qa/proj-sk-faq.html Часто задаваемые вопросы по координатам, проекциям, системам координат]
#[http://gis-lab.info/qa/diff-calc.html Сравнение разных способов вычисления длин и азимутов]
#[http://gis-lab.info/qa/gis-lab-projections.html Описание проекций используемых GIS-Lab]
#[http://gis-lab.info/qa/gis-lab-projections.html Описание проекций используемых GIS-Lab]
#Ведение в ГИС на основе бесплатного ПО с открытым исходным кодом (проекциям посвящена 7-я глава): [http://download.osgeo.org/qgis/doc/manual/qgis-1.0.0_a-gentle-gis-introduction_en.pdf A Gentle GIS Introduction]
#Ведение в ГИС на основе бесплатного ПО с открытым исходным кодом (проекциям посвящена 7-я глава): [http://download.osgeo.org/qgis/doc/manual/qgis-1.0.0_a-gentle-gis-introduction_en.pdf A Gentle GIS Introduction]


= Примечания =
== Примечания ==
<references />
<references />
[[Категория:Пошаговые инструкции QGIS]]

Текущая версия от 04:48, 11 марта 2012

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/shapecalc-qgis.html


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

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

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

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

В зависимости от используемой для расчета системы координат (СК) и метода расчет пространственных характеристик объекта можно осуществить тремя способами:

  1. Расчет в СК слоя (Layer CRS) — для расчетов используется собственная система координат слоя. Поскольку векторные слои чаще всего хранят в не-спроецированном виде (в географической системе координат, например WGS1984 или Pulkovo 1942), все пространственные характеристики будут рассчитаны в десятичных градусах. Результаты таких расчетов имеют смысл только для координат точек и не имеют смысла для длин и площадей, так как единицы в таких системах угловые, а не линейные. Для расчетов площадей и длин, нужно предварительно перепроецировать слой в одну из прямоугольных систем координат. Если данные уже перепроецированы, этот способ вполне корректен.
  2. Расчет в текущей СК (Project CRS) — большинство ГИС позволяет настроить отображение объектов на экране в системе координат, отличной от исходной системы координат данных, при этом данные будут автоматически переведены в текущую систему (т.н. "перепроецирование на лету"). Для расчета можно использовать именно ее. Это удобно тем, что для расчетов длин и площадей нам не нужно предварительно перепроецировать хранящиеся в географической СК слои в новую, расчетную СК (создавая таким образом копию данных). Недостаток данного способа в том, что расчеты идут не на реальной поверхности геоида, а на приближенной к нему спроецированной плоскости и чтобы получить точные результаты, мы должны для каждого отдельного случая правильно выбрать проекцию и задать ее параметры. Кроме того, в случае, если мы имеем дело с крупными географическими объектами, такими как континенты или земной шар в целом, для расчетов длин и площадей приходится использовать разные проекции. Подробнее о проекциях и их использовании для конкретных нужд можно почитать в пособии по картографическим проекциям.
  3. Расчет на эллипсоиде (Ellipsoid) — расчет пространственных характеристик объектов осуществляется на сфере или эллипсоиде. Использование данного метода позволяет получать наиболее точные результаты и не требует предварительных действий по перепроецированию или выбору проекции и подходит для всех типов геометрии (точек, линий и полигонов). Фактически, проекция данных игнорируется. В общем случае, рекомендуется использовать именно расчет на эллипсоиде.

На данный момент в QGIS реализовано два инструмента для расчета площадей:

  1. Инструмент "Экспорт/Добавить поле геометрии (входит в состав модуля fTools). Данный инструмент поддерживает все три способа расчета площадей (в СК слоя, в СК вида и на эллипсоиде).
  2. Набор функций для расчета пространственных характеристик в калькуляторе полей (Field Calculator), тут на настоящий момент реализована поддержка расчетов только в СК слоя.

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

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

Последовательность действий такова.

Инструмент доступен из меню ВекторОбработка геометрииЭкспортировать/Добавить поле геометрии После запуска инструмента открывается диалоговое меню предоставляющее следующие возможности:

Диалоговое окно инструмента "Экспортировать/Добавить поле геометрии": 1) выпадающий список для выбора слоя; 2) выбор способа расчетов; 3) выбор способа сохранения результатов.
  1. Выбор слоя для расчетов из списка
  2. Выбор способа расчета (подробнее). Здесь возможны три варианта:
    • В СК слоя (Layer CRS)
    • В текущей СК проекта (Project CRS)
    • На эллипсоиде (Ellipsoid)
  3. Выбор способа сохранения результата:
    • Установка галочки "Save to new shapefile" (Сохранить в новый Shape-файл) приведет к созданию нового слоя к которому будут добавлены дополнительные колонки с результатами расчетов.
    • Если галочка не установлена (по умолчанию это так), то соответствующие поля с результатами расчетов создаются в текущем слое.
  4. По окончании расчетов автоматически создаются колонки с результатами. Единицы измерения зависят от способа расчетов (в географической системе координат - это десятичные градусы; при расчетах в проекциях и эллипсоидальные - это метры).
  5. Для разных типов геометрии создаются следующие поля:
    • Для точечных слоев: XCOORD (долгота), YCOORD (широта)
    • Для линейных: LENGTH (длина)
    • Для полигональных: AREA (площадь), PERIMETER (периметр)


Пример 1. Вычисление координат точек в СК слоя

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

Запись

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

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

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


Add-geometry-column.png


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

Calculation-3.png


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

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


New-latlon-column.png

Пример 2. Вычисление координат точек в СК вида

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

1. Зададим СК проекта: WGS 84, UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную). Для этого выполним:

УстановкиСвойства проекта и откроем вкладку Система координат.

Установим галочку "Включить преобразование координат на лету"

В графе "Filter" наберем

UTM zone 44N

или код EPSG проекции:

32644

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

В меню "Coordinate reference systems of the world" Выберем "WGS 84 zone 44N".

Жмем "ОК".

Все слои вида отображаются теперь в выбранной нами проекции.


Change-coord-system.png


2. Теперь рассчитаем координаты точек в установленной нами СК проекта (вида):

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

Из выпадающего списка выберем poi-osm.shp.

В качестве способа расчета выберем СК проекта (Project CRS)

Сохраним результаты расчета в том же файле (галочка "Save to New shapefile" не установлена).

Нажмем "ОК".

После пересчета координат появится сообщение, что слой обновлен. Жмем "ОК".


Calculation-4.png


3. Проверим результат: Откроем таблицу атрибутов нового слоя: СлойОткрыть таблицу атрибутов

Добавились новые поля геометрии: XCOORD (долгота) и YCOORD (широта), причем, координаты выражены в метрах в установленной нами СК (WGS84/UTM zone 44N).


результат расчета

Аналогичным образом в СК вида рассчитываются пространственные характеристики линейных и полигональных слоев.

Пример 3. Вычисление координат точек на эллипсоиде

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

Важно: следует учитывать, что при расчете на эллипсоиде, координаты точек по умолчанию возвращаются в десятичных градусах, а длины и площади - в метрах независимо от СК вида или слоя.

Перед тем, как производить расчеты на эллипсоиде необходимо его выбрать, для этого выполним: УстановкиПараметры. На вкладке "Инструменты" выбрать из выпадающего списка "Эллипсоид для вычисления расстояний". По умолчанию это универсальный эллипсоид WGS 84.


Choose-ellipsoid.png

После выбора эллипсоида для расчетов, рассчитаем координаты точек:

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

2. Из выпадающего списка выберем poi-osm.shp.

3. В качестве способа расчета выберем расчет на эллипсоиде (Ellipsoid).

4. Сохраним результаты расчета в том же файле (галочка "Save to New shapefile" не установлена).

5. Нажмем "ОК".

6. После пересчета координат появится сообщение, что слой обновлен. Жмем "ОК".


Calculation-5.png

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

Имеем следующий результат:

LCS-ell-coord.png

Обратите внимание, что координаты точек рассчитанные в СК слоя (географической СК на эллипсоиде WGS-84 - поля COORD_GCS) полностью совпадают с координатами рассчитанными непосредственно на эллипсоиде WGS-84 (COORD_el).

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

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

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

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

  1. Сохранение слоя в прямоугольной проекции
  2. Создание и определение параметров поля для расчетов
  3. Применение одной из расчетных функций, полный список которых таков:
Функция Тип геометрии Описание
$x точка Возвращает координату X (долготу) точки.
$y точка Возвращает координату Y (широту) точки.
$length линия Возвращает длину линии.
xat линия Возвращает координату X (долготу) n-ой точки линии (индекс начинается с 0; отрицательные значения отсчитываются от последнего значения индекса).
yat линия Возвращает координату Y (долготу) n-ой точки линии (индекс начинается с 0; отрицательные значения отсчитываются от последнего значения индекса).
$perimeter полигон Возвращает периметр полигона.
$area полигон Возвращает площадь полигона.

Пример 4. Расчет площади с помощью калькулятора полей

Рассчитаем площади объектов в полигональном слое admin геосемпла (слой с административными границами областей) с помощью калькулятора полей.

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

  1. СлойСохранить как
  2. В открывшемся диалоговом окне выбираем формат для нового слоя (Shape-файл ESRI)
  3. Кодировка (System - кодировка установленная в вашей системе по умолчанию, в Windows - это CP-1251, в Linux - UTF-8).
  4. Выберем СК для создаваемого файла, выберем Selected CRS, это даст нам возможность выбрать необходимую систему координат. Жмем Обзор. Зададим проекцию для нового слоя WGS 84, UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную)
  5. В открывшемся окне выбора системы координат в графе "Filter" наберем
    UTM zone 44N
    или код EPSG проекции:
    32644
    . В результате останутся только те СК, которые содержат в названии это сочетание букв.
  6. В меню "Coordinate reference systems of the world" Выберем "WGS 84 zone 44N".
  7. Жмем "ОК".


Project layer.png


8. Добавляем вновь созданный shape-файл в проект.

9. Открываем атрибутивную таблицу.

10. Переводим слой в режим редактирования MActionToggleEditing.png, при этом становится активной кнопка запуска калькулятора полей.

11. Запускаем калькулятор полей, нажав на кнопку MActionCalculateField.png. Открывается диалоговое окно калькулятора полей, состоящее из меню параметров создания новых полей, списка функций и подсказок по ним, а также результирующей командной строки (Expression) куда будут внесены все требуемые команды для вычислений.

Далее возможно два варианта действий, в зависимости от того, имеется ли у вас в атрибутивной таблице требуемое поле.

  • Если поле отсутствует, необходимо его создать — поставить галочку "Создать новое поле" (Create New Field).
  • Если поле уже присутствует и необходимо только осуществить пересчет пространственных характеристик (например, после редактирования слоя, т.к. автоматически, при изменении пространственных объектов, их пространственные характеристики не пересчитываются), необходимо поставить галочку "Обновить существующее поле" и выбрать необходимое поле из выпадающего списка.

12. Создадим новое поле для записи результатов расчета площади. В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку "Create new field" (Создать новое поле).

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

Зададим параметры поля для расчета площади:

  • Зададим имя поля, например, "AREA"
  • Зададим тип поля: Десятичное число (Real)
  • Зададим размер поля: будем исходить из следующих соображений - площадь Земного шара - 510 072 000 000 000 м2, т.е. 15 значащих чисел необходимо для расчетов объектов площадь которых равна площади всего Земного шара. Добавляем значащее число на разделитель целой и дробной части и хотя бы одно значащее число на десятичный разряд (в случае использования типа "десятичное число" нельзя задать точность равную 0). Итого 17 значащих чисел должно хватить для расчетов на любых территориях.
  • Зададим точность: если нам достаточно точности в 1/10 метра, то ставим точность = 1, если нет, указываем количество знаков после запятой, не забывая прибавить их количество в графе "размер".

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

15. После всех манипуляций окно должно приобрести вид:

Column-definition.png

16. Жмем "ОК" и смотрим на атрибутивную таблицу. В новой колонке "AREA" отображаются предварительные результаты расчетов (не усеченные до 1-го знака после запятой. Нажимаем кнопку "Сохранить изменения" MActionFileSave.png. После этой операции данные записываются согласно настроенным нами параметрам поля: т.к. мы установили точность 1 знак после запятой, данные были округлены до 1-го знака после запятой. В случае, если результаты стали отрицательными, это означает, что недостаточно значащих знаков и нужно создать новое поле с большим количеством значащих знаков.

Заключение

В заключение, сделаем важное замечание: правилом хорошего тона считается документирование, какое ПО (версия) и какой инструмент использовались для расчета пространственных характеристик объектов. Дело в том, что в разном ПО используются отличающиеся алгоритмы расчетов, параметры (точность назначения) СК и эллипсоидов, что приводит к тому, что для одних и тех же данных рассчитанные пространственные характеристики несколько отличаются. В научном мире приоритет отдается алгоритмам имеющим открытый исходный код, чтобы каждый мог воспроизвести расчеты и найти ошибки алгоритмов. В связи с этим QGIS как инструмент в руках ученого предстает в более выгодном свете.

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

Ссылки

  1. Geosample: Открытый набор геоданных для различного ПО ГИС
  2. Получение основных пространственных характеристик объектов в Arcview GIS
  3. Получение основных пространственных характеристик объектов в ArcGIS
  4. О.А. Лебедева. Картографические проекции. Методическое пособие. Новосибирский учебно-методический центр по ГИС и ДЗ. Новосибирск, 2000 Скачать
  5. Часто задаваемые вопросы по координатам, проекциям, системам координат
  6. Сравнение разных способов вычисления длин и азимутов
  7. Описание проекций используемых GIS-Lab
  8. Ведение в ГИС на основе бесплатного ПО с открытым исходным кодом (проекциям посвящена 7-я глава): A Gentle GIS Introduction

Примечания