Hug*_*lpz 4 gis image-processing gdal ogr
给定一个国家的地形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
Run Code Online (Sandbox Code Playgroud)
鉴于海拔阈值 n = 50(米)
如何将z> = n的所有像素的值设置为50?
相关:https://stackoverflow.com/questions/18300210/,Gdal:如何从光栅图像中获取像素的值?
帮助?: gdallocationinfo可以得到一个点的值(不迭代整个图像):
$ gdallocationinfo crop.tif 1 1 -valonly
> 73
Run Code Online (Sandbox Code Playgroud)
使用gdal_calc.py
.举例:
gdal_calc.py -A crop.tif --outfile=level0100.tif --calc="100*(A>100)" --NoDataValue=0
Run Code Online (Sandbox Code Playgroud)
读作:`给定输入-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
Run Code Online (Sandbox Code Playgroud)
应该管用.(最后一个未经测试)