5

给定一个国家的地形 GIS 栅格crop.tif

# download:
curl -o ETOPO1.zip 'http://www.ngdc.noaa.gov/mgg/global/relief/ETOPO1/data/ice_surface/grid_registered/georeferenced_tiff/ETOPO1_Ice_g_geotiff.zip'
# unzip:
unzip ETOPO1.zip
# crop:
gdal_translate -projwin -005.50 051.30 10.00 041.00 ETOPO1_Ice_g_geotiff.tif crop.tif

给定海拔阈值n = 50(米)

如何将 z >= n 的所有像素的值设置为 50 ?


相关:https : //stackoverflow.com/questions/18300210/,Gdal:如何从光栅图像中获取像素值?

求助?: gdallocationinfo 可以得到一个点的值(不用迭代整个图像):

$ gdallocationinfo crop.tif 1 1 -valonly
> 73
4

1 回答 1

7

使用gdal_calc.py. 举例:

gdal_calc.py -A crop.tif --outfile=level0100.tif --calc="100*(A>100)"     --NoDataValue=0

读作:`给定输入-A(crop.tif),输出level0100.tif,当像素具有第一个波段的值A>100时,将值设置为100。否则,设置为0。

在 内--calc="",您可以设置其他条件。如果要将诸如 100 < v < 200 的值设置为 100,则:

gdal_calc.py -A crop.tif --outfile=level0100.tif --calc="100*(100<A<200)"     --NoDataValue=0

应该管用。(最后一个没有测试)

于 2013-08-25T07:44:52.433 回答