Определить площадь растра одного цвета

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Определить площадь растра одного цвета

Сообщение _taras_ » 30 янв 2019, 20:15

Доброго времени.
Я обрезал по нужной мне области, разбил снимок на одноканальное псевдоцветное изображение и записал отдельными слоями. Теперь нужно найти общую площадь всех пикселей слоя. Подскажите, пожалуйста, как это сделать?
Вложения
layer.jpg
пример
layer.jpg (302.68 КБ) 4418 просмотров

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: Определить площадь растра одного цвета

Сообщение darsvid » 30 янв 2019, 21:16

Processing -> Raster analysis -> Raster layer unique values report
делает отчет по уникальным значениям растра - считает кол-во пикселей и площадь
Также в GRASS r.report

_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Re: Определить площадь растра одного цвета

Сообщение _taras_ » 30 янв 2019, 21:42

Спасибо за подсказку.
В результатах неясно

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

NODATA pixel count: 150319
Значение	Pixel count	Площадь (deg²)
0	           77972	        0.05417483069202151
1	             9411	        0.006538748930931802
Что значит NODATA pixel?
Площадь определяется умножением Pixel count на Площадь (deg²)? И в каких единицах измеряется?

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: Определить площадь растра одного цвета

Сообщение darsvid » 30 янв 2019, 21:49

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

Площадь считается в единицах проекции вашего растра (кол-во пикселей*разрешение растра), в данном случае - градусах. Для подсчета значений в м кв. растр следует перепроецировать из географической системы координат (WGS84) в прямоугольную (UTM, для этой территории 35 зона)

_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Re: Определить площадь растра одного цвета

Сообщение _taras_ » 30 янв 2019, 22:39

Делаю так. Выделяю нужный слой, растр->проекции-> перепроецирование
целевая СК
EPSG:3189-GR96 / UTM zone 35 N
остальное по умолчанию.
Результат

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

Значение	Pixel count	Площадь (m²)
0	          77972	       0.05416385670209518
1	            9411	       0.006537424401367386
Почему-то результат слишком маленький 9411×0,006537424401367386=61,523701041 м2?
Где ошибаюсь? Файл исходный приложил.
Вложения
0_5.tif.zip
(15.29 КБ) 258 скачиваний

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: Определить площадь растра одного цвета

Сообщение darsvid » 31 янв 2019, 12:06

Потому что вашему начальному растру по ошибке присвоена неверная проекция (на самом деле он в WGS84, но присвоена UTM). Что нужно сделать:

1. Назначить исходному растру правильную проекцию с помощью Raster -> Projections -> Assign Projection
Установить Desired SRS - EPSG:4326, после выполнения растр закрыть и открыть снова и убедиться, что в Properties - Information написано CRS EPSG:4326 - WGS 84 - Geographic

2. Исправленный растр перепроецировать через Raster -> Projections -> Warp (Reproject)
Source CRS - EPSG:4326
Target CRS - EPSG: 32635
Resampling method - Nearest Neighbour

Опять же проверить в свойствах слоя разрешение (у меня получился Pixel Size 78.4702,-78.4702)

3. Посчитать статистику

Ответить

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

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

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