Невозможно выполнить растровый расчет с использованием 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.