How to extract values ​​from a raster table with xy coordinates?

I have a raster drain (5 raster layers), which is actually a time series raster.

r <- raster(nrow=20, ncol=200) s <- stack( sapply(1:5, function(i) setValues(r, rnorm(ncell(r), i, 3) )) ) s class : RasterStack dimensions : 20, 200, 4000, 5 (nrow, ncol, ncell, nlayers) resolution : 1.8, 9 (x, y) extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 names : layer.1, layer.2, layer.3, layer.4, layer.5 min values : -9.012146, -9.165947, -9.707269, -7.829763, -5.332007 max values : 11.32811, 11.97328, 15.99459, 15.66769, 16.72236 

My goal is to build each pixel and examine its behavior over time.

How can I extract each pixel along with my x, y coordinates and plot a time series?

+7
r extract raster
source share
2 answers

Thanks a lot @ SimonO101!

This code works.

 r <- raster(nrow=10, ncol=10) s <- stack( sapply(1:5, function(i) setValues(r, rnorm(ncell(r), i, 3) )) ) s[1:3]<-NA vals<-extract(s,1:ncell(s)) coord<-xyFromCell(s,1:ncell(s)) combine<-cbind(coord,vals) write.table(combine,"xyvalues.txt") 
+4
source share

You can use extract and pass the vector of cell numbers you want to extract to return a matrix of values ​​in each pixel. Each row represents a pixel, columns are layers ...

 mat <- extract( s , 1:ncell(s) ) head( mat ) # layer.1 layer.2 layer.3 layer.4 layer.5 #[1,] -0.2138718 3.114061 3.670945 1.2560295 2.881104 #[2,] 3.3580783 5.008205 2.315353 2.3247236 11.539837 #[3,] 3.2173875 2.958985 1.055389 3.1016730 4.064339 #[4,] 4.1113162 4.469828 3.113790 8.5329679 8.771459 #[5,] -2.4011283 4.747527 4.299707 2.2111643 9.457012 #[6,] -2.6159294 5.659211 1.926900 -0.3886837 5.661419 

However, extract more useful when trying to get specific pixels. To get all the pixels with x / y coordinates, you can just use rasterToPoints ...

 head( rasterToPoints( s ) ) # xy layer.1 layer.2 layer.3 layer.4 layer.5 #[1,] -179.1 85.5 -0.2138718 3.114061 3.670945 1.2560295 2.881104 #[2,] -177.3 85.5 3.3580783 5.008205 2.315353 2.3247236 11.539837 #[3,] -175.5 85.5 3.2173875 2.958985 1.055389 3.1016730 4.064339 #[4,] -173.7 85.5 4.1113162 4.469828 3.113790 8.5329679 8.771459 #[5,] -171.9 85.5 -2.4011283 4.747527 4.299707 2.2111643 9.457012 #[6,] -170.1 85.5 -2.6159294 5.659211 1.926900 -0.3886837 5.661419 
+9
source share

All Articles