2016-07-05 29 views
1

Ich verwende eine bathymetrische Karte des Arktischen Ozeans mit 11617 * 11617 Zellen, jedes mit einem Wert für die Höhe relativ zum Meeresspiegel (von -5573 bis 5921 m). Ich möchte alle Pixel mit Werten größer als 0 m bearbeiten, um einen Wert von negativ 10 m zu haben, und dann dieses Raster speichern.Bearbeiten aller Rasterzellenwerte über einem bestimmten Wert in 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 

Ich bin sehr unerfahren mit R, so würde schätzen jede Hilfe auf einem Weg, dies zu erreichen.

Antwort

5

Lassen Sie uns zunächst einige Dummy-Daten als ein 10x10-Raster erstellen (machen dies zu einem reproducible example)

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

dann können wir einfach

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

Brilliant, vielen Dank! – Archelon

1

ist hier ein Speichersichere Variante dww des Antwort:

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

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