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

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

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

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

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

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

Добавлено: 07 ноя 2011, 22:36
Voltron
Можно задать радиус поиска значений (как далеко от дырки искать) и количество проходов интерполяции (по умолчанию проход один). Сама интерполяция выполяется с использованием окна 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.

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

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

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

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

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

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

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

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

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

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

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