Gis-lab розрахунок основних просторових характеристик об’єктів в qgis
У статті описуються особливості отримання основних просторових характеристик об'єктів (координат, довжин, площ) зберігаються в shape-файлах при використанні вільної ГІС QGIS.
При написанні використана версія QGIS 1.9.90-Alpha ad955e2 [1]
[Ред] Вступні зауваження
Технічно, отримати координати, довжини або площі просторових об'єктів в сучасних ГІС досить просто. Набагато складніше зрозуміти наскільки точні значення які ми отримали, і що можна зробити для поліпшення точності отриманих величин.
Залежно від використовуваної для розрахунку системи координат (СК) і методу розрахунок просторових характеристик об'єкта можна здійснити трьома способами:
На даний момент в QGIS реалізовано два інструменти для розрахунку площ:
- Інструмент "Експорт / Додати поле геометрії (входить до складу модуля fTools). Даний інструмент підтримує всі три способи розрахунку площ (в СК шару, в СК виду і на еліпсоїді).
- Набір функцій для розрахунку просторових характеристик в калькуляторі полів (Field Calculator), тут на даний момент реалізована підтримка розрахунків тільки в СК шару.
Розглянемо використання різних інструментів QGIS для розрахунків просторових характеристик. У розрахунках, для перевірки збіжності результатів, будемо використовувати Geosample: Відкритий набір геоданих для різного ПО ГІС. Готовий проект для QGIS, що включає всі необхідні для даної статті шари, можна скачати тут.
[Ред] Використання fTools (інструмент "Додати поле геометрії")
Послідовність дій така.
Інструмент доступний з меню Вектор → Обробка геометрії → Експортувати / Додати поле геометрії Після запуску інструменту відкривається діалогове меню надає наступні можливості:

Діалогове вікно інструменту "Експортувати / Додати поле геометрії": 1), що випадає для вибору шару; 2) вибір способу розрахунків; 3) вибір способу збереження результатів.
- Вибір шару для розрахунків зі списку
- Вибір способу розрахунку (докладніше). Тут можливі три варіанти:
- У СК шару (Layer CRS)
- У поточній СК проекту (Project CRS)
- На еліпсоїді (Ellipsoid)
- Вибір способу збереження результату:
- Установка галочки "Save to new shapefile" (Зберегти в новий Shape-файл) призведе до створення нового шару до якого будуть додані додаткові колонки з результатами розрахунків.
- Якщо галочка не встановлена (за замовчуванням це так), то відповідні поля з результатами розрахунків створюються в поточному шарі.
- Після закінчення розрахунків автоматично створюються колонки з результатами. Одиниці виміру залежать від способу розрахунків (в географічній системі координат - це десяткові градуси; при розрахунках в проекціях і еліпсоїдальні - це метри).
- Для різних типів геометрії створюються такі поля:
- Для точкових шарів: XCOORD (довгота), YCOORD (широта)
- Для лінійних: LENGTH (довжина)
- Для полігональних: AREA (площа), PERIMETER (периметр)
[Ред] Приклад 1. Обчислення координат точок в СК шару
1. Завантажимо в QGIS шар poi-osm.shp (точкові об'єкти OSM) з геосемпла. Перевіримо в якій СК знаходиться даний шар. Для цього в менеджері шарів клацнемо по ньому правою кнопкою миші і в випадаючому меню виберемо пункт "Властивості". У діалоговому вікні виберемо вкладку "Метадані".
означає, що дані знаходяться в географічній СК. Таким чином, для того, щоб отримати координати точок в десяткових градусах, перепроеціровать нічого не потрібно.
2. Виконаємо Vector → Обробка геометрії → Експортувати / Додати поле геометрії

Повертає площа полігону.
[Ред] Приклад 4. Розрахунок площі за допомогою калькулятора полів
Розрахуємо площі об'єктів в полігональному шарі admin геосемпла (шар з адміністративними кордонами областей) за допомогою калькулятора полів.
Як вже було сказано, калькулятор полів проводить розрахунки в СК шару. З цього, для розрахунків довжин і площ, а також координат точок в метрах, нам необхідно мати шари в прямокутних СК. Шар admin знаходиться в географічній СК, з цього нам попередньо необхідно перепроеціровать його в прямокутну СК, для цього виконуємо:
- Шар → Зберегти як
- У діалоговому вікні вибираємо формат для нового шару (Shape-файл ESRI)
- Кодування (System - кодування встановлена в вашій системі, в Windows - це CP-1251, в Linux - UTF-8).
- Виберемо СК для створюваного файлу, виберемо Selected CRS. це дасть нам можливість вибрати необхідну систему координат. Тиснемо Огляд. Задамо проекцію для нового шару WGS 84, UTM zone 44N (дані геосемпла лежать в трьох зонах UTM, з 43N по 45N, для зменшення спотворень розрахунків ми візьмемо центральну)
- У вікні вибору системи координат в графі "Filter" наберемо або код EPSG проекції. В результаті залишаться тільки ті СК, які містять в назві це поєднання букв.
- В меню "Coordinate reference systems of the world" Виберемо "WGS 84 zone 44N".
- Тиснемо "ОК".

8. Додаємо новостворений shape-файл в проект.
9. Відкриваємо атрибутивную таблицю.
10. Переводимо шар в режим редагування. при цьому стає активною кнопка запуску калькулятора полів.
11. Запускаємо калькулятор полів, натиснувши на кнопку. Відкривається діалогове вікно калькулятора полів, що складається з меню параметрів створення нових полів, у списку опцій і підказок по ним, а також результуючої командного рядка (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. Після всіх маніпуляцій вікно повинно набути вигляду:

16. Тиснемо "ОК" і дивимося на атрибутивную таблицю. У новій колонці "AREA" відображаються попередні результати розрахунків (НЕ усічені до 1-го знака після коми. Натискаємо кнопку "Зберегти зміни". Після цієї операції дані записуються згідно налаштованим нами параметрами поля: тому що ми встановили точність 1 знак після коми , дані були округлені до 1-го знака після коми. У разі, якщо результати стали негативними, це означає, що недостатньо значущих знаків і потрібно створити нове поле з великою кількістю значущих знаків.
[Ред] Висновок
На закінчення, зробимо важливе зауваження: правилом хорошого тону вважається документування, яке ПЗ (версія) і який інструмент використовувалися для розрахунку просторових характеристик об'єктів. Справа в тому, що в різному ПО використовуються відрізняються алгоритми розрахунків, параметри (точність призначення) СК і еліпсоїдів, що призводить до того, що для одних і тих же даних розраховані просторові характеристики дещо відрізняються. У науковому світі пріоритет віддається алгоритмам які мають відкритий вихідний код, щоб кожен міг відтворити розрахунки і знайти помилки алгоритмів. У зв'язку з цим QGIS як інструмент в руках вченого постає в більш вигідному світлі.
При розрахунках довжин і площ з використанням проекцій необхідно також вказувати, які саме проекції використовувалися, особливо це стосується розрахунків в глобальному охопленні, тому що чим більше охоплення території, тим більше різниця в результатах розрахунків виконаних в різних проекціях.