Как посчитать площадь в QGIS?

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Как посчитать площадь в QGIS?

Сообщение Natalia Novoselova » 11 сен 2017, 05:39

Как посчитать площадь в QGIS?
Пытаюсь разобраться, как посчитать площадь в QGIS для множества полигонов. Оба найденных способа не могу довести до результата.
1. Через Field Calculator. Там есть две опции $area (как поняла, он считает площадь одного объекта?) и area. Там нужно задать формулу в Expression. Как это сделать? Написанное в хелпе к обоим опциям – не дает никаких подсказок. Точнее мне это абсолютно непотяно. В
$area в Example дается
$area → 42
Что такое 42?? Номер поля в котором нужно произвести расчет? Пробовала – нет, ошибка. Пробовала все подряд номера. Нет никакой идеи, что это может быть. :roll: Syntax в area – аналогично непонятен.
geometry polygon geometry object
Examples
area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8.0
Вероятно, существуют огромные учебники, где все это изложено. Но, думаю, там это изложено примерно таким же образом – то есть непонятно пока не въедешь в систему.

Как правильно задать выражение? Мне нужно посчитать площади для множества полигонов в новом поле "Area".

2.Второй способ – через плагин CalcArea. В плагине написано:
this plugin calculates the area of a polygon while it's being created or edited
Опять – как я не пыталась, он у меня не работает. Тему ставила в режим редактиования, пересохраняла. Не считает. Каким образом он работает?
Вид у меня в метрической системе координат UTM 22s zone

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Как посчитать площадь в QGIS?

Сообщение Natalia Novoselova » 11 сен 2017, 07:47

Вроде бы получилось добиться результата с оператором $area. Но не ясно, насколько удовлетворительного. Он посчитал площадь для всех объектов в квадратных метрах. Узнала я это путем проверки через подсчет площади при помощи опции идентификатор( “i” со стрелочкой), который по клику на объект выдает площадь и ее единицы измерения под «Derived».


Но не радует то, что помогло это сделать не логика и понимание того, что написано, а метод научного тыка. Нужно было не обращать внимание на пример ($area → 42) просто вбить сам оператор $area в окно Expression и задать название поля в Output field name, а также тип числа (Decimal number (real), Precision 3.
1. К чему относится данный к оператору пример $area → 42 – не смогла понять. :(
2. Почему для оператора $area написано «Returns the area of the current feature» (т.е. должен по идее считать для одного объекта), а он посчитал для всех? Может быть, этот пример $area → 42 как раз о выборе объекта, но НЕТ, когда задала название поля и записала этот пример в Expression – не сработало.
3.Можно ли задать настройку, чтобы площадь он считал в квадратных километрах?
4. Для чего нужен оператор area – если площадь для всех объектов выполняет $area. В чем их различие?
5. Но вообще, главный вопрос. Несколько объектов он посчитал с ОТРИЦАТЕЛЬНОЙ площадью. :shock: Как такое может быть??? Помещаю один в приложении. Отрицательную площадь (-149 sq m) показывает и Идентификатор, и расчет $area. Теперь вообще не знаю, можно ли доверять всем результатам. ЧТО он считает если выдал отрицательную площадь? Что означает отрицательная площадь?
Вложения
pic2.jpg
pic2.jpg (98.21 КБ) 15273 просмотра

trir
Гуру
Сообщения: 5287
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как посчитать площадь в QGIS?

Сообщение trir » 11 сен 2017, 08:00

Но вообще, главный вопрос. Несколько объектов он посчитал с ОТРИЦАТЕЛЬНОЙ площадью. :shock: Как такое может быть???
просто другое направление обхода

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Как посчитать площадь в QGIS?

Сообщение Natalia Novoselova » 11 сен 2017, 08:05

trir писал(а):
11 сен 2017, 08:00
просто другое направление обхода
Как это? Куда обход? :cry: :?:
Я могу убрать минус и использовать 149 sq m как площадь оранжевой фигуры?

Если бы узнать, как работает этот плагин CalcArea, то можно было бы проверить эти значения..

trir
Гуру
Сообщения: 5287
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как посчитать площадь в QGIS?

Сообщение trir » 11 сен 2017, 08:12


Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2229
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1501
Откуда: Казань

Re: Как посчитать площадь в QGIS?

Сообщение Игорь Белов » 11 сен 2017, 08:14

  1. "→ 42" — просто пример вывода.
  2. Калькулятор полей работает для каждой записи. К вычислению площадей это тоже относится.
  3. Геометрия считается в единицах проекции. Хотите вывод в квадратных километрах, чуть усложните выражение:

    Код: Выделить всё

    $area * 1e6
  4. $area — частный случай функции area( "какая-то произвольная геометрия" ), когда "какая-то произвольная геометрия" равна $geometry.
  5. Здесь самое время поделиться образцом данных и полной информацией о программе и операционной системе.
The purpose of computing is insight, not numbers

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Как посчитать площадь в QGIS?

Сообщение Natalia Novoselova » 11 сен 2017, 14:52

Игорь Белов писал(а):
11 сен 2017, 08:14
$area — частный случай функции area( "какая-то произвольная геометрия" ), когда "какая-то произвольная геометрия" равна $geometry.
Примерно понятно. Но почему тогда для area совсем другой способ задания выражения? Что он делает (хоть для примера).
Здесь самое время поделиться образцом данных и полной информацией о программе и операционной системе.
Windows 8 (2012), 64 bit operating system
QGIS 2.18.1
В приложении дана выборка из слоя полигональной темы, для которого считала площадь. Поместила туда по нескольку объектов с отрицательной площадью, с очень низкой положительной и с высокой положительной площадью (поле «test3»). Шейп в проекции UTM zone 22s (пересохраняла перед расчетом площади из шейпа другой проекции путем выбора этой проекции, весь Вид был в той же проекции при использовании $area).

Буду очень признательна, если кто-то проверит расчет площади! Мои вопросы:
- Площадь вообще посчитана верно?
- Что означает отрицательная площадь, и как от нее перейти к площади объекта (можно ли просто убрать минус)?
Вложения
AtlanForestFragmP1_EX.zip
(46.6 КБ) 275 скачиваний

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Как посчитать площадь в QGIS?

Сообщение freeExec » 11 сен 2017, 15:41

Проверьте площадь на квадратном участке размера 100м х 100м.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2229
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1501
Откуда: Казань

Re: Как посчитать площадь в QGIS?

Сообщение Игорь Белов » 11 сен 2017, 17:52

Данные в приложении определённо не в UTM: значения координат слишком малы, как и размеры объектов. А для географических координат они слишком велики.
The purpose of computing is insight, not numbers

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Как посчитать площадь в QGIS?

Сообщение Natalia Novoselova » 11 сен 2017, 18:01

Игорь Белов писал(а):
11 сен 2017, 17:52
Данные определённо не в UTM: значения координат слишком малы, как и размеры объектов. А для географических координат они слишком велики.
Да.

Я кажется сама нашла свою ошибку!
Суть в том, что я меняла проекцию в шейпе с в EPSG:4326 на EPSG:32722 (UTM 22s). Поскольку это надо для расчета площади в метрах, а не в градусах. И при этом поменяла в свойствах на эту же проекцию весь проект (сделав его EPSG:32722). До этого и там, и там была Географическая СК (EPSG:4326)


И это вот это дало то странное, что сохраненный новый шейп (пример которого дала выше) - неясно как сохранился. То есть он не совпадает с исходной темой, ОТ которой сохранялся в EPSG:32722. И вот от этого возникли отрицательные площади. P.S. Уточнение - при таком сохранении он тему развернул еще на 90 гр.

Не знаю, нашла ли я (по своему обыкновению) какую-то существ. ошибку (поставив софт в непонятную для него ситуацию), или это в порядке вещей.. :oops:


Сейчас аккуратно все повторила, оставив проект в EPSG:4326, но переведя тему в EPSG:32722 (UTM 22s), и отрицательной площади уже нет. Со значением идентификатора площади совпадают. И с небольшими отличиями совпадает с площадью, посчитанной по этим полигонам в ArcGIS (ее расчет остался в теме с прошлых времен, сейчас не могу его повторить). Н-р от аркгис 1606597959.3 sq m, а здесь посчиталось 1618227743.00 sq m
то есть разница на 11.6 sq km для самого большого фрагмента.
Последний раз редактировалось Natalia Novoselova 11 сен 2017, 20:06, всего редактировалось 1 раз.

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Как посчитать площадь в QGIS?

Сообщение Natalia Novoselova » 11 сен 2017, 19:23

freeExec писал(а):
11 сен 2017, 15:41
Проверьте площадь на квадратном участке размера 100м х 100м.
Да, хороший способ. Проверила теперь - все сходится.

Так что... не знаю, как же мне удалось достигнуть такой ошибки.. Мне казалось (по аналогии с аркгис), что Вид и Тема должны быть в одинаковой проекции. А здесь - это вызвало ошибку. :roll: :cry: Ладно. Буду делать так, как понялось правильным. :)

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей