Изменить нулевые значения растровых значений на 0 в QGIS?


13

Мне нужна помощь ... У меня проблемы с QGIS. У меня есть некоторые растры, которые, по-видимому, имеют нулевые значения, хотя я переклассифицировал их для получения логического растра :(

Как я могу изменить значения NULL на 0?

Ответы:


14

Кроме ответа @RK, вы также можете использовать r.null в траве .

r.null - управляет значениями NULL данной растровой карты.

ПРИМЕРЫ

Установите конкретные значения классифицированной карты в NULL:

r.null map=landcover.30m setnull=21,22

Установите NULL-значения карты в определенное значение:

 r.null map=fields null=99

я надеюсь, что это поможет вам ...


9

Я думаю, что плагин RasterCalc должен быть в состоянии решить вашу проблему. После установки вы можете использовать следующий запрос (при условии, что значения NULL соответствуют -9999; вы можете проверить это значение на вкладке «Прозрачность» в свойствах слоя):

eq ([your_raster] @ 1, -9999, 0)

eq означает равно. Это говорит RasterCalc, что все пиксели в вашем растре со значениями NULL должны иметь свои значения, равные 0. Я предполагаю, что у вас есть одноканальный растр.


1
Кажется, это не работает (QGIS 1.8 / Rastercalc 0.2.5) - дает «выражение недопустимое» с загруженным растром, напримерeq( EL_hm@1, NULL, 0 )
Simbamangu

1
@Simbamangu, если вы будете использовать фактическое значение, используемое как NULL (например, -9999) - это будет работать. например, eq (EL_hm @ 1, -9999, 0)
SS_Rebelious

1
@SS_Rebelious - вы можете указать при редактировании, что значение NULL может быть задано в настройках ( General|Representation for NULL values), и это должно быть отражено в выражении.
Симбамангу

2

Я не знаю, решили ли вы это? Может быть более обтекаемый способ, но он отлично работает для меня в последней версии QGIS (v2.8.1):

  1. Создайте новый многоугольник со столбцом атрибута для высоты / уровня. Нарисуйте форму многоугольника с большим экстентом, чем растровый экстент, который вы хотите изменить.
  2. Растеризация этого полигона с помощью инструмента Растр> Конверсия> Растеризация.
  3. используя инструменты GDAL Analysis> не заполнять данные> и растеризованный многоугольник в качестве слоя достоверности.
  4. Результирующий растровый файл теперь должен иметь значения там, где ранее не было данных. Это может быть случайное значение ниже 0 (например, -9999) или 0. Если оно равно 0, значит, вы получили то, что хотели. Если это не так, выполните шаг 5.
  5. используя SAGA> Grid -Tools> Растровые слои Mosaick, введите заполненный растровый слой и растровый многоугольник. в перекрывающихся областях выберите [3] Максимум и установите выходной экстент в соответствии с исходным растром. Это должно привести к созданию нового растра, который сохранит все ваши значения более 0, в то время как вашим предыдущим значениям без данных будет присвоено новое значение 0.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.