У меня есть набор растров (.vrt) с ежедневными данными влажности почвы. Я хочу суммировать пиксели всех растров, чтобы иметь меру по месяцам. Однако весь мир не покрывается каждый день, что приводит к значениям узлов в местах, где существуют меры для других дней.
Что я хочу сделать, это суммировать значения каждого растра. Тем не менее, кажется, что каждый раз, когда пиксель ноданных находится в сумме, результирующий пиксель напрямую классифицируется как ноданные. Я хотел бы иметь обратное: игнорировать все значения узлов и суммировать остальные.
Я подумал о 2 способах решения проблемы:
- суммирующие растры, игнорирующие значения узлов
- преобразование пикселей узлов в значение 0, а затем суммирование всех растров
К сожалению, я не могу найти какой-либо инструмент для этого.
Может кто-нибудь мне помочь?
Ответы:
Если у вас есть доступ к ArcGIS, то инструмент Cell Statistics может опционально игнорировать ноданные, которые вы суммируете \ mean \ min \ max ваших растров.
источник
Во-первых, вы можете использовать gdal_calc.py, чтобы изменить все -9999 на 0 и установить значение NoData на 0.
Например:
Затем вы можете игнорировать значение NoData, используя gdal_translate с параметром -a_nodata, за которым следует none .
Пример:
источник
gdal_translate -a_nodata none ...
. Например:gdal_calc.py -A input.tif --outfile=input_with_NoData.tif --type=Int16 --calc="A+9999*(A==-9999)" --NoDataValue=0
cd
команды и повторите попытку, чтобы получить только-A test.tif
.В R:
источник
s
с аргументом, вna.rm=TRUE
результате чегоNA
значения игнорируются. Выходной объектss
- этоraster
объект, который можно экспортировать с помощьюwriteRaster
(см.?writeRaster
). (@RobertH - создательraster
пакета R. )Условный инструмент в Spatial Analyst - это простой способ преобразования нулевых значений в нули. Тогда взятие сумм должно быть несложным делом.
источник
У меня была такая же проблема некоторое время назад, и мне удалось ее решить.
Так же, как примечание об отображении значений узлов в QGIS: значения узлов всегда отображаются в виде значений узлов в окне карты и при использовании инструмента «информация об объекте», независимо от того, имеют ли они на самом деле значения -9999, 0, NULL и т. Д. Таким образом, после переклассификации значений узлов в 0, если вы перейдете в настройки слоя, вы найдете в Метаданных, что узлы имеют значение 0.
Я наконец нашел идеальный инструмент для квеста, GRASS
r.series
. Если для параметра «операция агрегирования» задано значение «максимум», а для параметра «распространение NULL» не установлено, инструмент создаст слой, соответствующий вашим требованиям.источник
Я помню эту проблему некоторое время назад. В качестве решения я думаю, что я сделал +1 ко всем ячейкам в растре, добавил растры вместе, а затем сделал окончательное вычитание (из всех добавленных вами +1). Это довольно грубо, но если оно выполнит свою работу ...!
Или используйте «Переклассифицировать значения сетки» на панели инструментов «Обработка» в QGIS, чтобы преобразовать ваши нулевые значения в ноль.
источник