2013-08-19 6 views
4

Учитывая топографической ГИС растр одной страны crop.tif:Gdal: Как условно назначить новое значение пикселям растрового изображения?

# 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 

Учитывая порог возвышения п = 50 (м)

Как установить значение всех точек, где г> = n до 50?


, связанные с: https://stackoverflow.com/questions/18300210/, Gdal: How to get a pixel's value from raster image?

Помощь ?: gdallocationinfo может получить значение одной точки (без перебора всего изображения):

$ gdallocationinfo crop.tif 1 1 -valonly 
> 73 

ответ

6

Использования 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 

должен работать. (последний не был протестирован)