gdal_fillnodata: примеры обработки

Ответить
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

gdal_fillnodata: примеры обработки

Сообщение Voltron » 07 ноя 2011, 22:27

Понадобилось найти несколько файлов для тестирования gdal_fillnodata, Максим посоветовал поискать SRTM с «дырками» и попросил потом поделиться красивыми картинками, что я и делаю. Слева направо и сверху вниз: исходный фрагмент с «дырками», после обработки gdal_fillnodata, теневая отмывка по обработанному растру.
n320n017.png
N32w017
n320n017.png (246.5 КБ) 7271 просмотр
Видно, что для больших «дырок» результат не очень хорош. Возможно, поигравшись с настройками, его можно улучшить. Еще один пример
n46e009.png
N46E009
n46e009.png (1.02 МБ) 7271 просмотр

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: gdal_fillnodata: примеры обработки

Сообщение Максим Дубинин » 07 ноя 2011, 22:29

а в коде реально отрегулировать размеры заливаемых пропусков? и еще, понятно ли из него вообще какой там алгоритм работы однопроходный или итерационный какой-то?
пристегивайтесь, турбулентность прямо по курсу

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: gdal_fillnodata: примеры обработки

Сообщение Voltron » 07 ноя 2011, 22:36

Можно задать радиус поиска значений (как далеко от дырки искать) и количество проходов интерполяции (по умолчанию проход один). Сама интерполяция выполяется с использованием окна 3x3.
В коде алгоритм описан как
This algorithm will interpolate values for all designated nodata pixels (marked by zeros in hMaskBand). For each pixel a four direction conic search is done to find values to interpolate from (using inverse distance weighting). Once all values are interpolated, zero or more smoothing iterations (3x3 average filters on interpolated pixels) are applied to smooth out artifacts.
Последний раз редактировалось Voltron 07 ноя 2011, 22:39, всего редактировалось 1 раз.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: gdal_fillnodata: примеры обработки

Сообщение Александр Мурый » 07 ноя 2011, 22:38

Вообще было бы неплохо увидеть примеры gdal_fillnodata с параметрами :)
Ну и интересно сравнить с работой грассовского r.fillnulls (он неплохо "латает" дыры в том же SRTM интерполяцией сплайнами).
А здесь, как я понял, IDW ?
Редактор материалов, модератор форума

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: gdal_fillnodata: примеры обработки

Сообщение Voltron » 07 ноя 2011, 22:46

С какими параметрами? Все с настройками по умолчанию, т.е. радиус поиска 100 пикселей, без сглаживания.
Сравнивать с GRASS не берусь, сказать какой именно алгоритм тоже не скажу, т.к. разбираться в коде мне сейчас не хочется

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: gdal_fillnodata: примеры обработки

Сообщение Александр Мурый » 07 ноя 2011, 22:53

Voltron писал(а):С какими параметрами? Все с настройками по умолчанию, т.е. радиус поиска 100 пикселей, без сглаживания.
Спасибо, этих сведений-то я и домогался :)
Voltron писал(а):Сравнивать с GRASS не берусь, сказать какой именно алгоритм тоже не скажу, т.к. разбираться в коде мне сейчас не хочется
Сам сравню, это были просто мысли вслух.

Можно попросить сделать в gdal_countour изолинии с каким-нибудь шагом по "исправленным" первому и второму рельефу и выложить картинки? Заранее спасибо.
Редактор материалов, модератор форума

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: gdal_fillnodata: примеры обработки

Сообщение Voltron » 08 ноя 2011, 12:27

amuriy писал(а):Можно попросить сделать в gdal_countour изолинии с каким-нибудь шагом по "исправленным" первому и второму рельефу и выложить картинки? Заранее спасибо.
Команда

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

gdal_contour -i 500.0 inraster.tif outlines.shp
Результаты
isol-02.png
N32W017
isol-02.png (122.6 КБ) 7210 просмотров
isol-01.png
N46E009
isol-01.png (523.2 КБ) 7210 просмотров

Ответить

Вернуться в «GDAL/OGR»

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

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