Невозможно выполнить растровый расчет с использованием GDAL

У меня возникли проблемы с выполнением растрового расчета через GDAL. Я пытаюсь преобразовать растр в dB через уравнение ниже.

A = мой растровый файл

"10*log10(power(A,2))-83"

С помощью gdal_calc это выглядит следующим образом.

C:\>gdal_calc.py -A "C:\Users\moses\Desktop\Calc_Test\test444.img" 
--outfile="C:\Users\moses\Desktop\Calc_Test\test555.img" 
--calc="10*log10(power(A,2))-83" --debug --overwrite

Я пытался сделать это в отдельных частях. Итак, поднимите растр до второй степени, затем получите log10 этого результата. Но каждый раз, когда я делаю это, я получаю следующую ошибку...

: 1: RuntimeWarning: деление на ноль, встречающееся в log10

Есть идеи, как мне решить эту проблему?

Заранее спасибо за любую потенциальную помощь.

1 ответ

Решение

Видимо, некоторые из ваших значений пикселей содержат нули. Так что, если вы берете log10(0), это возвращает -Inf что вызывает ошибку.

Попробуй это:

C:\>gdal_calc.py -A "C:\Users\moses\Desktop\Calc_Test\test444.img" --outfile="C:\Users\moses\Desktop\Calc_Test\test555.img" --calc="10*log10(power(A+0.0001,2))-83" --debug --overwrite

Или установите ваши 0 значений на NA.

Другие вопросы по тегам