我有一个从Earth Engine下载的大型光栅文件。我想把它变成一个布尔文件,只保留一个值(13)并使所有其他值为NA或0.文件太大,当我尝试处理它时崩溃QGIS和ArcMap,有没有办法做这使用GDAL或bash?该文件是一个tif文件。
答案 0 :(得分:3)
您可以使用大多数Linux发行版上安装的 ImageMagick 来实现,并且可用于macOS和Windows。
在命令行中制作测试图像 - 中间的值为13,红色和蓝色为:
convert -size 30x20 xc:"gray(13)" \
-bordercolor red -border 10 \
-bordercolor blue -border 10 start.tif
现在用黑色填充,一切都不是价值13:
convert start.tif -fill black +opaque "gray(13)" result.tif
或者,更容易看到 - 用青色填充非值13的所有内容,并将值为13的所有内容更改为黄色:
convert start.tif \
-fill cyan +opaque "gray(13)" \
-fill yellow -opaque "gray(13)" result.tif
答案 1 :(得分:3)
这是一个gdal解决方案:
您的输入是input.tif
:
gdal_calc.py --calc="A==13" -A input.tif --type=Byte --outfile=output.tif
答案 2 :(得分:1)
使用R你可以做到
library(raster)
library(rgdal)
r <- raster("input.tif")
x <- calc(r, function(i){ i==13 }, filename="output.tif", datatype="INT1U")
或使用raster::reclassify