2016-07-05 11 views
1

Я использую батиметрическую карту Северного Ледовитого океана, содержащую 11617 * 11617 ячеек, каждая из которых имеет значение по высоте относительно уровня моря (от -5573 до 5921 м). Я хочу отредактировать все пиксели со значениями больше 0 м, чтобы иметь значение минус 10 м, а затем сохранить этот растр.Редактирование всех значений растровых ячеек выше определенного значения в R

bath=raster ('C:/Users/ls15g11/Desktop/IBCAO_V3_500m_RR_editinR.grd') 
bath 

class  : RasterLayer 
dimensions : 11617, 11617, 134954689 (nrow, ncol, ncell) 
resolution : 500, 500 (x, y) 
extent  : -2904250, 2904250, -2904250, 2904250 (xmin, xmax, ymin, ymax) 
coord. ref. : NA 
data source : C:\Users\ls15g11\Desktop\IBCAO_V3_500m_RR_editinR.grd 
names  : z 
zvar  : z 

Я очень неопытен с R, поэтому был бы очень признателен за любую помощь на пути к достижению этого.

ответ

5

Во-первых, давайте создадим некоторые фиктивные данные в виде 10х10 растра (сделать это reproducible example)

bath <- raster(nrows=10, ncols=10, vals=rnorm(100)) 

тогда мы можем просто сделать

bath[bath>0] <- -10 
+0

Блестящий, спасибо большое! – Archelon

1

Вот память безопасной вариации на Dww х ответ:

bath <- raster(nrows=10, ncols=10, vals=rnorm(100)) 

rbath <- reclassify(bath, cbind(0, Inf, -10), filename='file.grd')