Розрахунок площ багатокутника в QGIS?


72

Як обчислити площі форми профілю площі в квадратних метрах або в гектарах (га)?

Я не знайшов цю функціональність у векторних інструментах.


Подальше запитання: у мене шар у державному літаку NAD83. Коли я використовую ці команди, він створює область в стопах. Що робити, якщо я хочу десятин або квадратних миль? Спасибі
C_K

Два відповіді дають можливість працювати, але їх реалізація трохи повільна, особливо коли намагається визначити площу багатьох багатокутних векторних файлів. Чи не існує плагіна чи іншого способу отримати площу багатокутника, просто клацнувши правою кнопкою миші? Надані відповіді закінчуються новим атрибутом поля (тобто областю), але значення не змінюється, якщо полігон змінено. Отже, у багатьох випадках немає необхідності відображати область в окремому атрибуті поля. Якби область могла бути просто показана як цифра на невеликій діаграмі, внизу сторінки тощо, було б достатньо. Отже, це
Девід

2
За допомогою інструменту ідентифікації натисніть на багатокутник. Площа обчислюється та відображається у розділі "Отримані" у вікні ідентифікації. Ви можете змінити одиниці в налаштуваннях.
csk

Відповіді:


70

Зробіть шар редагованим, а потім скористайтеся калькулятором поля (Шар> Відкрити таблицю атрибутів> Калькулятор поля / Ctrl + I або клацніть правою кнопкою миші форму форми> Відкрити таблицю атрибутів> Польовий калькулятор / Ctrl + I). Існує оператор "$ area", який обчислить площу кожного ряду в таблиці. Усі одиниці будуть обчислюватися в одиницях проекції, тому, ймовірно, ви хочете спроектувати його на проекцію, яка перед цим використовує ноги або метри, а не lat / lon.


6
У поточних версіях QGIS, якщо ваші дані перебувають у географічній CRS, ви можете використовувати функцію transform () для проектування геометрій на проектовану систему (бажано, рівну площу) без необхідності копіювання даних. У калькуляторі поля щось подібне повинно працювати: область ($ геометрія, 'EPSG: 4326', 'EPSG: 3763')
Олександр Нето

9
@AlexandreNeto: Ви маєте на увазі area(transform($geometry, 'EPSG:4326','EPSG:3763'))?
Стюарт Макдональд

@smacdonald так, моя помилка.
Олександр Нето

18

Це також можна зробити, використовуючи векторні | Інструменти геометрії | Додати / експортувати геометричні стовпці, що створює новий профіль форми з доданими стовпцями області та периметра (або довжини).

Редагувати: (скориставшись інструментом, наведеним вище, ви також можете зняти "зберегти як новий файл форми" у V1.8; файл форми тепер лише оновлюється!)

Використання калькулятора поля, мабуть, є кращою ідеєю, оскільки не вимагає створення нового файлу форм.


Ви не можете змінити атрибути файлу форми без попереднього ввімкнення редагування. Майте на увазі, що всі одиниці будуть обчислюватися в одиницях проекції (за замовчуванням метрів bu), тож спершу потрібно перепроектувати його на проектовану систему координат.
Хасан Мустафа

4

Я написав сценарій спеціально для цього. Якщо ви не хочете відтворювати свої дані, ви можете обчислити область за допомогою еліпсоїдальної математики.

Processing Toolbox -> Tools -> Get scripts from on-line scripts collection -> Ellipsoidal Area

Ви знайдете встановлений сценарій Processing Toolbox -> Utils -> Ellipsoidal area

Інструмент повинен бути роз'яснювальним і дозволить розрахувати площу в одиницях на ваш вибір незалежно від проекції.


Чи можете ви навести кращий приклад як код?
Лео Леопольд Герц 준영

0

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

Label-> round($area/10000,2)||' ha'

Таким чином, вам не потрібно пам’ятати, щоб оновлювати зони водозбору в таблицях атрибутів так часто.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.