Возможно растр использовать как маску?
-
- Активный участник
- Сообщения: 186
- Зарегистрирован: 28 июл 2018, 08:40
- Репутация: 12
- Откуда: Киев
Возможно растр использовать как маску?
Необходимо выявить изменения, которые произошли в течение года
В качестве точки отчета используется выделенное отдельно территория (зеркало воды водохранилища весной). Оно сделано.
Теперь из других снимков нужно вырезать для анализа эту территорию. Векторизовать вручную не вариант, т.к. много островов и мелких водотоков. А автоматическая векторизация дает много ошибок.Пример на рисунке.
Какие есть варианты?
В качестве точки отчета используется выделенное отдельно территория (зеркало воды водохранилища весной). Оно сделано.
Теперь из других снимков нужно вырезать для анализа эту территорию. Векторизовать вручную не вариант, т.к. много островов и мелких водотоков. А автоматическая векторизация дает много ошибок.Пример на рисунке.
Какие есть варианты?
- Вложения
-
- Снимок экрана.png (109.55 КБ) 9472 просмотра
-
- Активный участник
- Сообщения: 107
- Зарегистрирован: 16 июл 2015, 15:21
- Репутация: 35
- Откуда: Санкт-Петербург
Re: Возможно растр использовать как маску?
grass r.mask.rast
-
- Активный участник
- Сообщения: 186
- Зарегистрирован: 28 июл 2018, 08:40
- Репутация: 12
- Откуда: Киев
Re: Возможно растр использовать как маску?
Спасибо за ответ!
Но у меня обрезка выполняется не корректно с ошибкой
Но у меня обрезка выполняется не корректно с ошибкой
Код: Выделить всё
r.external завершен. Link to raster map <rast_5d3adae31e1dc19> created.
ОШИБКА: The raster map <rast_5d3adae31e13218> must be integer (CELL type) in order to use the 'maskcats' parameter
Checking GDAL data type and nodata value...
2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100
Using GDAL data type <Float32>
Input raster map contains cells with NULL-value (no-data). The value -nan will be used to represent no-data values in the input map. You can specify a nodata value with the nodata option.
Exporting raster data to GTiff format...
ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF format.
- oldbay
- Участник
- Сообщения: 53
- Зарегистрирован: 14 июл 2015, 11:46
- Репутация: 19
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Возможно растр использовать как маску?
Отслеживать изменения береговой линии при помощи растра малоэффективно, я бы попытался векторизовать.
Скажем, использовал водный индекс NDWI для более чёткого выделения воды на снимке. Потом перевёл бы его по определённому пороговому значению в битмап. Полученный растр уже векторизовал, при необходимости произведя определённую предварительную обработку - если много будет на нём "мусора".
Причём подобную схему уже использовал для Волго-Ахтубинской поймы.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Возможно растр использовать как маску?
а зачем вообще векторизовать? Анализируйте в растре, и будем вас щастье. И вообще, для отслеживания изменений были придуманы алгоритмы change detection, например MAD.
Nielsen, A. A. (1996). Change detection in multispectral, bi-temporal spatial data using othogonal transformations. Proceedings of the 8th Australien Remote Sensing Conference, Canberra, Australia, March.
Nielsen, A. A. and Conradsen, K. (1997). Multivariate alteration detection (mad) in multispectral, bi-temporal data: A new approach to change detection studies. Technical Report IMM-REP-1997.Technical University of Denmark Lyngby, 11.
-
- Активный участник
- Сообщения: 186
- Зарегистрирован: 28 июл 2018, 08:40
- Репутация: 12
- Откуда: Киев
Re: Возможно растр использовать как маску?
Спасибо ответившим!
Вдогонку. Мне затем нужно будет вытащить значения NDVI, разбить по интервалам и дать основную статистику.
Так я и спрашиваю порядок действий или штатными возможностями программы или плагином. И еще. Т.к. новичок, возможно пропускаю какие-то тривиальные шаги.Анализируйте в растре, и будем вас щастье. И вообще, для отслеживания изменений были придуманы алгоритмы change detection, например MAD.
Вдогонку. Мне затем нужно будет вытащить значения NDVI, разбить по интервалам и дать основную статистику.
-
- Активный участник
- Сообщения: 123
- Зарегистрирован: 02 июн 2012, 12:02
- Репутация: 35
Re: Возможно растр использовать как маску?
Вы пытаетесь сравнивать теплое с мягким. Нужно подобрать алгоритм выделения водной поверхности такой, чтобы получить результат, достаточно близкий к уже имеющемуся (видимо, весной это было сделано вручную?) по старым снимкам (по которым вручную выделяли). Далее этим алгоритмом проанализировать и старый и новый снимки и сравнить результаты. Притом анализировать надо одни и те же каналы снимков одного типа в равном разрешении.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Возможно растр использовать как маску?
у вас принципиально неверная постановка. Нужно идти от задачи, а не от кнопок, вряд ли найдете готовые. Нужно собирать цепочку, и таких цепочек для каждой задачи может быть много. А "выявить изменения" - это ни о чем. Сначала разберитесь, какие изменения и в чем вы собираетесь искать, и как это отражается в спектре. К примеру, MAD ловит "атипичные" изменения спектра, однако, если у вас в водоеме несколько разных экосистем, и они меняются по разному, то изменения маленькой по площади системы будут приняты за "атипичные", хотя для нее они типичны - значит, нужно предварительно разбить территорию по глубинам, по типу растительности, по характеру водообмена, выносу твердых веществ, еще как-то в соответствии с задачами.
Кстати, MAD умеет сравнивать снимки разных приборов ,с разным разрешением, без атмосферной коррекции, и т.д.
- gimran
- Гуру
- Сообщения: 1902
- Зарегистрирован: 07 июл 2010, 15:43
- Репутация: 242
- Откуда: Уфа
Re: Возможно растр использовать как маску?
Попробуйте в калькуляторе растров (выбрав один канал) "если значение пикселя больше или равно ..., то 1, а иначе 0", получив слой, состоящий из двух значений, а потом уже векторизуйте результат.
Ну или посчитайте ndvi, а потом его векторизуйте (в крайнем случае - сам ndvi потом переведите в "1 или 0" по совету выше).
Ну или посчитайте ndvi, а потом его векторизуйте (в крайнем случае - сам ndvi потом переведите в "1 или 0" по совету выше).
- gimran
- Гуру
- Сообщения: 1902
- Зарегистрирован: 07 июл 2010, 15:43
- Репутация: 242
- Откуда: Уфа
Re: Возможно растр использовать как маску?
В Вашем случае - для каждого снимка рассчитайте NDVI, а затем рассчитайте dNDVI.
dNDVI=NDVI1-NDVI2
И анализируйте dNDVI - как раз получите различия между разновременными снимками.
dNDVI=NDVI1-NDVI2
И анализируйте dNDVI - как раз получите различия между разновременными снимками.
-
- Активный участник
- Сообщения: 186
- Зарегистрирован: 28 июл 2018, 08:40
- Репутация: 12
- Откуда: Киев
Re: Возможно растр использовать как маску?
Спасибо всем откликнувшимся!
Опишу задачу более детально.
Нужно определить изменения индекса NDVI по сезону и по годам для водохранилища (в последнее время разросся орех водяной и вытесняет другие ценозы).
Использовал снимки спутника Sentinel-2 и сделал для них атмосферную коррекцию.
Я знаю об индексе dNDVI и планировал его использовать. Но мне нужна растительность, находящаяся исключительно внутри зеркала водоема. Точкой отчета (маской) планировал использовать весенние данные как эталон. И в этом у меня затык.
Опишу задачу более детально.
Нужно определить изменения индекса NDVI по сезону и по годам для водохранилища (в последнее время разросся орех водяной и вытесняет другие ценозы).
Использовал снимки спутника Sentinel-2 и сделал для них атмосферную коррекцию.
Я знаю об индексе dNDVI и планировал его использовать. Но мне нужна растительность, находящаяся исключительно внутри зеркала водоема. Точкой отчета (маской) планировал использовать весенние данные как эталон. И в этом у меня затык.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Возможно растр использовать как маску?
1) NDVI на воде не работает
2) весной поверхностным стоком столько всякого в реку несет, что вы будете сравнивать теплое с кислым.
3) для начала попробуйте классифицировать снимки в пределах водной поверхности, хоть изодатой, и посмотреть, выделяются вообще сообщества или нет. Задайте побольше классов.
4) по поводу маски - проще обнулить все вне пределов воды попиксельно (умножить на пиксельную маску воды), все вне воды улетит в один класс.
2) весной поверхностным стоком столько всякого в реку несет, что вы будете сравнивать теплое с кислым.
3) для начала попробуйте классифицировать снимки в пределах водной поверхности, хоть изодатой, и посмотреть, выделяются вообще сообщества или нет. Задайте побольше классов.
4) по поводу маски - проще обнулить все вне пределов воды попиксельно (умножить на пиксельную маску воды), все вне воды улетит в один класс.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 35 гостей