Страница 1 из 1

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

Добавлено: 11 сен 2017, 05:39
Natalia Novoselova
Как посчитать площадь в 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

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

Добавлено: 11 сен 2017, 07:47
Natalia Novoselova
Вроде бы получилось добиться результата с оператором $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. Теперь вообще не знаю, можно ли доверять всем результатам. ЧТО он считает если выдал отрицательную площадь? Что означает отрицательная площадь?

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

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

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

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

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

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

Добавлено: 11 сен 2017, 08:12
trir

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 11 сен 2017, 18:01
Natalia Novoselova
Игорь Белов писал(а):
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 для самого большого фрагмента.

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

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

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